CyanoBoot-- encore gets some love too! (u-boot WIP) alpha - Nook Color Android Development

Hey guys.
So in the last couple months I ported the encore u-boot menu/console/configuration stuff over to acclaim (Nook Tablet). The acclaim really needed the menu plus had a ton of "2nd bootloader" issues that needed to be addressed to fix the locked bootloader bug. On nemith's suggestion, the u-boot really isn't just for cm7/9 (it can be used with any OS), so I called the newer bootloader, "CyanoBoot". Kind of a working title until I think of something better.
In the process of the acclaim port, the UI menuing interface was rewritten and some small features were added.
Anyhoo... Last night on a whim I decided to port the improvements back to encore's u-boot. So there's a version now for encore as well so that NC can enjoy the UI benefits.
It's similar to the acclaim version, minus fastboot (which we don't need, since encore doesn't use dedicated boot and recovery partitions) and minus a 'clear bootcount' setting since, well, development is up to speed w/NC that such a feature seems not necessary.
That said, here's the new stuff:
new exciting splash
Indicator in top left. "E" means u-boot is loading from emmc. "S" means it's loading from Sdcard.
Additionally you can now see the system's "boot count" - the number after the indicator described above. If this count goes up, your boot count is not being cleared as it should be.
Instruction to "hold down "n" for menu"
boot menu is way easier to use, clearer, and uncluttered.
all the old stuff is there (Nook Color Tweaks' boot settings), combo keys, etc.
If you feel bold and are willing to risk everything, give it a try and let me know if you run into issues. Think of this as an alpha. If people like it, I'll push it to the repo as the default.
To install: It's just "u-boot.bin", and it goes in the first partition of your SD or EMMC. Make sure you have a good backup in case things screw up.
NOTICE: CYANOBOOT (WORKING TITLE) IS HIGHLY EXPERIMENTAL AND IS NOT INTENDED TO BE USED BY NON-DEVELOPERS AND/OR THOSE UNWILLING TO ACCEPT FULL RESPONSIBILITY FOR ANY UNTOWARD CONSEQUENCES OF USING (OR ATTEMPTING TO USE) THE SOFTWARE. ALL SUCH ACTIVITY MUST OCCUR *ENTIRELY AT YOUR OWN RISK* AND YOU ACCEPT ALL CONSEQUENCES FOR DOING SO. THE USE OR ATTEMPTED USE MAY HAVE UNINTENDED RESULTS, INCLUDING BUT NOT LIMITED TO LOSS OF DATA, DAMAGE TO HARDWARE, AND/OR EXPLOSIVE DIARRHEA. CYANOBOOT IS NOT ENDORSED, AFFILIATED, SPONSORED, NOR ASSOCIATED WITH THE "DAS U-BOOT" PROJECT, GOOGLE, BARNES AND NOBLE LLC, TEXAS INSTRUMENTS, DENX., NOR ANY OF THEIR PARTNERS, OWNERS, EMPLOYERS, AFFILIATES, CLIENTS, SUBCONTRACTORS, OFFICERS, DIRECTORS, ADMINSTRATORS, INFORMATION PROVIDERS, ETC. EXCEPT INSOFAR AS THEY HAVE PROVIDED AND LICENSED SOURCE CODE TO BE FURTHER MODIFIED AND DISTRIBUTED. SEE THE RELEVANT GNU PUBLIC LICENSE FOR LICENSING DETAILS AND OTHER DISCLAIMERS. THIS SOFTWARE IS OBVIOUSLY INTENDED FOR USE ONLY BY THOSE WHO ARE AUTHORIZED TO DO SO.
Aside from thanks mentioned in the acclaim thread, I want to add thanks to hacdan and racks for testing for me on emmc and sd.
Seriously though, as opposed to the acclaim version that was in development for weeks, this has been tested for like an hour. On the other hand I actually have a device to try it.
Update March 28, 2012
So thanks to some hard work from tonsofquestions, we've got a new version with some very cool improvements!!!
New Stuff
* The UI now dims out any option in the menu that isn't available
* some nice code refactoring that I was too lazy to do
* the "altboot" button combo (up and down volume keys) will now choose regular boot if altboot is set as default (and vice versa)
* You can now enable a previously "hidden" menu option (plus a second configuration menu) by doing the following commands:
adb shell echo "0" > /rom/u-boot.altboot
adb shell echo "0" > /rom/u-boot.device
This unlocks a "built-in" default menu, effectively doing the same thing as the Tablet Tweaks build options, only right from u-boot itself!
Please test from various configurations (emmc/sdcard/normalboot/altboot/etc/etc)... I haven't tested this one as thoroughly.. or really thoroughly at all. And thanks to tonsofquestions for the contribution!
updates:
9/20/12: Two minor fixes...
9/19/12: Moved to a new repository at nookiedevs.
3/28/12: New features from tonsofquestions. See update notice above.
3/16/12: Clear the "Push n for menu" message on screen once boot has been determined.
cyanoboot-12-9-20.tar.gz
(source)

Another post.

Dumb question, I don't see a u-boot.bin using Root Explorer looking in root. Shouldn't there be one there that I am replacing with this new one? Or just copy it in there and reboot?

911jason said:
Dumb question, I don't see a u-boot.bin using Root Explorer looking in root. Shouldn't there be one there that I am replacing with this new one? Or just copy it in there and reboot?
Click to expand...
Click to collapse
It would go in /boot-- or partition 1. On emmc it looks like: /dev/block/mmcblk0p1 on SD it's /dev/block/mmcblk1p1.
There should indeed be one there already. Along with uImage, uRamdisk, etc...
it's not usually mounted by default. One way to access it is to use these commands from your computer:
$ adb shell mkdir /data/mnt
$ adb shell mount -t vfat /dev/block/mmcblk0p1 /data/mnt
$ adb shell cp /data/mnt/u-boot.bin /data/mnt/u-boot.bin.old
$ adb push u-boot.bin /data/mnt/
$ adb reboot
$ is the prompt, of course. Here's what they do:
1. make a "mount point" (a directory) at /data/mnt so that you can
2. mount the vfat boot partition (p1) at that mount point. Then,
3. backup your old u-boot.bin in case this one is deeply flawed
3. push your local copy of u-boot.bin (CyanoBoot) on top of the old one, and
4. reboot and hope it doesn't crash.
Good luck, and my apologies in advance if/when this screws up. Remember, you are assuming all risk here
(you can also do it by loading clockworkmod, mounting boot to /boot and then backing up and/or pushing u-boot.bin to /boot)

911jason said:
Dumb question, I don't see a u-boot.bin using Root Explorer looking in root. Shouldn't there be one there that I am replacing with this new one? Or just copy it in there and reboot?
Click to expand...
Click to collapse
its in the boot partition

Works like a charm! Very nice!

thanks fattire, this in my opinion is much nicer then the other menu we have available to us. hope to see you polish this off
ehh, the possibilities of running 4 OS's with this makes me smile

Dropped it into one of Eyeballer's nightly opengl zips (http://forum.xda-developers.com/showthread.php?t=1526115) and it works great! Thanks fattire!

Excellent work, Thanks

Been following your development on the NT even though I don't have one. I was hoping this would be ported sooner or later.

Can someone please drop this into a normal ZIP file and put it somewhere where it can be downloaded?
Thanks....

I think the whole purpose of it being compressed in the gz format is to prevent people thinking it was an installable zip file... but I could be wrong...
To use this file google search for win-gz... a simple free gzip windows utility.
If fattire gives the ok... I will upload a rar file containing the bin file.
Additionally:
@ fattire... is it ok if I include this in my file for customizing ROM's in this post instead of the cyanogen u-boot.bin?

DizzyDen said:
I think the whole purpose of it being compressed in the gz format is to prevent people thinking it was an installable zip file... but I could be wrong...
To use this file google search for win-gz... a simple free gzip windows utility.
If fattire gives the ok... I will upload a rar file containing the bin file.
Additionally:
@ fattire... is it ok if I include this in my file for customizing ROM's in this post instead of the cyanogen u-boot.bin?
Click to expand...
Click to collapse
Sure and sure. Be sure to include the GPL notice.

CyanoBoot in RAR
Thanks to fattire for all the hard work put in for our devices... and with his ok... here is the CyanoBoot in RAR format for those that have difficulties with gz files.
I will keep this updated and named to coincide with development.

DizzyDen said:
I think the whole purpose of it being compressed in the gz format is to prevent people thinking it was an installable zip file... but I could be wrong...
To use this file google search for win-gz... a simple free gzip windows utility.
If fattire gives the ok... I will upload a rar file containing the bin file.
Click to expand...
Click to collapse
Thx Dizzy....I'll find the win-gz and use that.
---------- Post added at 02:21 PM ---------- Previous post was at 02:09 PM ----------
Works great on an SD card using CM7
Thanks Fattire!

Good to go in my opinion, great work as always fattire.. my nook and tp would be collecting dust if it wasn't for your hard work

Just since we're chiming in here, yeah looks ready to me too. I've been testing several types of software this last week, some of which require flashing and rebooting for what seems to be all day. No joke, I have probably rebooted 60+ times since I downloaded this yesterday. Multiple installations, multiple configurations. No dual-emmc, but everything else has worked great.
It has been kind of bittersweet to lose the little green box though, even to such an obvious upgrade. Despite all the crap I've tried on this thing, once that logo showed up, I knew it was gonna be okay, ya know?
I have had a totally different relationship with technology since the very first time I laid eyes on it.
Good of time as any to thank the commenters on this thread in particular.

Heh. I know what you mean re that green logo (from drakknar, btw). For me it was a HUGE battle to get a multi-colored logo to appear in the first place ...This commit and this one took many, many cycles of booting and rebooting... and trying to figure out how to get the pallette to work, etc. Before it, the u-boot could only do black and white logos (does anyone remember the "Loading..." text?) and it looked pretty awful. But nemith made a good case that for the next revision, the newer u-boot might be rebranded since it's not the start up for only CM... Still, I kept the "cyano" part in the name as a tribute...
Thanks for testing, and I'm glad y'all are having success. Maybe tomorrow I'll push to the repo.
mateorod said:
It has been kind of bittersweet to lose the little green box though, even to such an obvious upgrade. Despite all the crap I've tried on this thing, once that logo showed up, I knew it was gonna be okay, ya know?
I have had a totally different relationship with technology since the very first time I laid eyes on it.
Click to expand...
Click to collapse
Just curious: Tell me about your relationship with technology and how it's changed? I feel like the NC in the last year has really helped me to learn a LOT.

OFF-TOPIC (spoiler alert).
I got a replacement nook for the one my wife got me at Christmas last October. I was absolutely flabbergasted that they has changed the storage so that it couldn't hold the books and music I had sideloaded on the original. I looked to see what I could do, and followed directions to repartition the emmc.Flashing the ROM was an afterthought.
I didn't know before finding the info that the reader had external storage. I didn't know what an sdcard was. I had to sign up for Gmail. My last computer died because of the Love Bug.
Yes.
The only reason I registered here was because I couldn't understand why every time I tried to install the Google Music Manager .exe, it wouldn't work.
Today I decompiled a services file and edited it, so I could share it with others. I spent this evening testing a package distro system. I posted in the forum and some of the words are in color!
My wife bought me an e-reader, you know? These things you've made have had a big impact and it can't only happening to me.

Thanks fattire! Have it on my SD and it works great!
I'm not sure if this is a bug or just a user common sense issue, but if you select an Alternate boot from the menu without actually having an alternate image, the Nook freezes on "Loading AltBoot from"... requiring a hard reset.
Obviously, if you don't have an Alternate boot, you wouldn't be selecting it. But I wasn't sure if there could be a potential improvement, like if Cyanoboot doesn't detect an uAltImg, it wouldn't give it as an option?

Related

[ADVANCED][HOW TO] Nookie Froyo from emmc (1/20/2011)

***UPDATE***
I am removing this tutorial from general public view. if you read the warnings/disclaimers and are still interested you will need to read the links below and go about it yourself.
--------------------------------------------------------------------------------------
first off credit for this idea go to all the people/sites linked below. IF credit is missing where due please notify me and i will resolve. This is just a gathering of other posts and steps that worked for me.
This will wipe your device. backup anything and everything before proceeding.
If you are not willing to take it upon yourself to research any problems that arrise and fix them yourself DO NOT ATTEMPT.
If you are unwilling to wipe your stock Firmware DO NOT ATTEMPT.
If you are unwilling to start with a fresh nookie color SDcard NO NOT ATTEMPT.
If you are unable to fix your problems or want to revert to stock you can do so following the link at the bottom of the page
This is for advanced users. Make sure you read and reread everything before attempting anything! I take no responsibility and offer no promise of support if you make yourself a $250 B&N brand paperweight. keep in mind the nc is hard to brick (know from experience) but anything can happen, so be warned and proceed with caution.
if something below is not clear visit the links provided and look for your answers there. they are there and the more you read and learn the more sense this will make. if you are still unable to find help post here and i will try to get you going.
now on to the good stuff. I just wanted to gather the various posts and links that i used to gt a fully working froyo running on my nc from the internal memory (emmc) and present them in a step by step guide for others wanting to run NF from their internal memory and have no need for B&N stock. Flash is working if you install the proper apk. this is not installed out of the box. After installing to your EMMC you will be able to use any sdcard as you normally would in android. I am using a 16gb card with no problems.
***steps removed... see top of post***
helpful links:
http://forum.xda-developers.com/showpost.php?p=10254900&postcount=138
http://forum.xda-developers.com/showpost.php?p=10747294&postcount=2
nookdevs steps for creating nookie froyo sdcard:
http://nookdevs.com/Nookie_FroYo:_Burning_a_bootable_SD_card
nookie froyo thread:
http://forum.xda-developers.com/showthread.php?t=883175
nookdevs nookie froyo tips:
http://nookdevs.com/NookColor:_Nookie_Froyo_Tips
wipe nc to stock: (download the images and run the commands from an adb shell.)
http://forum.xda-developers.com/showthread.php?t=919353
Flash back to clean stock ROM (nook devs) http://nookdevs.com/Flash_back_to_clean_stock_ROM
1. first you will want a fresh NF sd card. I tried to use my seasoned nf card and ended with a brick... if you have google apps installed you will not be able to get past the android screen and will have to reimage as stated above. create your fresh nf sdcard following the steps at nookdevs here
Click to expand...
Click to collapse
As we say in french, you must call a cat a cat. Your NC wasn't bricked at all. You simply needed to touch each corner of the screen one at a time when on "touch the android" screen, starting with the top left corner, then clockwise.
Would have saved you some time
If I were you (if I may..), I'd put all the links the bottom of the post. Would make reading easier. As for my code to copy sdcard content, go on and post it directly. Opening multiple pages only makes things more complicated. No problem. As for the Volume keys and gapps, it could be ambiguous, those add-ins aren't required at all. Simple leave a link to nookie tips on nook devs for those who want it?
But of course, this is your post..
Sam
samuelhalff said:
As we say in french, you must call a cat a cat. Your NC wasn't bricked at all. You simply needed to touch each corner of the screen one at a time when on "touch the android" screen, starting with the top left corner, then clockwise.
Would have saved you some time
If I were you (if I may..), I'd put all the links the bottom of the post. Would make reading easier. As for my code to copy sdcard content, go on and post it directly. Opening multiple pages only makes things more complicated. No problem. As for the Volume keys and gapps, it could be ambiguous, those add-ins aren't required at all. Simple leave a link to nookie tips on nook devs for those who want it?
But of course, this is your post..
Sam
Click to expand...
Click to collapse
I tried the touching four corners. no go. several roms required that back when i was using a D1... I couldnt for the life of me figure it out so just scrapped and started from scratch.
thanks for your input. i planned to clean this up a bit, was just in a rush writing the original. Thanks again for your help. couldnt have gotten this far without your steps to start off.
Eager to try this out ... but will it be able to see a non-NF SD card I enter in? Will it recognize it, and let me see it as mass storage when the Nook is plugged into my PC?
Very well written, just copy and paste the code into the console for the most part ... Runs nice and fast, I have a few FC's to clean up but that is due to me not factory resetting the NC prior to doing this as I am an impatient person! I must say it is very nice not to have the B&N notification bar at the bottom of the screen.
So if this is really 2.2, does it have flash?
theyownus said:
I used 0.5.9 and replaced the vold file with the one from 0.5.8 making sure to maintain executable permissions.
Click to expand...
Click to collapse
a) What vold file? Searching for "0.5.8 vold" on this board produces no hits.
b) Executable permissions on what? This "vold" file or something else?
Don't want to be "that guy" but date should read 1/20/2011.
Thanks gonna give this a shot.
What happens to the Media partition?
Also, slightly random: Why doesn't adb ever seem to work over USB with my Nook Color? 2.1 ROM, Nookie Froyo on SD 0.5.8 or 0.5.9, it never sees a device. By contrast, it works fine on my G2.
starkruzr said:
Also, slightly random: Why doesn't adb ever seem to work over USB with my Nook Color? 2.1 ROM, Nookie Froyo on SD 0.5.8 or 0.5.9, it never sees a device. By contrast, it works fine on my G2.
Click to expand...
Click to collapse
Re-run ADB configuration. Make sure id is 0x2080.
How do we fix the SD card error. I am unable to do anything with the SD card.
samuelhalff said:
Re-run ADB configuration. Make sure id is 0x2080.
Click to expand...
Click to collapse
Wow. This is INSANELY important and this is the first time I've ever seen mention of it. Every other post simply assumes your ADB "just works." I have been endlessly frustrated by the lack of working ADB on this thing such that every time I do something with my NC I have to find a way to first install ADBWireless.
http://fineoils.blogspot.com/2010/11/pokey9000-has-got-self-booting-image.html
The instructions to get it working are in here, folks. Can these instructions be put in a sticky somewhere? This is about the least-obvious thing I can think of.
Is there any improvement in speed and reliability running this from the emmc as opposed to a class 6 uSD?
"extract them to their respective folders"
Nothin but bootloop
theyownus said:
first off credit for this idea go to samuelhalff
links:
original steps from samuelhalff http://forum.xda-developers.com/showpost.php?p=10747294&postcount=2
Click to expand...
Click to collapse
What a great idea. If only someone had talked about this weeks ago... Anyway now that it seems people are going to be trashing their nooks trying to do this, it's probably simpler for one to just boot into SD and...
[Replace the files in /system]
It would also be a good idea to clear out /data and /cache or there will likely be bootloops when froyo boots with the old data stuff still around.
That's off the top of my head and totally untested. Seriously. It probably doesn't work, and is totally unrecommended. Anyone who types "rm -rf *" in their emmc system is saying goodbye to their stock OS and will have to live with their decision. All GPL disclaimers apply.
Note also that IOMonster has a nice bootable clockwork SDcard that does all kinds of things, and automating this type of migration is only a matter of time now.
Update: Actually the steps aren't THAT different. /just sayin'.
fattire said:
What a great idea. If only someone had talked about this weeks ago... Anyway now that it seems people are going to be trashing their nooks trying to do this, it's probably simpler for one to just boot into SD and...
Somewhere in there it would be a good idea to clear out /data and /cache or there will likely be bootloops when froyo boots with the old data stuff still around.
That's off the top of my head and totally untested. Seriously. It probably doesn't work, and is totally unrecommended. Anyone who types "rm -rf *" in their emmc system is saying goodbye to their stock OS and will have to live with their decision. All GPL disclaimers apply.
Note also that IOMonster has a nice bootable clockwork SDcard that does all kinds of things, and automating this type of migration is only a matter of time now.
Update: Actually the steps aren't THAT different. /just sayin'.
Click to expand...
Click to collapse
I had the same reaction reading the post. Not only is it unfair to you, because I have read your post before attempting anything, but it's also unfair to me because it suggest that he did most of the practical work..
Anyway does it really matter? People who don't regularly read the forum often don't give a Jack of who's responsible for what. Those who do willl know you were first in line. Anyway, I understand your frustration I should have said something. I was just fed up. Sorry.
Please know that my original post recomanded doing dd's of all partition. That way reverting back to stock was easy. My post also mentionned emptying data.....
What do mean steps aren't that different?
Sent from my HTC Desire using XDA App
samuelhalff said:
I had the same reaction reading the post. Not only is it unfair to you, because I have read your post before attempting anything, but it's also unfair to me because it suggest that he did most the practical work..
Anyway does it really matter? People who don't regularly read the forum often don't give a Jack of who's responsible for what. Those who do willl know you were first in line. Anyway, I understand your frustration I should have said something. I was just fed up. Sorry.
What do mean steps aren't that different?
Click to expand...
Click to collapse
Ah, I just mean it's all the same idea-- out with the old, in with the new. Nothing particularly genius about it. In any event, it's not really a matter of credit. We all stand on the shoulders of giants. I was just amused is all... so let's just have fun, eat, drink, be merry, and dance in the rain.
It may turnout that English isn't the OP's native language. Although it isn't mine either..
Nothing really seems genius once you get to understanding it.. but as a newcomer, I still had a bit of trouble getting the sdcard to mount..
Sent from my HTC Desire using XDA App
So I've been doing this android flashing business a long time
And I've got a real mess on my hands. I'll be ****ing with this for the rest of the night! Thanks!

Introduction to Android FRX07 - SD Card

Very Important Information For Beginners
/Introduction to Android for SD Cards
​
Okay, firstly I made this thread because pretty much every new person to this section of the forums is completely lost and unsure what things are or what to even do. We are also sick and tired of threads saying 'how do I get stared' or 'which is the most stable' etc.
----------------------
Download your files from here:
You will be accessing these websites quite often so it might pay to bookmark them
Kernel downloads, almost always download the top one, they are updated often (needs extracting): http://glemsom.users.anapnea.net/android2/htc-msm-linux/
Rootfs downloads, download the top one, they aren't updated as often as the kernels above but still quite regularly (also needs extracting): http://files.xdandroid.com/rootfs/
Initrd downloads, rarely updated (don't extract, just rename to initrd.gz) http://files.xdandroid.com/initramfs/ People almost never need to download one of these separately.
----------------------------------
Basic need-to-knows:
Kernel: Your modules/zImage. Your zImage always needs be in the root (first folder) of your android folder on your SD and ALWAYS named zImage, your modules should also be in the root of your android folder named modules-LOTSofNUMBERSandLETTERS.tar.gz never rename your modules. It should always be in .tar.gz EG: modules-2.6.27.46-01276-g6a6a1c1-dirty.tar.gz
Rootfs: Must be in the root of your android folder named rootfs.img
Initrd: Needs to be in the root of your android folder named initrd.gz
Data.img: Generated on the first boot of android and placed in root of android folder. Is a virtual memory file that acts as the phones internal memory for android. Holds all your settings etc. May have to be recreated some times (just by deleting it)
Haret.exe: the file executed by your Windows ROM to kick Windows out of memory and boot android.
system.ext2: Main android file, must be in the root of your android folder. Holds all of your build.
startup.txt: File that instructs android how to start up. Needs to be in the root of your SD. (I will cover this further down)
ts-calibration: A file in the android folder that holds calibration information of the touch screen.
Various Folders: You will see/have/need other various folders created in the root of your SD and in the root of the android folder, such as conf, cache, data, media etc. You usually don't want to delete these.
Root: The root folder of any partition is the "highest" folder in the hierarchy. The root folder contains all other folders and can also contain files. For example, the root folder of the main partition on your computer is probably C:\. The root folder of your DVD or CD drive might be D:\.
Also Known As: "the root"
RIL: Radio interface layer: basically controls your radio (GSM/CDMA network)
------------------------------------------------
startup.txt
VERY IMPORTANT, your startup.txt must be customized to your device. (mine is a rhod110). You can find your model number under your battery. This file belongs in the folder with your android.
My startup.txt looks like this
Code:
set ramsize 0x10000000
set ramaddr 0x10000000
set mtype 2292
set KERNEL zImage
set initrd initrd.gz
set cmdline "lcd.density=240 msmvkeyb_toggle=off gsensor_axis=2,1,3 pm.sleep_mode=1 rel_path=FRX07 physkeyboard=rhod100_uk acpuclock.oc_freq_khz=710000"
boot
Now I believe you should be able to copy and use this as yours with a few slight modifications. Change rel_path= to wherever your android is stored on your sd, for example when I go to my sd inside the folder frx07 (the root of my android folder) all my android files are there. If your folder was called andboot it would be rel_path=andboot. (without that full stop) Now change your physkeyboard= to your model of your phone, mine is rhod110 but the rhod100_uk keymap is EXACTLY THE SAME AS THE RHOD110 so that's why I use rhod100_uk instead of rhod110 (rhod110 isn't recognised by frx07), this is important to make sure your keys are assigned properly.
------------------------------------------------
Models of rhod:
From what I know that exists. If you find one not listed, make sure you tell me so I can update the list
rhod110 uses rhod100_uk and it works as it should
These can be used for physkeyboard= in startup.txt (needs updating, some may no longet be supported because F22 hasn't commited old changes)
rhod100_de
rhod100_es
rhod100_fr
rhod100_it
rhod100_nl
rhod100_nordic
rhod100_uk
rhod210
rhod300 (tilt2)
rhod400
rhod500
Getting set up:
Go to http://forum.xda-developers.com/showthread.php?t=1171052 and download the FULL BUNDLE
Other builds exist such as gingerbread but this guide only covers froyo frx07.
Replace/add the Kernel from the downloaded build with the latest one (remember this is the zImage and modules-NUMBERS.tar.gz). Updating is as simple as this, do it often - there is no data loss. See links mentioned above for links. Making sure that the (if there were) old kernel files are all deleted and the new ones are called zImage and modules-NEWdifferentNUMBERS.tar.gz
Replace/add the rootfs.img with the latest one from the link above it should be named rootfs.img.
Remember that the rootfs and kernel are updated quite often and that you should check and update every few days.
Make sure your startup.txt is correct and make sure everything is where it should be in a folder on your computer, then copy the folder to the root of your sd card.
Navigate to this folder using the file explorer in your Windows ROM (YOUR PHONE) and run the Haret.exe
It will then have some writing running down a black screen before booting android (it's just preparation to booting) read it if you want
Android will start and you should leave it about 2-5 minutes before touching anything, it has things running in the background and it will be slow, still setting itself up. Navigate to settings and set up your phone. If anything goes too badly wrong you can always delete data.img and start again! Data.img is the internal memory of the phone, remember? Well, until we get android working on the real internal memory...
---------------------------
Structure:
My SD card. (with android on it)
I'm running:
kernel: 20110819_183957 http://glemsom.users.anapnea.net/android2/htc-msm-linux/
build: Froyo FRX07http://forum.xda-developers.com/showthread.php?t=1171052
rootfs: rootfs-20110816-7e04198.zip from http://files.xdandroid.com/rootfs/
Code:
EncFiltLog.menc
kbd_info
Android
cache
download
tmp
Private
Games
Installs
DCIM
Others
Videos
Images
Sounds
media
frx07
rhodimg.nbh
My android is in frx07
inside my frx07:
Code:
data.img
ts-calibration
startup.txt
modules-2.6.27.46-01348-g9de837f.tar.gz
zImage
haret.exe
initrd.gz
system.ext2
AndroidApps
conf
media
rootfs.img
-----------------------------------------
Backup/Restore
when you have the need to backup and restore data, look for an app called Titanium Backup. I have never used it but heard it works brilliantly, even backing up your apps! There is a 'donation' version and a free version with not many differences. I suggest you go check it out!
-----------------------------
USB CONNECTIVITY
When your phone is in Android you can not use it like a USB, HTC's drivers will not work and you have to use certain programs until this is implemented.
Windows: Install DroidExplorer this lets you open a terminal (like command prompt) on the phone, lets you browse device adding/deleting files, among other features that are very useful. If that DroidExplorer doesn't pick up your phone (when picked up it will be called 0000000000) install PDAnet on your phone and pc. PDAnet provides the drivers needed to connect the phone. It also lets you use your phone as a modem and you can send SMSs using your computer. Do NOT run PDANET at the same time as DroidExplorer. When PDANET is connected it WILL use your phone for data connections - this is the only warning. The phone is not used for any networking when DroidExplorer is connected.
Mac: Unknown to me (can someone post?)
Linux: Never tried, it is easier than windows (can someone post a method?)
---------------------
Overclocking
Do NOT overclock WINMO.
If you want to overclock your device do so at your own risk.
it is as simple as adding "acpuclock.oc_freq_khz=710000" without quotes to your startup.txt cmdline. 710000 (approx 710 mhz) can be swapped for any number but this is practically the highest stable speed achievable. I use 710000, works fine for me.
-------------------------
Known problems across ALL BUILDS:
Media Player Some tracks might have playing issues. FIX: HERE
Bluetooth is experiemental
Speakerphone static : seemingly random issue
USB plugging the device into a computer, it will be recognised, but not by HTC drivers. FIX: You must use something like DroidExplorer and PDAnet to browse the device and ADB (android debug bridge). See above ^^ (USB tethering is being fixed/has been fixed)
FN LED On keyboard the caps LED works but the FN LED currently does not. FN still works fine
No deep sleep: FIX: disable GPS (or kill the running app causing phone to not sleep)
Failure booting Android: Phone fails to enter android after running haret.exe FIX: Make sure your winmo is NOT overclocked before booting android.
Booting or SD Card related problems: Make sure your card is formatted as FAT32 (reformat as Full Format if it is not working)
More information is available on the wiki, there is also information there if you want to get into development. There is a pretty good FAQ on that wiki too
Remember XDAndroid is not just for this device.
If any of this is wrong or you think something should be updated/changed, please tell me ​
The CDMA startup should have "board-htcrhodium.is_cdma=1" instead of "...is_gsm=0"
otherwise, looks good!
AkumaX said:
The CDMA startup should have "board-htcrhodium.is_cdma=1" instead of "...is_gsm=0"
otherwise, looks good!
Click to expand...
Click to collapse
Indeed, there is no "is_gsm" command .
arrrghhh said:
Indeed, there is no "is_gsm" command .
Click to expand...
Click to collapse
Thanks to both of you, not bad considering I don't even have a cdma phone eh?
anything I need to add? I will tidy it all up soon
Something that might catch out a beginner is if they have an older SD card and it isn't detected by more recent kernels.
Need to include this in the cmdline:
msmsdcc_1bit msmsdcc_fmax=14000000
the.decoy said:
Something that might catch out a beginner is if they have an older SD card and it isn't detected by more recent kernels.
Need to include this in the cmdline:
msmsdcc_1bit msmsdcc_fmax=14000000
Click to expand...
Click to collapse
I thought this was squashed in recent kernels?
arrrghh said:
saneksem said:
add that to startup,helped me on 2 gb card
msmsdcc_1bit msmsdcc_fmax=14000000 msmsdcc_nopwrsave
Click to expand...
Click to collapse
You don't need this if you're on a newer kernel!!!!
Just update your kernel folks, no need for this in the startup!
Click to expand...
Click to collapse
Oh, ok. I must have missed that. I only needed it on my older SD which I haven't tried using for a month or so.
I guess the only thing I would suggest (all minor things) would be maybe to bold/underline keywords, like "kernel", "rootfs", etc.. to differentiate things that may change over time; ex: I'm running FRX05 system.ext2, 3/1/11 rootfs from F22, 3/1/11 zImage/modules (kernel) from arrgghh, etc... And, I guess you "could" be nice and show people what they could edit in the startup.txt, depending on their phone; ex: I'm Sprint, so I would do kb=rhod400, cdma=1, etc..., but for each phone.
I would probably have to do all the different startup.txt's in a different thread, unless I just provide a quick table... I will think about it however I do like the idea about bolding key words.
Most new people don't realize if they have their call/end/windows/back buttons on in winmo, they will stay on while on android and never go off. Might want to put that in your first post before telling them to run haret...
at the end where you say you can just delete the data.img and startover its probably a better idea to say to be patient and reboot the phone once or twice before ditching your data.img ! and creating it is the bulk of the first boot, the linux black screen with the scrolling words section.
you can talk about saving your data.img just incase something goes wrong.
titanium backup is a must
having an app that can save sms when you switch builds (not a big deal for everyone but important to some.)
also let new users know android isn't perfect, things randomly completely mess themselves all the time, don't get discouraged just start fresh with a format and new files when deleting the data.img doesn't work and you'll be just fine.
All I want to know now is if I have helped anyone yet and if they had any problems with any part of it or want me to clarify anything I will be quite happy with such replies ^-^
Is anyone able to provide me with some ETAs of fixes on the problems across all builds listed in the OP? Also are there any more I am not aware of? Oh and if anyone is working on them?
Much Appreciated
ryannathans said:
Is anyone able to provide me with some ETAs of fixes on the problems across all builds listed in the OP? Also are there any more I am not aware of? Oh and if anyone is working on them?
Much Appreciated
Click to expand...
Click to collapse
There's never an ETA for anything getting fixed - BT seems close, but who knows the exact date it will be done? As CyanogenMod says, the only rule is don't ask for release dates / ETA. It'll be ready when it's ready.
Some problems are being looked into more than others, but I wouldn't say one in particular has been left out to rot. jb is fixing up BT, entropy is working on GPS fixes, wistilt2 on the RIL of late... Basically devs pickup things that are of an interest to them to fix. There's a lot still to fix/cleanup, so taking it all on alone is a little daunting. Gotta break it down into smaller pieces so it's at least somewhat manageable.
Thanks and a question...
First, thanks for the awesome post - quite helpful...
Second: I haven't mussed with my phone for about a year, for various reasons, the main one being that I was happy with my previous phone and the ROM I finally settled on, the secondary one being that phone died, and I now have a (blech) Sprint TouchPro2 (RHOD400), and am on my sixth (yes, sixth!) brand new TP2 - they keep giving me a new one because of problems (things, like... oh... say, not being able to answer calls... kind of a basic function in a mobile phone, nah?!) And, I've had no interest in futzing with what is already a frustrating and non-functional phone. I was hoping I could upgrade instead of getting another TP2 the last time I brought it in for probs, but they would only downgrade me to worse phones. So... here I am, wanting to put Android on my phone and see if there is any improvement. Or, at the least, be able to utilize some of the decent progz/gamez for Android. I mean, if I can't answer calls, at least I can use it as a handheld gaming system, right?!
Long story short: when I was flashing ROMs to other phones, the instructions explicitly said that you needed to unlock, etc., first. I can't find any data re: if there are steps you must take on your phone to 'prep' it, *before* following the steps in this thread. I've browsed the DB and no luck.
My apologies for being an annoying n00b!
PS: one of my friends said "Tell 'em you're a hawt babe - then they'll help for sure!" (ROFL)
And, thanks, again!
Tynkrrbell said:
Long story short: when I was flashing ROMs to other phones, the instructions explicitly said that you needed to unlock, etc., first. I can't find any data re: if there are steps you must take on your phone to 'prep' it, *before* following the steps in this thread. I've browsed the DB and no luck.
My apologies for being an annoying n00b!
And, thanks, again!
Click to expand...
Click to collapse
Well the reason you can't find any info on it, is that it's not required .
These builds run entirely off of the SD (currently - I wouldn't try NAND yet, it's in its infancy) so there's no need to do any HardSPL or anything really to prep - just drop the bundle on your SD card - if it's at the root, run haret.exe and gogogo!
Oi. I get the stupidcard of the day!
That is awesome! Same friend that suggested I mention I am a 'hawt babe' said I should "give boobpr0n" to whomever helped me. You probably wouldn't want to see that, though!
You are heartily appreciated! I'm off to be an Androidite!!!!!!
Tynkrrbell said:
That is awesome! Same friend that suggested I mention I am a 'hawt babe' said I should "give boobpr0n" to whomever helped me. You probably wouldn't want to see that, though!
You are heartily appreciated! I'm off to be an Androidite!!!!!!
Click to expand...
Click to collapse
My gf suffices for that .
Hope you enjoy Android!
Tynkrrbell said:
That is awesome! Same friend that suggested I mention I am a 'hawt babe' said I should "give boobpr0n" to whomever helped me. You probably wouldn't want to see that, though!
You are heartily appreciated! I'm off to be an Androidite!!!!!!
Click to expand...
Click to collapse
Not to burst any bubbles here, but if you are saying you are a "hawt babe" and give boobpr0n mumbo jumba, you are prolly not one and won't give it anyways.. so nobody will most likely believe you here..
Good luck though~

[Guide]Rom Development for Dummies (and a few other things)

Note: more content is coming regularly, so check back regularly! Also, post your input so this thread does not become buried.
As an initiative to kickstart development for the Galaxy Player 4.0, I have decided to put up this guide to try and attract more users to rom development. This, although, does not mean you can willy-nilly post up a rom including one mod, or a quick tweak. Making a rom involves a lot more than that.
The Developer's Code:
1. Your rom MUST be unique from the other roms.
This means you have to have a careful, well thought out rom. It must have several things differing it from other roms, something that makes it stand out. The last thing we need are 200 "me too" roms cluttering up development. Takes Klin's rom and mine, for example. We both have ICS themes, we both have tweaked our roms for performance, but they are both completely unique. Why? Because we didn't copy one another. We saw what the other had, and left it alone. I have an ICS theme, he has an ICS theme, but they are based on completely different themes. The biggest boo-boo in rom devving is copying someone else's rom/features/work. You will get kicked out unbelievably fast if you DO NOT follow this rule. To reiterate, the last thing we need is 200 identical roms. Make sure yours is unique from the others, and has a defining feature.
2. You must be willing to provide regular, consistent updates.
Maintaining a rom can be a full time job. You have bugs to deal with, features to add, and hours of work in which you only accomplish a small amount of work, due to some catastrophic failure. Last night it took me over 3 hours to fix a battery icon issue. Why? because I had almost space left in which to apply my fix, and if I did even one step wrong I had to reflash to correct the issue.
You should NOT release your rom once, and never look at it again. You should be willing to update it at least twice a month, if not sooner. I update mine several times a week, but that's because I have a lot of free time. Your mileage may vary, but try to hit for that mark. Too long wihtout an update and users will get bored/tired of your rom without anything new to spice things up.
3. You must be willing to provide helpful, friendly support.
At times, monitoring your thread can be frustrating. you may have someone complaining about an issue that was fixed several releases back, or someone who wants a new feature and keeps bugging you about it. It can be frustrating at times, but make sure you calmly answer everyone's questions in a fair manner. It can be extremely frustrating for a rom user to post up a question, and have it answered days later because the dev was "too busy" to monitor their thread. This, if anything, is almost more important than rom updates. Users love devs who actually converse and answer them, so be friendly, and keep your thread going!
4. ALWAYS ALWAYS ALWAYS give someone the apppropriate credit for their work.
It is the bane of the dev's existence: spending days/weeks/months of xyz feature/theme/rom, and have someone come along and snatch their work from them without as much as a "thank you". First of all, it will get you banned faster than any other offense out there. Secondly, it is one of the largest insults you can give someone. Our community is one that is supposed to share work, and most people do that freely, but you MUST give credit where credit is due. It is best if you ask someone's permission before you use their work, especially if it is something major (a huge theme for example). But even if you don't (and you should), at the very least list their username and what they did in your rom SOMEWHERE in your description.
5.You do not know everything.
After creating a rom, many people feel that they know much more then the "average" community, and that they are always right when it pertains the their rom. This could not be more wrong. The best way to improve your rom, is to listen to xyz person who knows more about a certain area than you do, and attempt to learn from that person. Everyone is skilled in a different area, so if you listen to your community, and assume they know best, you can learn and accomplish a lot evry quickly.
6. Google is your friend.
Do not assume that dev's know everything, and that they pull these features out of their heads. When in doubt, go to google. Always. There is normally a guide, or someone with your issue to help you out. As usual, make sure you give that person credit if you use their work.
So, to sum it up, Make your rom unique, be dedicated to your work, be ready to handle unexpected situations, ALWAYS give someone appropriate credit, listen to your community, and google a lot!
Not intimidated yet? ready to bring your amazing idea to the limelight? head on down to the section below to get started!
The Easy Way to Dev: Odin flashable packages.
Most people don't want to edit their rom on their computer. As a matter of fact, you can create a killer rom without even touching a computer to mod it. Up until I started theming, I working on my rom 100% on my device. This is the most tried-and-true method out there, and the one most likely to create the least drama. All you have to do is Pull the /system partition from your Player, and create a tarfile out of ti.
Prerequisites:
Samsung Device (system partition location may change with device type. This should be the same for US/INTL players)
PC running Ubuntu/form of linux (ubuntu is recommended for beginners)
ADB installed (actually not needed, but speeds up the process) (look below in resources for a guide)
appx. 300mb free on /sdcard
about 1 GB free on the Linux box
1. Apply whatever mods you want too
2. Open up a terminal emulator
3. type this in: dd if=/dev/block/stl9 of=/sdcard/factoryfs.rfs bs=4096
4. wait for it to complete (may take up to 10 minutes)
5. You now have a file called factoryfs.rfs on your internal sdcard
6. Hook it up to a computer and activate usb storage
7. copy factoryfs.rfs to whatever directory you want (home is recommended for simplicity)
8. Open up a terminal
9. cd to the directory of your file (if you placed it in home skip this step)
10. Type in "tar -H ustar -c factoryfs.rfs >packagename.tar"
11. Now you have a odin-flashable rom!
ADB users, simply run adb shell and type in the first command, then adb pull the file to the computer.
If you want to save space for a file sharing website (eg. mediafire, which has an upload cap of 200mb), simply Zip the file using 7-zip (set on ultra). You may have to do this on a windows machine.
Now this is even easier! simply flash the stock image in the link below with all the essentials included, and you can apply all the mods you want without having to ever go through dsidxa kitchen! Klin even fixed busybox for you! this way you can easily start from stock and work your way up to more advanced hacks.
http://forum.xda-developers.com/showthread.php?p=27973753#post27973753
The Advanced Users Guide: CWM packages.
Maybe you want more flexibility. Maybe you need to deodex your rom to mod some stock files, or zipalign to speed things up. This guide is for you people who need the more advanced options. It is harder, and you have a greater chance of messing things up, but you get to completely control your rom, even easily edit it on the computer! This guide is for advanced users only, or someone who is willing to spend a lot of time on trial and error.
Prerequisites:
ADB installed (Extremely helpful, and may to required)
Samsung device
Ubuntu/linux box
A bit of caution
Patience
1. Install Dsidxa Kitchen
2. Put your factoryfs.rfs in the necessary folder
3. cd to the directory you installed the kitchen
4. Type "sudo su"
5. enter your password
6. Type "chmod +x menu"
7. run "./menu"
8. you are now in the main menu of the kitchen.
9. There are many options, choode the one that you need!
Note: stay away from installing busybox using the kitchen. It installs a bad version of busybox which can make rom development a big headache for you!
10. There is a working folder in the kithcne directory, in there mod all the files you need.
11. When you are done, head into option 99 (create rom)
12. Run the interactive option
13.When you get to the update-script type, type "y" to install the newer type, which is required to flash a cwm zip in the Galaxy Player.
14. If you want to flash your rom using stock recovery, sign it. Else, leave it alone.
15. You can keep the normal name, or change it to what you want. If you are going to be flashing using stock recovery, make sure it is named "update.zip"
That is it! If you want to create a odin package out of it, simply flash the cwm zip, then follow the instructions above!
I will be adding on to this guide as time goes on, so make sure you ask pertinent questions below!
Resources/Additional Guides:
Install ADB:
http://forum.xda-developers.com/showthread.php?p=11823740#post11823740
Install dsidxa kitchen:
http://forum.xda-developers.com/showthread.php?t=1303311
4.0 base (essentials installed, just apply your hacks and you are good to go! thanks klin):
http://forum.xda-developers.com/showthread.php?p=27973753#post27973753
Easy theming guide:
http://androidforums.com/optimus-m-...guide-theme-guide-noobs-adding-lots-more.html
APK multi-tool (needed to theme):
http://apkmultitool.com/?q=node/5
Recommended hosting sites:
www.mediafire.com
Good Rom practices:
1. If you retheme, include screenshots! people love screenshots.
2. Make a logo if you can, it makes it easy for people to support your rom by adding it into their signature.
3. If you mod, make sure you can easily explain it to someone if need be. Messy hacks are not good in the long run!
4. Focus evenly on all parts of your rom. Some people love speed, others love features. You can focus on one or the other but try and keep it balanced.
5. If you create a custom script/init,d script/documentable file make sure you include comments in your mod so people can try and fix it if need be!
6. Make sure all the bugs are ironed out before release. People love fast releases, but if it is really buggy they may switch to another rom.
7. if you have exhausted all other methods of fixing an issue, or cannot work on it a lot in the opcoming days/weeks, release a beta version stating the bugs clearly. That way while you are gone, more experienced people can help you iron out the bugs.
8.Make sure it is easy for the person to obtain your rom. If they have to download another utlity or click through 30 ads, they may just want to use another rom than go through the hassle. Worse, they may mess it up, forcing you to help them troubleshoot.
9. Make sure you update utilities on your rom as soon as an update becomes availible. That way you get the fewest bugs, and as I said before, users love updates!
10. Even if someone's issue seems isolated, at least spend some time with them figuring out what happened so they can fix it. You never know, it may be the harbinger of a HUGE outbreak of issues.
11. Base your rom on an intl version. There is a fortunate "bug" that klin discovered that allows US users to use any intl rom without their home button breaking. Of course, that has a lot of asterisks, but if you will look below, I have developed a fix for that issue, which allows anyone with a "broken" home button to use it with the problematic rom!
12. Practice good rom devving. If there is a major issue that could be a pain, don't take the easy way/fix out. That always comes back to bite you later, as I have figured out. I once had a corrupt journal on my system partition, and did not want to go through the hassle of recreating my rom on a clean partition. So, I simply added a flag to have /system mount as rw if there are any issues. Sure enough, about 3 days later, I started having some filesystem issues, and had to completely rebase, because I did not have any backups.
13. ALWAYS keep backups. Just do it. Not just one, either. Keep at least three days worth of backups, just in case there is an issue in backup 1 and two, but it not in no. 3. This would have been hugely helpful to me in many cases, but I didn't want to "waste" the space. Guess what I did a few days later: spent a nice evening with linux fully recreating my rom from scratch. Just do it.
Fix home button issues. (useful if you use a rom seperate than a flasher's region) (developed by me)
I have finally, after a bit of luck and some know-how, determined a fix for the home button issue! This will work on ALL roms, not just this one, and will probably work for the 5.0 as well. This also means you can fully wipe data if you want, and simply apply my fix.
1. Navigate to /dbdata/databases/com.android.providers.settings
2.Optionally copy to a computer (easier that way)
3.Open it up in a sqlite editor (if you are doing this on the device, copy it to /sdcard and and then copy it back
4.Navigate to the locale/first section (there should only be one string in there
5.It should look like en_US if you have a US player, or en_GB if you have a UK/intl player
6.Change the string to the language/locale you use (if you are INTL you can merely change it to xx_GB, where xx is your language. If you are US, just perform the same steps, but change the last part to US)
7. commit/save the file and copy it over the old one
8. Reboot, and your home button *should* be fixed!
NOTE: I have not personally tested this. It has a 99% change of working, but I have yet to completely verify it.
NOTE: after you replace the file, android may go a little haywire (wifi disconnects, forgets password, advanced reboot option unavailable, etc.). THIS IS OKAY. Simply reboot, and it will all be back. Do not change any settings after copying until it reboots, as it may possibly break the fix
NOTE: I cannot provide a downloadable file, as that file contains all of your system settings, and if you use mine, my settings will be applied, which could be pretty bad in some cases.
NOTE: this has no chance of bootlooping or bricking your device. At absolute worst, you have to set up a few settings/restore from a /dbdata backup. There is almost no risk involved.
Potential fixes for potential issues:
1.Bluetooth breaks. The main cause of this is if you install supercharger and nullify. Simply unullify and verify it is remove from build.prop, and you are good to go!
2. Home button breaks. (see above )
3. Root/busybox breaks. It's kinda messy, but if you absolutely HAVE to, simply reroot. That should fix it in a pinch. This is a classic case of keeping good backups. I have had to spend an entire afternoon redoing my entire rom because of my lack of recent backups. If you have the space, keep them. I have more than once managed to create a stopgap solution in my rom just to have some weird issue pop up again, and again. Just do it.
I LOVE you, man.!!
Hanthesolo,
Very good achievement, we all have to learn from your good sharing.
Congratulations man
rgds
I am really happy you guys like this! I will continue to add to it as time goes on, so expect even more content!
Sent from my EtherealPlayer.
New content up! also notice the link to the stock rom klin made so that you never need to go through a kitchen to get your rom started!
Has anyone used this yet? successes/failures? make sure you give me feedback so I can make this better!
Yet mre content up! Could this be possibly stickied? I know it's a little rough right now, but noone replies to this thread as there really is nothing to reply TO. I have worked hard on this and would hate to see this information go the way of the dead threads.
Thanks for this info man, making roms for my old evo and just stacking up on guides and any kind of reading material that I can utilize for my advantage. So, this will be helpful lol. I'll be checking back every so often on anything new added, but thanks again bro. Thanks given! Feel Encouraged!! lol
iAMsalm said:
Thanks for this info man, making roms for my old evo and just stacking up on guides and any kind of reading material that I can utilize for my advantage. So, this will be helpful lol. I'll be checking back every so often on anything new added, but thanks again bro. Thanks given! Feel Encouraged!! lol
Click to expand...
Click to collapse
Glad you enjoy it, this forum is the abandoned, dusty wasteland of xda, so I wrote this guide to (hopefully) stimulate development a bit.
hanthesolo said:
Glad you enjoy it, this forum is the abandoned, dusty wasteland of xda, so I wrote this guide to (hopefully) stimulate development a bit.
Click to expand...
Click to collapse
I know it definitely feels like that from time to time, but that's a byproduct of the nature of our devices. There's ridiculous money in selling someone a shiny new crippled phone with a horrific contract that will never get updated. You won't see a jawdropping ad on TV featuring a Galaxy Player because there's just no money in it. I'd love to have the T-Mobile girl holding my phone while wearing a pink leather riding suit(her, not me). That ain't happening.
I'm pleased and more than a little shocked that some new roms have come out in the past month thanks to this guide. I wanted a Android powered phone without the contract. I wanted an iPod Touch without all the bull**** that comes from being tied to Apple. Thanks to XDA my device fast, sexy as Hell, and does everything I want.
The only thing that makes me sad is that a year from now I probably won't be able to buy a Galaxy Player 4.0 v2 because there's just too much money to be made from contract only devices.
Thanks for this guide. It help me for begin android development.
GalaxySWifi4 said:
Thanks for this guide. It help me for begin android development.
Click to expand...
Click to collapse
I hope you have fun beginning development! It really is a lot of fun once you et past the basics.
Gswifi, I never replied to you, but your speech was so awesome, that I want to put it in the OP .
If you want me to update the OP with an equivalent for ROM compiling (I know that I had a hard time figuring out just WHERE the folders to go, so we need a good guide...), chime in your support please!
hanthesolo said:
If you want me to update the OP with an equivalent for ROM compiling (I know that I had a hard time figuring out just WHERE the folders to go, so we need a good guide...), chime in your support please!
Click to expand...
Click to collapse
@hanthesolo
do you have some knowledge about kernel compiling, so you could hel me?
hanthesolo said:
If you want me to update the OP with an equivalent for ROM compiling (I know that I had a hard time figuring out just WHERE the folders to go, so we need a good guide...), chime in your support please!
Click to expand...
Click to collapse
please do
I understand early nothing about this advanced stuff of making ROMs, even more about make Kernels XD. But I want to experiment some little things to learn by myself step at step. But... I cannot start... I'm in CM10.1 with Koala's Kernel and I can't make the factoryfs.rfs file doing this: dd if=/dev/block/stl9 of=/sdcard/factoryfs.rfs bs=4096 in Terminal Emulator because /dev/block/stl9 doesn't exists. With ADB I have the same error.
Is this due to this ROM is not stock or something like this? Or only I have to create this folder or change it by other...
---------- Post added at 02:55 AM ---------- Previous post was at 02:37 AM ----------
I'm trying to do this but without if=/dev/block/stl9. I don't know if I'm doing well...
How about some info on modifying or tweaking already compiled roms?
Say you want to remove some of the apps included with CoolDevXYZ's rom or modify some of the settings pre-install (e.g. build.prop tweaks, etc.). How do you tell the kernel these changes are intentional, not the result file corruption, infection or something?

[Q] Development for Tizzbird N1 ?

Hi! So I'm wondering if anyone know if there is\have been any development for
the Tizzbird Stick N1 (M\G) ?
We have this Android-stick in stock at my store, but I'm not sure if I'm going to get it or not yet. Depends the development, as I'd really like to see the capabilities for it. I believe it's a lowbrand tho. so I might be out of luck.
Anyone know anything?
I searched the forums, and did a google search. Didnt find much.
regards,
Dag M.
Hi there!
I own one of those, and there are a handful of (german-speaking) people activly posting in this forum http://forum.tizzbird-tv.de/ about the Tizzbird N1. - The problem with that forum is that they heavily censor it - as soon as anyone posts info on how to "get in", or if someone asks uncomfortable questions - those posts gets deleted.
They sell it really cheap for 30€ (not all the time, but twice for one day @ redcoon) and although the Wifi-Chip (or the drivers for it) are really crappy, the media player part is really nice.
update: I've did a little research, and here is a little list of relevant links about the tizzbird n1:
==== Marketing Product Pages ====
http://valueplus.co.kr/english/product/product_player_n1.html
http://www.tizzbird.com/eng/index.php?mm_code=719&sm_code=755
http://tizzbird-tv.de/tizzbird/tizzbird-n1.html
==== Official Firmware ====
http://www.tizzbird.com/eng/index.php?mm_code=726&sm_code=727&board_search_head_word=stick+n1
http://download.tizzbird-tv.de/TizzBird_N1G_update_GMS_V3_20_13072719.tzbird
==== German Support Forum (posting info about root-access prohibited) ====
http://forum.tizzbird-tv.de/viewforum.php?f=11
==== GPL-Code for Tizzbird N10, N20 & N30 - but not for N1? ====
http://www.tizzbird.com/eng/index.php?mm_code=752&sm_code=754
==== Kernel Sources ? ====
http://www.cnx-software.com/2012/03...k-n1-android-ics-hdmiusb-dongle-media-player/
http://www.cnx-software.com/2012/07...hips-tcc8925-mini-pcs-cx-01-z900-tizzbird-n1/
https://github.com/cnxsoft/telechips-linux
Yeah, the pretend to be "community friendly and supportive" but once you actually start digging in, they get quite agressive and boot you out.
Anyways, I got a N1 a couple of days myself now (snagged it for 30 bucks at another RedCoon sale ) and I am surprised.
Got it pretty much only to tinker around with it and this thing suits more perfectly for that than I imagined.
Esp. that fact they used a simple SD card as "internal flash storage" - my guess is because a simple SD is cheaper than an actual eMMC flash chip, but it's so cool on so many levels for us.
I already found out how to replace the 4GB SD with a bigger one (have a 16GB in mine ATM).
I'll post some more details about it here later, got a few things I want to test and/or prepare first (thinking of some "easy to use cloning script"), but long story short:
You need to copy the bootloader to the very end (last few blocks) of the SD you want to use.
Once the BL is at the proper place it already boots from the new SD again, to be sure everything is as it's supposed to be one should apply an update via USB (I'm not 100% sure about a possible pointer to the BL that needs to be corrected, which the update does).
After that the partition information has to be edited to make the userdata partition larger and you're done.
thanks for the info HellcatDroid!
It would be great if you could elaborate on how to put the bootloader at the end of the sd-card.
Also I would love to get info how to get root into the stock firmware, that crippled down root-firmware that they allow to exist in the official tizzbird forum doesn't really satisfy my needs
I did it via a hex editor, but it should be doable with a few "dd" commands as well - that's one of the things I still want to try, find the propper dd params to copy the BL over.
If you dumped the original SD into a file using dd, at the very end of the image file you will find the bootloader and the very last block of the SD is a "header" telling the bootrom of the N1 a few things about it, so it can properly locate and load it.
So what you got to do is to copy those last ~230k from the image to the end of the new SD card.
As said, I'll try to write a small shell script that does it.
The rooting is even more easy (Stonecold would kill me if he'd read this, lol):
For when running on Linux (no can do on Windows, as Windows doesn't know the ext4 FS):
Since you got the SD in your PC anyways already, just mount partition 2 (e.g. if the SD is sdc on your PC, mount /dev/sdc2).
That is the partition where the Android system is sitting on.
Then just copy over the files needed for root to where they need to go, chown/chmod them properly, unmount and done
I used the "update-supersu.zip" I had for my Nexus7 to grab the required files.
But I'm planning to make a simple rooting script as well.
So if all goes as planned it'll come down to
- insert original SD
- run script 1
- insert new SD
- run script 2
- to root run script 3
brilliant! I would love to see those scripts
way easier than start tinkering with that stuff myself
One thing I wonder about - over at the official forum you said that a simple dd copy didn't work - is that if the target sd-card is bigger or also for an sd-card of equals size? because with equal size simple dd copy of the sd-card should still work, even if some things need so be exactly at the end.
Yup, just a dd didn't work because the new SD card was larger and the bootloader ended up being somewhere in the middle of the card instead of at the end.
While your thought of "dd to equal size cards" is totally correct, it might still fail due to the fact every card is not 100% exact same size counting down to last byte.
There ususally is a tiny size difference (a few bytes to kbytes) between cards, even if they are supposed to be same, so the bootloader might end up truncated or not exactely at the end.
If, however, the size of the cards is 100% the same, down to the last byte, then yes, a simple dd clone would work.
HellcatDroid said:
... There ususally is a tiny size difference (a few bytes to kbytes) between cards, even if they are supposed to be same, so the bootloader might end up truncated or not exactely at the end. ...
Click to expand...
Click to collapse
Oh! Didn't know that. I thought same marketing size means not the same size they write on the box, but at least the same size between those that are marketed with the same GB numbers on their stickers.
OK, here we go, I slapped together a few scripts for prepping a new (and larger) SD card to work in the N1 and while having the SD in the PC to aplly some root.
* hints at attachment of this post
The scripts might still have problems and not work on any Linux out there, but it's a start.
If there's more people interested and joining in on this I might continue but for now I got what I wanted - more storage and root.
Hi
I think I destroyed my MiniSC cand! The N1 is dead. I tried to insert the card in a linux and gparted did not see anything. What can I do?
thank you for your help
somade said:
Hi
I think I destroyed my MiniSC cand! The N1 is dead. I tried to insert the card in a linux and gparted did not see anything. What can I do?
thank you for your help
Click to expand...
Click to collapse
Could you post how you got there? what did you do to the sd-card that destroyed it?
Hi.
If you got a dump from a working state of the SD you can just dd it back onto the card.
If you don't, it can still be recovered but might need bit more work.
Two options:
find someone who gives you a dump of their card and use the write-card script from my above post to write it to your SD.
Problem with this: a working dump contains copyrighted code, like the bootloader, it technically it's "not OK" to share it
we come up with another script that only contains an "empty" image (i.e. only partitioning information) and that takes the bootloader and recovery from the official update and gets the card into a state that it boots into recovery and lets you install a working system using the official update from USB (option in the recovery menu)
Option 2 would be nicer, IMO.
I'll try to make up said script
Thank you for your immediate answer!.
Actually I dont know what has happened, maybe the sharp instrument I used to remove the plastic cover scratch it...But now when I put it in a card reader the led of the reader switch off and the card is heated!!!. And also when I put it in the N1 the blue led turns off!.
So I bought a new empty micro Sd .
Waiting for your script to partition the new card and then boot in recovery mode and install a firmware....
Because I am not expert to linux please give me a lot of details how to do this.
Thanks again!
HellcatDroid said:
we come up with another script that only contains an "empty" image (i.e. only partitioning information) and that takes the bootloader and recovery from the official update and gets the card into a state that it boots into recovery and lets you install a working system using the official update from USB (option in the recovery menu
Click to expand...
Click to collapse
Do you think the bootloader is even part of the offical updates? wouldn't it be "best practice" to leave the bootloader partition alone as long as possible (and normally firmware updates don't need to change the bootloader)
update: something else I've just found, those might be kernel sources for our Tizzbird N1:
http://www.cnx-software.com/2012/07...hips-tcc8925-mini-pcs-cx-01-z900-tizzbird-n1/
-->
https://github.com/cnxsoft/telechips-linux
Yep, the bootloader is in the update - at least in the 3.20 one.
And yes, usually the bootloader shouldn't be touched because that's usually the one thing that can "perma-brick" Android devices.
However, sometimes the manufacturer updates it (fixing bugs, adding functionality) - on my Nexus7 they updated the bootloader on pretty much every update and also Samsung updates their bootloaders every now and then (and every single update flashes the current one).
Last, not least, on the N1 the bootloader isn't on a partition but at unpartitioned space at the very last blocks of the SD (=> reason for a simple dd to a larger card not booting).
Ohyay at the possible kernel sources!
It'd be so cool if that's really sources able to build a kernel for the N1 with - I think we might be able to even get custom recovery (CWM and the likes) on the N1 if those sources work
OK, while trying to recreate a working SD card w/o using a dump of a working one I found out a few more things - some of them still need figuring out if we wanna do it properly.
There seem to be TWO bootloaders!
A stage1 bootloader of ~1kB size located at the third and second last block of the SD. If it's missing the N1 can't boot and it looks like ARM code (haven't tried to disassamble it yet), I assume the bootrom loads and executes that piece of code which in turn parses the header (see below) and load/starts the stage2 bootloader (the one also found in the FW update).
The very last block of the SD is a "header block" with some information beeing parsed either by the bootrom or (more likely) the stage1 bootloader.
The headerblock contains (among numerous other unkown data) the size of the ("stage2") bootloader (the one that then actually loads and boots the Linux kernel of the Android OS, this is also the one contained in the FW update) and the usable size of the SD card! (everything works fine though if the SD size is wrong and a proper FW update updates the header during writing of the bootloader and also sets the correct size).
Also, the headerblock has a checksum of which I have no clue on how it is generated.
All that is just educated guesses and might be totally off, but for now it looks like it's not too far off.
So, for now we can assume the following boot sequence:
Boot-ROM
-> loads stage1 bootloader from fixed position "SDsize - 3 blocks" (1 block = 512bytes)
stage1 bootloader at fixed position on SD
-> checks checksum of headerblock (?), gets size of stage2 bootloader from headerblock, locates stage2 bootloader based on it's size and loads/executes it
stage2 bootloader on variable position on SD
-> base initialisation of hardware
-> checks for recovery trigger (the red button on the remote control) and boots kernel from partition 6 if trigger present
-> boots kernel from partition 1 if recovery was not triggered
-> enters fastboot mode when booting the kernel fails
Kernel
-> loads base drivers and boots up the system
you're brilliant Hellcat!
And did you also find both bootloader stages inside the firmware updates?
Another question that came to my mind while reading your post (fastboot..)
Is there a way to use the Tizzbird as USB-slave? So to make use of adb and fastboot and such stuff? Okey adb could also be used via network I guess..
somade said:
Hi
I think I destroyed my MiniSC cand! The N1 is dead. I tried to insert the card in a linux and gparted did not see anything. What can I do?
thank you for your help
Click to expand...
Click to collapse
Somade, do you have a linux running on your pc? If no, download and get a knoppix running. and then contact me via pm. I have the original n1 image so no problem to recover the n1.
sebastian.heyn said:
Somade, do you have a linux running on your pc? If no, download and get a knoppix running. and then contact me via pm. I have the original n1 image so no problem to recover the n1.
Click to expand...
Click to collapse
Welcome to our rouge and non-censored Tizzbird N1 forum Sebastian!
I wonder if you found us here, if the German Tizzbird support also already knows about us
update: I just remembered, I've sent you the link as PM over in the official forums, thats how you landed here.
Sharing your sd-card image might be a copyright violation, and if you're profile name is strongly linked to you're real identity you should definitly be cautious with such things on public forums...
kaefert said:
And did you also find both bootloader stages inside the firmware updates?
Click to expand...
Click to collapse
Nope, unfortunately the stage1 bootloader is not in the update :-/
kaefert said:
Is there a way to use the Tizzbird as USB-slave? So to make use of adb and fastboot and such stuff? Okey adb could also be used via network I guess..
Click to expand...
Click to collapse
Yeah, it works, even officially XD
Go to the TizzBird settings -> "System Settings" -> "Advanced Settings"
It has an option "OTG Mode" there, set it to "Debug".
If you have your N1 connected to your PC via the micro-USB port (and hence your PC powering the N1!) you can use ADB and fastboot just as usual
I have not yet tried if that option is persistant, i.e. it survives a power loss.
When booting the kernel fails it should fall back to fastboot mode, so flashing a new kernel w/o pulling the SD should be possible - need to test this a bit more, though.
What works is, if you're rooted and and you fire the command "reboot bootloader" from a root shell, that gets you into fastboot mode no matter what (given you applied above mentioned setting first).
But needing a running system to get into fastboot mode kinda defeats the purpose of it - this aint Ouya which is a total fail when it comes to fastboot XD
---------- Post added at 09:26 AM ---------- Previous post was at 09:05 AM ----------
kaefert said:
I wonder if you found us here, if the German Tizzbird support also already knows about us
Click to expand...
Click to collapse
Eventually they will, I'd say.
And I'd love to see their faces when they do XD

SU for Android on ChromeOS

This is a cross-post from a reddit thread I started, but this is probably a more appropriate location for it.
I have been trying to modify files in the system folder for the Android container on the Asus Flip so I can install SuperSu, but have run into some problems.
The system folder is contained in a squashfs image on the chromebook at /opt/google/containers/android/system.raw.img. Mounted squashfs images appear to not support read-write access. I have been able to unsquash the image, add the SuperSU apk to the /system/priv-app folder and su to the /system/xbin folder, and remake the image. This boots, but SuperSU force closes as soon as it starts.
To make tinkering easier, I've tried building a writable image using dd and mkfs. I placed it in a location that has rw access and modified the /etc/init/android-ureadahead.conf script which mounts it to enable rw access. Unfortunately though it won't boot. The boot logs for the android container show a litany of SELinux errors for different things that it could not set context, operation not permitted. I can post the exact log if necessary. Some googling led me to find that the SELinux security context attributes weren't being replicated in my image, so I tried mounting with context and fscontext options equal to the contexts from the original image, but I get the same problem.
If anyone has any ideas I'd be especially grateful.
lionclaw said:
This is a cross-post from a reddit thread I started, but this is probably a more appropriate location for it.
I have been trying to modify files in the system folder for the Android container on the Asus Flip so I can install SuperSu, but have run into some problems.
The system folder is contained in a squashfs image on the chromebook at /opt/google/containers/android/system.raw.img. Mounted squashfs images appear to not support read-write access. I have been able to unsquash the image, add the SuperSU apk to the /system/priv-app folder and su to the /system/xbin folder, and remake the image. This boots, but SuperSU force closes as soon as it starts.
To make tinkering easier, I've tried building a writable image using dd and mkfs. I placed it in a location that has rw access and modified the /etc/init/android-ureadahead.conf script which mounts it to enable rw access. Unfortunately though it won't boot. The boot logs for the android container show a litany of SELinux errors for different things that it could not set context, operation not permitted. I can post the exact log if necessary. Some googling led me to find that the SELinux security context attributes weren't being replicated in my image, so I tried mounting with context and fscontext options equal to the contexts from the original image, but I get the same problem.
If anyone has any ideas I'd be especially grateful.
Click to expand...
Click to collapse
Wayyyy out of my area of expertise, but here's my (completely novice) best guess.
>All Chromebooks are write-protected with a screw on the motherboard
>Putting a Chromebook in developer mode allows for some tinkering ie things like chroots, and on the asus flip, the ability to install apks from unknown sources.
>Unscrewing the write-protect screw allows for the ability to completely install a new operating system or dual boot setup.
>Maybe you need to do that before you're able to accomplish root access?
My other idea would be to try and figure out a way of doing a systemless root?
Also, total aside but since this is the only thread I've found on XDA about this device, I think chroots are theoretically possible now without the need to be in developer mode via Android apps (even without root on Android). Download the GIMP port from the Play Store to see what I'm talking about. Playing around with that for a few minutes really made me wish that it didn't use emulated mouse/keyboard in it's implementation. Also, it appears that apt-get is broken, but regardless it might interest someone out there looking for a project.
back from the dead, any progress on this?
I have been able to successfully root the Android image on my Asus Flip.
I built a blank image with dd in /usr/local, formatted it with mkfs, mounted it to a folder, mounted the original system.raw.img to a folder, copied the files across, placed *all* the SuperSU files listed as 'required' in the SuperSU update-binary in the relevant places in /system in my new image, set permissions & contexts for those files, edited arc-system-mount.conf and arc-ureadahead.conf to point to the new image and, finally, patched /etc/selinux/arc/policy/policy.30 with the SuperSU sepolicy patching tool in order to boot my rooted Android instance with selinux set to enforcing.
I have created a couple of scripts which more-or-less fully automate this procedure, which can be downloaded from nolirium.blogspot.com. Please feel free to download, open the scripts in a text editor to check them out, and try them out if you like. Only tested on Asus Flip, though.
I seem to be unable to post attachments at the moment so I will just add the descriptions here, I could probably post the entire scripts here too if anyone wants. Feel free to let me know what you think.
DESCRIPTIONS:
1-3.sh
Combines the first three scripts listed below.
01Makecontainer.sh
Creates an 900MB filesystem image in /usr/local/Android_Images, formats it, then copies Android system files therein.
02Editconf.sh
Modifies two system files: arc-system-mount.conf - changing the mount-as-read-only flag and replacing the Android system image location with a new location; and arc-ureadahead.conf - again replacing the Android system image location. Originals are renamed .old - copies of which are also placed in /usr/local/Backup.
03Androidroot.sh
Mounts the previously created Android filesystem image to a folder, and copies SuperSU files to the mounted image as specified in the SuperSU update-binary.
04SEpatch.sh
Copies an SELinux policy file found at /etc/selinux/arc/policy/policy.30 to the Downloads folder, opens an Android root shell for the SuperSU policy patching command to be entered, then copies the patched policy back to the original location. A copy of the original policy.30 is saved at /etc/selinux/arc/policy/policy.30.old and /usr/local/Backup/policy.30.old
Uninstall.sh
Removes the folder /usr/local/Android_Images and attempts to restore the modified system files arc-system-mount.conf and arc-ureadahead.conf.
ok so two questions, one do you think this would work on the Acer r13 convertable? and 2 where can I find the actual instructions/scripts
keithkaaos said:
ok so two questions, one do you think this would work on the Acer r13 convertable? and 2 where can I find the actual instructions/scripts
Click to expand...
Click to collapse
The R13 has a 64-bit Mediatek processor, right?
I have added a version for ARM64, but I haven't tested it.
You can find the instructions and scripts at nolirium.blogspot.com
ya, its a mediatek. and thanks ill go see if i can find it
---------- Post added at 03:31 AM ---------- Previous post was at 02:58 AM ----------
wow, ok. i can do this but im not sure i want to.. after reading the possible problems i may run into. Im going to be getting the G. Home in a couple weeks and i gotta keep things running smooth. This seems like going a tad too far then i need to. The other day i had action launcher going and it looked pretty damn good but i really want to try and get the action3.apk that i have put into the pri-app folder or whatever the chromebook uses i found the syst folder but cant access it. Im wondering if i make the machine writable it would work but im afraid of losing my updates, as long as i could do them manualy, i guess that would be cool. Also since im already going on... has anyone found a way to disable the dev boot screen without tinkering with the physical chromebook yet?
SuperSU on Chromebook
Hey there I love this post but unfortunately im on the mediatek (well not unfortunately cause i love it) but i do really want super su .. But i found this other post that i tried out but i am having a problem executing the scripts. When i go to run the first one, it says can not open "name of script" but the dev takes a pretty cool approach. Im still new to Chrome OS but thanks for the post and if you have any advice on executing scripts id love to hear it!! http://nolirium.blogspot.com/
I'm guessing the above post was moved from another thread...
Anyway, it turns out that zipping/unzipping the files in Chrome OS's file manager sets all the permissions to read-only. Apologies! sudo chmod+x *scriptname* should fix it...
Regarding OS updates, I actually haven't had a problem receiving auto-updates with software write-protect switched off; the main possible potential issue I could imagine arising from the procedure I outlined would involve restoring the original conf files if both sets of backups get deleted/overwritten. This seems unlikely, but in that case either manually editing the files to insert the original string (/opt/google/containers/android/system.raw.img), or doing a powerwash with forced update might be necessary in order to get the original Android container booting again.
I don't think anyone's found a way to shorten/disable the dev boot screen without removing the hardware write-protect screw - from what I've read, the flags are set in a part of the firmware which is essentially read-only unless the screw is removed. Perhaps at some point the Chrome OS devs will get fed up of reading reports from users whose relatives accidentally reset the device by pressing spacebar, and change the setup. Here's hoping.
Hey just jumpig in the thread right quick to see if these instructions are old or what-- got a chromebook pro and the notion of having to update a squashed filesystem every timeto install su seems like a pain..
Is there any kind of authoritative documentation/breakdown regarding what Chromeos is mounting where before I start breaking things? Also anyone happen to know if there's a write-protect screw anywhere in the chromebook plus/pro?
Other questions:
* adbd is running, but is not accessible from adb in the (linux) shell, which shows no devices. Do I need to access adb from another device (i'm short a usb c cable right now) or can I use adb (which is there!) on the chrome side to access adbd on the android side?
* Anyone know if adb via tcp/ip is available? Don't see it in the android settings.
Hey,
There's no real documentation AFAIK, the thing is that ARC++ is a bit of a moving target, as it's so actively being developed/reworked. For instance, with the method described earlier in the thread - it started off being possible to just swap out a file location in arc-ureadahead.conf, then they changed it to arc-setup-conf, and now, since a few CrOS versions ago, the rootfs squashfs image is mounted in a loop fashion via the /usr/sbin/arc-setup binary instead, making an overview of the setup somewhat opaque to the casual observer.
I was kind of hoping to implement a kind of hybrid systemless root style setup myself, but unfortunately I haven't really managed to find the time to sit down and fully figure out a few parts of the puzzle, in particular relating to minijail and working with namespaces. So, I'm still using the method mentioned in posts above for my rooting needs at the moment, the only significant changes being that at the moment I'm replacing /opt/google/containers.android.system.raw.img with a symlink to my writeable rooted rootfs img, and also that in recent CrOS versions the mount-as-read only and debuggable flags can be found in /etc/init/arc-setup-env ("Environment variables for /usr/sbin/arc-setup").
In general though, one can kind of get an idea of what's going on in the default setup by reading through the various /etc/init/arc-* Chrome OS upstart jobs (and their logs in /var/log). Though, like I say, things keep changing around somewhat with every CrOS update, as the implementation 'improves'. As time goes by, and the subsystem matures, it'll certainly be interesting to see what other approaches are possible relating to customizing Android on Chrome OS.
There should definitely be a write protect screw somewhere on the motherboard for the Samsungs, but so far I haven't come across any pics showing exactly which screw it is. So far, no-one seems to have been brave/foolhardy enough to fully tear down their own machine and locate the screw!
Regarding adb, on my device I found the following in arc-setup-env:
# The IPV4 address of the container.
export ARC_CONTAINER_IPV4_ADDRESS=100.115.92.2/30
adb 100.115.92.2 (in Chrome OS's shell) works fine for me, the authorisation checkbox pops up and then good to go. su works fine through adb as expected. There's also a useful little nsenter script in Chrome OS to get into the android shell; /usr/sbin/android-sh, which I've been using in my script to help patch SE linux.
I actually just updated my rooting scripts recently to support 7.1.1, though I've only tested on my own Armv7 device (Flip C100).
I'll attach them to this post in case anyone wants to take a look. There's a readme in the zip, some more details can also be found here and below
EDIT: Fixed the SE Linux issue occurring with the previous version I uploaded (it was launching daemonsu from u:r:init:s0 instead of u:r:supersu:s0).
Anyone considering giving them a spin should bear in mind that the method does involve creating a fairly large file on the device as a rooted copy of the android rootfs. (1GB for arm, 1.4GB for Intel). There's a readme in the zip but the other couple of important points are that:
a) The SuperSU 2.82 SR1 zip also needs to be downloaded and extracted to ~/Downloads on the Chromebook.
b) Rootfs verification needs to be off. The command to force this is:
Code:
sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --force --partitions $(( $(rootdev -s | sed -r 's/.*(.)$/\1/') - 1))
or the regular command to do it is:
Code:
sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification
c) If, subsequent to running the scripts, there's a problem loading Android apps (e.g. after a powerwash or failed install), the command to restore the original rootfs image is:
Code:
sudo mv /opt/google/containers/android/system.raw.img.bk /opt/google/containers/android/system.raw.img
Hey this is a great response.. thanks!
Nolirum said:
Hey,
There's no real documentation AFAIK, the thing is that ARC++ is a bit of a moving target, as it's so actively being developed/reworked. For instance, with the method described earlier in the thread - it started off being possible to just swap out a file location in arc-ureadahead.conf, then they changed it to arc-setup-conf, and now, since a few CrOS versions ago, the rootfs squashfs image is mounted in a loop fashion via the /usr/sbin/arc-setup binary instead, making an overview of the setup somewhat opaque to the casual observer.
Click to expand...
Click to collapse
verity
Yeah playing with it now, I'm looking at these /etc/init/arc-*-conf files... I see that the /dev/loop# files are being set up... (more below)
Nolirum said:
I was kind of hoping to implement a kind of hybrid systemless root style setup myself, but unfortunately I haven't really managed to find the time to sit down and fully figure out a few parts of the puzzle, in particular relating to minijail and working with namespaces. So, I'm still using the method mentioned in posts above for my rooting needs at the moment, the only significant changes being that at the moment I'm replacing /opt/google/containers.android.system.raw.img with a symlink to my writeable rooted rootfs img, and also that in recent CrOS versions the mount-as-read only and debuggable flags can be found in /etc/init/arc-setup-env ("Environment variables for /usr/sbin/arc-setup").
Click to expand...
Click to collapse
Sorry not sure what you mean by "hybrid systemless root style setup"? I take it you're modifying the startup script and replaced the squashfs file in /opt... my concern about doing it was whether they were implementing some kind of dm-verity equivalent to the squashfs file to make sure it hasn't been tampered with (say, by adding /sbin/su or whatever) or whether it's safe to replace that file.. Sounds like you're saying it is? (update: I guess that's what rootfs verification does, and we can turn it off....)
Also you mean arc-setup.conf:
env ANDROID_DEBUGGABLE = 0
right?
Nolirum said:
In general though, one can kind of get an idea of what's going on in the default setup by reading through the various /etc/init/arc-* Chrome OS upstart jobs (and their logs in /var/log). Though, like I say, things keep changing around somewhat with every CrOS update, as the implementation 'improves'. As time goes by, and the subsystem matures, it'll certainly be interesting to see what other approaches are possible relating to customizing Android on Chrome OS.
Click to expand...
Click to collapse
I hadn't realized the boot was still in flux-- I'd have figured they'd worked that out by now...
Nolirum said:
There should definitely be a write protect screw somewhere on the motherboard for the Samsungs, but so far I haven't come across any pics showing exactly which screw it is. So far, no-one seems to have been brave/foolhardy enough to fully tear down their own machine and locate the screw!
Click to expand...
Click to collapse
Heh.. not gonna be me..
Nolirum said:
Regarding adb, on my device I found the following in arc-setup-env:
# The IPV4 address of the container.
export ARC_CONTAINER_IPV4_ADDRESS=100.115.92.2/30
adb 100.115.92.2 (in Chrome OS's shell) works fine for me, the authorisation checkbox pops up and then good to go. su works fine through adb as expected. There's also a useful little nsenter script in Chrome OS to get into the android shell; /usr/sbin/android-sh, which I've been using in my script to help patch SE linux.
Click to expand...
Click to collapse
Cool-- adb connect 100.115.92.2 does indeed work I was gonna use netcat to open port 5555 in chromeos and pipe it through, but looks like nc isn't here and I'm not yet ready to start changing the FS..though probably will be soon... btw any idea which partitions get overwritten when chrome it does it's updates? Will /root and /etc get overwritten, for example... would a "powerwash" overwrite it or can you get easily get into an unbootable state on these things?
It's also kind of strange that adb is listening to port 30 at that (internal?) bridge address by default witho no UI to turn it off.. and it's inaccessible from outside.. i wonder if there's an easy way to change the bridge to share the same IP as the actual interface...
Final thought-- I'd love to build that system image myself soup-to-nuts, but I can't find any "caroline" device tree set up... do you or anyone else happen to know if there's a standalone AOSP device tree for the chromebooks? It would be cool to have a mashup AOSP/lineageos if such a think could be possible-- I'm guessing chromiumos is just taking the android tree, building it and then adding it into their build... I Haven't build chromiumos for many years now so I can't even begin to imagine how this android build integrates with the whole emerge thing they had going.. but I bet it takes a while
Nolirum said:
I actually just updated my rooting scripts recently to support 7.1.1, though I've only tested on my own Armv7 device (Flip C100).
Click to expand...
Click to collapse
Cool I'll take a look at these scripts.
So I haven't yet run the scripts-- just looking through them-- I noticed the section starting:
if [ -e /etc/init/arc-setup-env ]; then
echo "Copying /etc/init/arc-setup-env to /usr/local/Backup"
This doesn't exist on the x86 CB Pro. There's an arc-setup.conf that sets up the environment variables though. It sets WRITABLE_MOUNT to 0, but then so does arc-system-mount.conf
Not sure if these are different between x86 and ARM or if it's just in the latest update.. but figured I'd let you know. Wanna throw thse scripts up on github somewhere? (Or I can do it) and we can maybe look at keeping them up to date and/or standardizing them? It wouldn't be hard to determine if it's running on ARM or x86_64 (uname -i for example)..
fattire said:
So I haven't yet run the scripts-- just looking through them-- I noticed the section starting:
if [ -e /etc/init/arc-setup-env ]; then
echo "Copying /etc/init/arc-setup-env to /usr/local/Backup"
This doesn't exist on the x86 CB Pro. There's an arc-setup.conf that sets up the environment variables though. It sets WRITABLE_MOUNT to 0, but then so does arc-system-mount.conf
Not sure if these are different between x86 and ARM or if it's just in the latest update.. but figured I'd let you know. Wanna throw thse scripts up on github somewhere? (Or I can do it) and we can maybe look at keeping them up to date and/or standardizing them? It wouldn't be hard to determine if it's running on ARM or x86_64 (uname -i for example)..
Click to expand...
Click to collapse
Oh, the arc-setup-env thing is intentional. There does appear to be another issue with the x86 version though. I've written up a detailed response to your previous post; it's in a text file at the moment so I'll copy it over and format it for posting here with quotes etc now - should only take a few minutes. Yeah, sticking them on github might be a good idea; I've been meaning to create an account over there anyway.
Yeah, so... Regarding the scripts, since I've put them up here for people to download - I should mention that the first person to test them (aside from me) has reported that something's not working right (I'm waiting for confirmation but I think he tried out the x86 version). It's likely either an error on my part when copying across from my Arm version, or perhaps something not working right with conditionals, meant to deal with the various OS versions ('if; then' statements, I mean). Once I find out more, I'll edit my earlier post...
fattire said:
Sorry not sure what you mean by "hybrid systemless root style setup"? I take it you're modifying the startup script and replaced the squashfs file in /opt... my concern about doing it was whether they were implementing some kind of dm-verity equivalent to the squashfs file to make sure it hasn't been tampered with (say, by adding /sbin/su or whatever) or whether it's safe to replace that file.. Sounds like you're saying it is?
Click to expand...
Click to collapse
Oh, sorry for being a bit vague - I just mean perhaps implementing a kind of systemless root à la Magisk/SuperSU (from what I understand of how these work) - avoiding the need to actually replace files in /system. Since I'm mainly just using su for the privileges rather than actually wanting to write to /system, I had the idea that perhaps a sort of overlay on e.g. xbin and a few other locations, rather than actually rebuilding the whole of /system, might be an interesting approach....
Yep, I've been replacing /opt/google/containers/android/system.raw.img with a symlink to my modified image lately. Works fine... I think they've been focused on just getting the apps working properly, maybe something like dm-verity is still to come.
Although, one of the cool things with Chromebooks IMO is that once the Developer Mode (virtual) switch has been flipped, the system's pretty open to being hacked around with. I think a large part of the much-trumpeted "security" of the system is thanks to the regular mode/Dev mode feature, once in Dev Mode with verified boot disabled on the rootfs, we can pretty much do what we want (I like the message that comes up in the shell when entering the first command I posted under the spoiler - it literally says "YOU ARE ON YOUR OWN!").
So yeah, with Dev Mode switched off, verified boot switched on, we can't even get into the shell (just the walled-off 'crosh' prompt), making the system indeed rather secure (but, for some of us, rather limited).
fattire said:
Also you mean arc-setup.conf:
env ANDROID_DEBUGGABLE = 0
right?
Click to expand...
Click to collapse
That's what I mean by a moving target, lol. On my device the Canary channel is at Chrome OS version 61; I think they started to move out some ARC++ (the acronym stands for Android Runtime on Chrome, version 2, if anyone's wondering, btw) environment variables to a separate file in version 60, or maybe 61. Problems with being on the more 'bleeding edge' channels include:
#Sometimes stuff gets broken as they commit experimental changes.
#Any updates sometimes overwrite rootfs customizations; the higher the channel - the more frequent the updates occur.
#Some of the stuff that gets updated, may later get reverted.
And so on...
fattire said:
I hadn't realized the boot was still in flux-- I'd have figured they'd worked that out by now...
Click to expand...
Click to collapse
Yeah you'd think so. Honestly, the more I use CrOS the more it seems like a (very polished) work-in-progress to me. Though, I guess most modern OSs are also works-in-progress though. (I don't mean the former statement in a critical way; I'm very happy that new features keep getting added to the OS - Android app support being a perfect case in point, that was a lovely surprise, greatly extending the functionality of my Chromebook).
fattire said:
Cool-- adb connect 100.115.92.2 does indeed work I was gonna use netcat to open port 5555 in chromeos and pipe it through, but looks like nc isn't here and I'm not yet ready to start changing the FS..though probably will be soon...
Click to expand...
Click to collapse
Netcat's not there but socat, which I haven't any experience with but have seen described as a "more advanced version of netcat", is listed in /etc/portage/make.profile/package.installable, meaning that adding it to CrOS is supported, and as simple as:
Code:
sudo su -
dev_install #(sets up portage in /usr/local)
emerge socat
I tried socat out and it seems to work, might be interesting to play around with.
fattire said:
btw any idea which partitions get overwritten when chrome it does it's updates? Will /root and /etc get overwritten, for example...
Click to expand...
Click to collapse
Theres a question. I forget some of the exact details now (gleaned from browsing the developer mailing lists and the documentation on chromium.org), but from what I do remember and my experiences tinkering, I can say:
The auto-update model uses kernel/rootfs pairs, e.g. at the moment my device is booting from partition 2 (KERN-A) with the rootfs being partition 3 (ROOTFS-B). My understanding is that with the next OS update pushed to my device, CrOS will download the deltas of the files to be changed, and apply the changes to partitions 4 and 5 (KERN-B and ROOTS-B), setting new kernel GPT flags (priority=, tries=, successful=), which will, post-reboot, let the BIOS know that 4 and 5 will form the new working kernel/rootfs pair. Then the following update will do the same, but with partitions 2 and 3, and so on and so forth, alternating pairs each time. It's a pretty nifty system, and I think something similar might be happening with new Android devices from version O onward (?).
So partitions 2,3,4,5 are fair game for being overwritten (from the perspective of the CrOS updater program). Partition 1, the 'stateful partition') is a bit special, in addition to a big old encrypted file containing all of the userdata (/home/chronos/ dir?), it also has some extra dirs which get overlaid on the rootfs at boot. If you have a look in /mnt/stateful/, there should also be a dir called 'dev_image', which (on a device in Dev mode) gets mounted up over /usr/local/ at boot. As I mentioned above, if you do
Code:
sudo su -
dev_install
you can then emerge anything listed in /etc/portage/make.profile/package.installable (not a great deal of stuff admittedly, compared to Gentoo), which gets installed to subdirs in /usr/local/. So I think stuff in partition 1; /mnt/stateful/, should be safe from being overwritten with an OS update. I think crouton chroots get put there by default.
Most of the other partitions don't really get used, and shouldn't get touched by the updater, here's a design doc on the disk format, and here's a Reddit post (from a Google/Chromium employee) mentioning dual booting from partitions 6 and 7.
fattire said:
would a "powerwash" overwrite it or can you get easily get into an unbootable state on these things?
Click to expand...
Click to collapse
It's not too hard to mess up the system and get it into an unbootable state, lol. The "powerwash" just seems to remove user data, mainly. If you change up (the contents of) some files in /etc, or /opt, for example, then powerwash, normally they won't get restored to their original state (unless you also change release channel).
But, as long as the write-protect screw's not been removed and the original BIOS overwritten, it's always possible to make a recovery USB in Chrome's Recovery Utility on another device, and then restore the entire disk image fresh (this does overwrite all partitions). Another thing that I did was make a usb to boot into Kali; I was experimenting with the cgpt flags on my internal drive and got it into an unbootable state, but was still able to boot into Kali with Ctrl+U, and restore the flags manually from there. (To successfully boot from USB, it was essential to have previously run the enable_dev_usb_boot or crossystem dev_boot_usb=1 command in CrOS). I understand also that the BIOS type varies with device release date and CPU architecture, and that Intel devices may have some extra potential BIOS options ('legacy boot').
fattire said:
It's also kind of strange that adb is listening to port 30 at that (internal?) bridge address by default with no UI to turn it off.. and it's inaccessible from outside.. i wonder if there's an easy way to change the bridge to share the same IP as the actual interface...
Click to expand...
Click to collapse
I think I saw something related to this on the bug tracker. If I come across any info, I'll let you know...
fattire said:
Final thought-- I'd love to build that system image myself soup-to-nuts, but I can't find any "caroline" device tree set up... do you or anyone else happen to know if there's a standalone AOSP device tree for the chromebooks? It would be cool to have a mashup AOSP/lineageos if such a think could be possible-- I'm guessing chromiumos is just taking the android tree, building it and then adding it into their build... I Haven't build chromiumos for many years now so I can't even begin to imagine how this android build integrates with the whole emerge thing they had going.. but I bet it takes a while
Click to expand...
Click to collapse
Yeah, I haven't built Chromium OS or anything, but apparently, there's an option to create a 'private' overlay for the build, which doesn't get synced with the public stuff.
I think that the higher-ups at Google might be still umming and ahing as to whether or not to make source code available for the Android container, it's certainly not been made public yet. Actually, I remember seeing a Reddit post from a Google/Chromium employee mentioning this.
"That article is a little misleading in terms of open source. While the wayland-server and services that communicate with the ARC++ container are open source, the actual ARC++ container is not."
Perhaps they're waiting to see how similar implementations of Android within a larger Linux setup (e.g. Anbox) fare.
There doesn't seem to be too much that differs from AOSP in the ARC++ container - a few binaries and bits and pieces linking the hardware to the container (e.g. the camera etc), maybe some stuff related to running in a container with the graphics being piped out to Wayland?, and so on.
Oh, I was searching the bug tracker for something else, and just saw this (quoted below). Looks like it might be possible to run AOSP based images on CrOS soon!
arc: Implement android settings link for AOSP image
Reported by [email protected], Today (72 minutes ago)
Status: Started
Pri: 1
Type: Bug
M-60
When ARC started without the Play Store support there is no way for user to activate Android settings. We need implement corresponded section that has
Title: Android settings:
Link: Manage android preferences:
Inner bug: b/62945384
Click to expand...
Click to collapse
Great response! I read it once and I'll read it again in more detail then will probably have questions For whatever it may be worth, my only experience with chromiumos was building the whole thing maybe 4 years ago for my original 2011 Samsung "snow" Chromebook-- and making a bootable USB (or was it an SDcard?) to run it on (with a modified firmware that did... something I can't remember.. i think it was basically a stripped down uboot and I remember adding a simple menu or something-- I think I was trying to bypass that white startupscreen or something..). However, after doing this a few times to play with it, I realized that Chromiumos without the Chrome goodies kinda sucks and I promptly forgot everything and went back to stock.
I did have it re-partitioned to run linux as a dual boot from the SD slot or something-- I remember using that cgpt thing to select the different boot modes and vaguely recall the way it would A/B the updates (which "O" is now doing)... but anyhoo I was using the armhf ubuntu releases with the native kernel and ran into all kinds of sound issues and framebuffer only was a little crappy so...
I'm gonna re-read in more detail soon and I'm sure I'll have questions-- one of which will be-- assuming that most stuff is the same on x86 vs arm, why are there two scripts? How do they differ?
ol. On my device the Canary channel is at Chrome OS version 61; I think they started to move out some ARC++ (the acronym stands for Android Runtime on Chrome, version 2, if anyone's wondering, btw) environment variables to a separate file in version 60, or maybe 61.
Click to expand...
Click to collapse
This is the -env file I'm missing, I presume?
I think that the higher-ups at Google might be still umming and ahing as to whether or not to make source code available for the Android container, it's certainly not been made public yet. Actually, I remember seeing a Reddit post from a Google/Chromium employee mentioning this.
Click to expand...
Click to collapse
It looks from the response that the gapps portion might be what's in question-- just like ChromiumOS vs Chrome has all the proprietary bits taken out?
Here's what I'd ideally like to see:
* Rooted Android, with a toggle switch to hide su in settings a la lineage (requires a kernel patch something like this one) + settings changes from lineageos
* adb access from outside the device-- critical for quickly testing apks from android studio w/o a cable. Basically put the chromebook in a "device mode" where adb is passed through... I'm going to see if I can pipe adb through with socat as you suggest...
* what else... I dunno watch this space.
An update from a couple of guys that have tested out the scripts on Intel: It seems to be that while they are able to launch daemonsu manually (with daemonsu --auto-daemon), it apparently does not seem to be getting launched at boot.
I am waiting for some more information on this. Previously, for Marshmallow, the script was setting up the app_process hijack method in order to to launch daemonsu at boot; to support Nougat I changed it to instead create an .rc file with a service for daemonsu, and add a line to init.rc importing it. This works for me, and from what I can gather, it copied/created all files successfully on the testers devices, too, so I'm not sure at this point what the issue is there.
Edit: Fixed the issue. I updated my previous post with further details.
fattire said:
I realized that Chromiumos without the Chrome goodies kinda sucks and I promptly forgot everything and went back to stock.
Click to expand...
Click to collapse
lol yeah. True, that.
fattire said:
...assuming that most stuff is the same on x86 vs arm, why are there two scripts? How do they differ?
Click to expand...
Click to collapse
It's literally just two things that differ: the few lines where we copy the su binary over e.g.
/x86/su.pie → /system/xbin/su, daemonsu, sugote
vs
/armv7/su → /system/xbin/su, daemonsu, sugote
...and also the size of the created container. The x86 container is about 30 percent larger than the Arm one.
I had a little look at how to determine the CPU architecture programmatically on Chrome OS a while back, but couldn't seem to find a reliable way of doing this, at least not without maybe getting a bunch of people with different CrOS devices to run something like, as you mentioned, uname -i (which returns 'Rockchip' on my device, uname -m (which returns 'armv7'), or such similar, and collating the results. It was just easier to do separate versions for x86/arm, rather than introduce more conditionals (with potential for errors). I'm certainly not averse to adding a check for $ARCH, and thus standardizing the script, as long as it's reliable.
fattire said:
This is the -env file I'm missing, I presume?
Click to expand...
Click to collapse
Yep! It's just the same few envs as in the .confs, moved into a new file. I'm fairly confident that the script's conditionals deals with them OK.
fattire said:
It looks from the response that the gapps portion might be what's in question-- just like ChromiumOS vs Chrome has all the proprietary bits taken out?
Click to expand...
Click to collapse
Yeah, although the respondant there perhaps doesn't seem to realise that he's talking to a Google/Chromium dev, the way he responds. Not that that makes anything he says in his post is necessarily less valid, though.
fattire said:
Here's what I'd ideally like to see:
* Rooted Android, with a toggle switch to hide su in settings a la lineage (requires a kernel patch something like this one) + settings changes from lineageos
* adb access from outside the device-- critical for quickly testing apks from android studio w/o a cable. Basically put the chromebook in a "device mode" where adb is passed through... I'm going to see if I can pipe adb through with socat as you suggest...
Click to expand...
Click to collapse
Interesting... I agree, those would both be useful additions to the functionality of ARC++...
Quick question-- has Samsung provided the source for the GPL components (including the kernel, obviously)? I looked here but didn't see anything...? Previously the kernel was included along with the chromium source and there was like a kernel and kernel-next repository.. but this was like five years ago. I think the codename for the samsung chromebook pro is called caroline... let me quickly see if I can find a defconfig in the chromium source...
Back.. nothing here in the chromeos-4.4 branch. Nothing here either in the master branch. Maybe I'm looking in the wrong branches-- master is probably mainline kernel. Also the directories.. it took me five minutes to realize it wasn't going to be in arch/arm - force of habit I guess. I'll keep looking unless anyone knows. This "chromium-container-vm-x86" one seems to have dm_verity as an unused option. Ah, this is looking promising.
...and... here!
So it would seem that this would be built as part of the chromiumos build system, which seemed to be half gentoo five years ago building out of a chroot and was kind of a pain to set up... still, I'm guessing that since it's got that weird script to make the defconfig, what you could do is use google's chromiumos build script to make the kernel image (with whatever changes you want), then, assuming that it doesn't care if you replace the kernel, just throw it over the right Kernel A/B partition and see if it boots and starts up chromeos... it's weird cuz the kernel has to do double-duty for chromeos and android.. but I bet you can just replace it and it would work fine...
I had a cursory go at building a couple of kernel modules for my Flip C100 a while back - I didn't get too far though, lol. People do seem to have had success building their own kernels and running them with Chrome OS though, as with most things I suppose it's just how much time/effort you're willing to put in.
I think I used this and maybe this, from the crouton project to guide me.
From what I remember, I just got fed up of all the arcane errors/config choices. I remember that even though I'd imported my current device config from modprobe configs, there were then such an incredibly long string of hoops/config choices to have to go through one by one, to then be confronted with various errors (different every time ISTR) that I think I just thought "screw this". I think there were some other issue with the Ubuntu version I was using at the time as well. I know that sort of stuff's kind of par for the course with kernel compilation, but I was mainly only doing it so I could edit xpad in order to get my joypad working, in the end I found a different solution.
It shouldn't be too much hassle though, in theory I guess.... Oh, also, in order to get a freshly built kernel booting up with the CrOS rootfs, in addition to the gpt flags, I think you might have to sign it, too? (just with the devkeys & vbutil_kernel tool provided on the rootfs), some info here, and here.
From what I remember, the build system would do whatever key signing was necessary.... although I do now remember you're right there was some manual step when I was building the kernel, but I can't remember if that's because of MY changes or that was just part of the build process.
I I just dug out the old VM (Xubuntu) I was using to build and, well, let's just say I'll be doing a LOT of ubuntu updates before I can even realistically look at this. I do kinda recall setting up the environment was a huge pain so I'm going to see if I can just update the 5 year old source, target the pro and just build the kernel image and see what pops out the other end. At least I won't have to deal with the cross compiler, though I think it should hopefully take care of that itself.
Interesting to see that those crouton projects have emerged (no pun intended) so I'll check them out too while ubuntu updates itself
Thanks for the github links.. I'm going to go read that wiki.
Update: Looked at it-- funny they just stripped out the chromeos-specific parts they needed rather than emerge everything which is smart. My only question is now that Android is involved, there's that script I linked to earlier that seems to say "if you want Android support you'll need these bits too"-- wonder if the same config scripts apply, and if there are any other device tree considerations as well...
I may play a bit and see how smoothly it goes.. Unfortunately I don't have unlimited time either :/
Also, please do let me know if you put the scripts on github and I can send you pull requests if I come up with anything.
Update: Finally updated like 3 major versions of ubuntu... the "depot_tools" repo had its last commit in 2013, so I updated that. Wow, this is so much clearer than previous docs... it looks like something called gclient is used now, which I configured with:
gclient config --spec 'solutions = [
{
"url": "https://chromium.googlesource.com/chromium/src.git",
"managed": False,
"name": "src",
"deps_file": ".DEPS.git",
"custom_deps": {},
},
]
'
that let me do gclient sync --nohooks --no-history ...which i think is updating the ancient source. I probably should have just started over, but anyway... we'll see what happens.
Update again: After updating with this new gclinet tool, it appears that the old repo sync method is still required as described here. That hasn't changed after all, so now I'm going to go through this old method, which will probably completely overwhelm my storage as it's downloading with history.. but anyway, in case anyone is trying this-- looks like the whole chroot/repo sync thing may still be how it's done... the /src directory described above may only be for building just the browser, not the whole OS...
...and here it is. I will have zero room to actually build anything tho, but hey.
* [new branch] release-R58-9334.B-caroline-chromeos-3.18 -> cros/release-R58-9334.B-caroline-chromeos-3.18
Note to self: use cros_sdk --enter to actually get in the chroot. Then:
~/trunk/src/scripts $ ./setup_board --board=caroline
to set up the build for caroline. Then to build:
./build_packages --board=caroline --nowithdebug
Useful links:
* Building ChromiumOS
* [URL="http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/portage-build-faq"]eBuild FAQ
[/URL]

Categories

Resources