Building CM7 for the NT - Barnes & Noble Nook Tablet

We have been discussing in another thread the possibility of getting a CM7 rom available for the NT.
Now that we have a functional recovery this should seriously help out with testing, if it goes wrong we can just restore to a working rom and start again debuging as we go.
***UPDATED 5TH Feb 2012***
I thought it was about time I updated this post with some up to date info on current state of development.
As many of you will know we got together last week and decided that we would like to build a CM7 rom for the Nook Tablet.
Goncezilla had already been making progress building firmware and a boot.img to get the thing booting up. Initially the system booted and you couldn't do a lot with it, but it prooved it could be done. Here's the vid showing the first boot:
After that it was down to work to make it useable. After a bit of investigation and a lot of man hours this is where we are at now
HARDWARE FUNCTIONS
Touchscreen FULLY WORKING
Orientation sensors FUNCTIONAL
Sound WORKING
SDCard WORKNING
WIFI Fully WORKING
Hardware video acceleration WORKING
SOFTWARE
Custom Kernel BUILT AND FUNCTIONING
Full tablet version on Cyanogen Mod WORKING
Root Access WORKING
Gapps WORKING
Sleep mode WORKING
Brightness control WORKING
BOOT FROM SD CARD SOLUTION AVAILABLE
and the one everyone seems to think is important
Angry Birds YES IT WORKS PERFECTLY lol
Another little video of current progress
Finally we have wifi working!
Sorry it's sideways, it's changing it now but it seems Google have slow computers!
So the main things we have left to fix are
1. Ermm... hmm... I'm sure we'll think of something

Thanks to Celtic for taking on the OP of this forum!
EDIT 2/5/2012Here are the source files used to create the first CM7 beta:
Internal
1. Kernel built from source - http://www.mediafire.com/?tu5lm7q8t5pbqpf
2. Nook Color CM7 Ramdisk (the one we want to modify) - http://www.mediafire.com/download.php?epv9n97evhnuaoi
3. Stock Nook Tablet Ramdisk (the one we need to borrow from) - http://www.mediafire.com/download.php?xms3aeztgupkjco
4. Buawk's Internal Boot.img 2ndboot (this gets appended to the front of a boot.img to get around the locked bootloader) - http://www.mediafire.com/download.php?9l8uxx7rhbqzund
5. Modified CM7 /system partition files (should be good to go for NT) - http://www.mediafire.com/download.php?il5ky2l51q48e8h
6. Modified Ramdisk - http://www.mediafire.com/download.php?9l8uxx7rhbqzund
7. Wifi Driver files (built from Kindle Fire source) - http://www.mediafire.com/?vogxuygrf84xsoe
8. Kernel Config File (settings used to build kernel above) - http://www.mediafire.com/?7vjvqctmlnd4enw
9. GFX Drivers (put in /system/lib/modules and insmod) - http://www.mediafire.com/?5uw4wgytb60n485
SDCard
1. SDRamdisk - http://www.mediafire.com/?4p3wq0u4p9j9mtd
All other files are same as internal.
EDIT 2/4/2012
My Plan for success:
1. Build a boot.img from CM7 NookColor Rom - Done!
3. Get a booting rom working from SDcard to verify steps 1 and 2 - Done! SDcard working great!
4. Port to internal boot partition (CWM) -Done!
5. Tweak to get everything working - Ongoing....
All other ideas welcome here!

I'll flash and test things for you all.
Sent from my Nexus S 4G using Tapatalk

LiuAnshan said:
I'll flash and test things for you all.
Sent from my Nexus S 4G using Tapatalk
Click to expand...
Click to collapse
Thanks
Just to let anybody interested know in advance, this may or may not turn into a working rom, even if it does become a fully functional rom please remember that during testing if your tablet does a nose dive and you can't recover for some obscure reason, we take no responsibility for any damage caused.
Other than that, as and when we have something testers will efinately be needed

Goncezilla said:
Reserved.
Ill post my current working files here soon. Thanks to Celtic!
My Plan for success:
1. Build a boot.img from CM7 NookColor Rom - Kernel built, working on ramdisk
2. Port /system partition -Mostly done but untested
3. Get a booting rom working from SDcard to verify steps 1 and 2
4. Port to internal boot partition (CWM) -2ndboot.img built and waiting
5. Tweak to get everything working
All other ideas welcome here!
Click to expand...
Click to collapse
So i'd thought id put in my two cents here...
First off, whom ever is testing this will want to have 2 sd cards, one of which is the update_acclaim boot disk, so they can "unbrick" their device. This device is nearly unbrickable, and whom ever ends up testing it, can make sure that they can always return it to stock.
Second off, I would HIGHLY recommend using the stock kernel, with the security keys stripped off. This would eliminate any problems that you would encounter with the kernel not causing a boot. I can get you guys a copy of the stock if you want, as it is easiest to just take the first 288 bytes off of the existing kernel, and ramdisk. I don't have an NC, but i'm not sure that the partitions are the same, I would think about building the ramdisk by combining the two ramdisks.
Lastly if someone has the inclination, they COULD eliminate the useless partitions, DO NOT TOUCH THE X-LOADER OR UBOOT PARTITIONS, MODIFYING THEM WILL BRICK YOUR DEVICE. However there is the useless BN and rom partitions that could be consolidated.
Ill be checking in from time to time, I would recommend that you join the CM7 IRC channel and make a new one so that you will not be bothered.

I've done little more than keep the port of miui updated for the Samsung infuse, but I'd be willing to help where I can. I'll probably only be useful for testing, but I'm more than willing to soft brick several times (or risk a hard brick )

Don't modify the rom partition, it forces a wipe of the device and without a proper recovery for that (stock) you're **** out of luck.
Sent from my Nexus S 4G using xda premium

Loglud said:
Second off, I would HIGHLY recommend using the stock kernel, with the security keys stripped off. This would eliminate any problems that you would encounter with the kernel not causing a boot. I can get you guys a copy of the stock if you want, as it is easiest to just take the first 288 bytes off of the existing kernel, and ramdisk. I don't have an NC, but i'm not sure that the partitions are the same, I would think about building the ramdisk by combining the two ramdisks.
Click to expand...
Click to collapse
Interesting about the first 288 bytes. Any specific reason for stripping them? Is this the kernel header or is it for the ramdisk too? The kernel Im using was built from the BN source.
The ramdisk Im putting together is a combo of the NC and NT. Im working on porting the .rc files and build.prop. There is a lot to look at and any help is appriciated. Ill post the files when I get home this weekend.
Lastly if someone has the inclination, they COULD eliminate the useless partitions, DO NOT TOUCH THE X-LOADER OR UBOOT PARTITIONS, MODIFYING THEM WILL BRICK YOUR DEVICE. However there is the useless BN and rom partitions that could be consolidated.
Click to expand...
Click to collapse
Good call here. I was thinking about mounting the 15GB B&N partition as rw and leaving it at that. If we get brave we can try and merge the partitions.
Thanks for the input.
---------- Post added at 08:32 PM ---------- Previous post was at 08:29 PM ----------
Indirect said:
Don't modify the rom partition, it forces a wipe of the device and without a proper recovery for that (stock) you're **** out of luck.
Sent from my Nexus S 4G using xda premium
Click to expand...
Click to collapse
Maybe this is the issue Im seeing. Does this mean we have to use 2ndboot to point to another partition? Is there a mdsum check being done at boot that triggers this?
EDIT: Nevermind was thinking boot partition instead of rom. Rookie mistake No plans to touch rom partition.

Guys, we won't need testers. We all have NT's. You all will get a build once it's in alpha.

Like Indirect said, as far as startup is concerned we'll be able to do the testing, we won't really need external testing until we have something semi stable.
Thanks for all your offers though. I'm sure when we get to alpha/beta stage you'll all get a shot at it

As agreed with OP i am going to move this to general. As soon as development is posted, it will be moved back to Development.
Thanks to the OP for his co-operation, He is a gentleman and exactly the type of member we want at XDA Developers!
Peace!

clock work mod
thanks to Albert I am beginning to understand the early stages of getting things like CM7 or 9 functional for the NT and his his recent video on youtube gives a good idea on the developments going on for the NT. I am trying to understand the possible uses of CWM for the nook other than it being a framework for installing custom roms. .. Thanks

Rafael863 said:
thanks to Albert I am beginning to understand the early stages of getting things like CM7 or 9 functional for the NT and his his recent video on youtube gives a good idea on the developments going on for the NT. I am trying to understand the possible uses of CWM for the nook other than it being a framework for installing custom roms. .. Thanks
Click to expand...
Click to collapse
Link to the video, per chance? Thanks in advance!

Just a quick update before I call it a night.
I've been having a lot of trouble getting a working boot.img built. When I cat the 2ndboot to my boot.img I see the flash screen on bootup but quickly get a black screen followed by a reboot of the system.
I can't even get the stock boot.img to boot after appending the 2ndboot.img file. I was, however, able to boot into CWM from the boot partition by attaching the 2ndboot.img. This tells me that the 2ndboot is working properly.
I'm continuing to deep dive on the boot.img files, but if any other devs want to play around with cat 2ndboot to a boot.img it might help.
All I've been doing to this point is taking the boot.img from a CWM recovery, adding the 2ndboot.img to the front of it, placing the modified boot.img back into a new CWM recovery folder (and rebuilding nandroid.md5), then flashing the boot back on using CWM Advance Recovery.

Well, I can report some partial success!
I was finally able to unpack a stock boot.img, modify the ramdisk (nothing major just a small tweak to test results), repack with another unsigned kernel, flash the new boot.img and get a good boot. I did this by using the kernel extracted from nemith's CWM image and not the custom kernel I've posted, so it seems like there is an issue with that kernel for now.
Anyway, I'll try and post some more files later but in the mean time I'm moving on with trying to get a CM7 ramdisk to boot.

I think this is now at a stage that it can be moved back to development.
Good work Guys!

Goncezilla said:
Well, I can report some partial success!
I was finally able to unpack a stock boot.img, modify the ramdisk (nothing major just a small tweak to test results), repack with another unsigned kernel, flash the new boot.img and get a good boot. I did this by using the kernel extracted from nemith's CWM image and not the custom kernel I've posted, so it seems like there is an issue with that kernel for now.
Anyway, I'll try and post some more files later but in the mean time I'm moving on with trying to get a CM7 ramdisk to boot.
Click to expand...
Click to collapse
Great to see you've made some decent progress. Sorry for my total lack of input, you're a good few steps ahead of me in developing. I'm still on a serious learning curve!
I'm getting there hopefully in time I catch up with you and give some decent worthwhile input!

CelticWebSolutions said:
Great to see you've made some decent progress. Sorry for my total lack of input, you're a good few steps ahead of me in developing. I'm still on a serious learning curve!
I'm getting there hopefully in time I catch up with you and give some decent worthwhile input!
Click to expand...
Click to collapse
Hey if you have any questions throw them out there. I'm learning some things as I go along but don't have all the answers either. Hoping we can start combining efforts to move forward.
---------- Post added at 10:31 PM ---------- Previous post was at 09:31 PM ----------
EDIT:More progress!
Was able to get the stock ramdisk to boot using the compiled kernel I posted. I think the issues were with my compilers. No guarantees they are fixed but we are getting close I can feel it!
I'm not sure but I think this kernel can be overclocked, so if nothing else this should allow you to overclock a rooted stock device for now. I'll do some testing and get back....
EDIT 2:
Well it looks like this kernel should be capable of overclocking, but there are a few other bugs with it (could not turn on wifi) that still need to be worked out so I am moving on for now. I will post the boot.img if anyone else wants to play around with the custom kernel on stock firmware in the meantime.

They had issue with wifi in the cm9 thread which they've now fixed. Perhaps some help from there thread will be available?[/QUOTE]
Good call, maybe we can leverage from them. I think I'm just missing a configuation setting in my kernel build but everything else seemed to be working so I'm not too worried about fixing it right away. Would rather get CM7 to boot
EDIT:
Well more progress to report this morning! I've finally got a CM7 boot screen! I'm stuck in a bootloop but we are really close now!
Turns out my permissions were all jacked up on my system partition and it was refusing to allow the kernel to load divers. I've jacked with files so trying to get a good boot that I'm not even sure what I have right now, so I'll go back to square one and hopefully see a full boot

Whenever you get a boot loop, I suggest that you get a logcat so you know what to look at.
Sent from my Nexus S 4G using xda premium

Related

[WIP][Dev]Bootloader bypass

No, I do not have a nook tablet so I can not offer any methods to bypass myself. This is just a thread where developers can talk about gaining the ability to flash roms and recoveries.
Developers, please use this thread to collaborate so we can have everyone working in the same space.
Users, please try to not post and if you do, don't make it a completely useless post like something that just says thanks and whatnot. Just use the button for that. The less clutter = more progress
edit: Someone is donating a nook tablet to me to try and bypass the bootloader! Here's hoping it doesn't get bricked.
I've got a Nook Tablet and would be more than happy to help with this. I'm available most evenings after 9PM EDT.
I've been reading alot about kexec and 2nd init. It looks like 2nd init is the way to go, due to the fact that it's already been used multiple times.
Ideally what I'd like to do is try to reverse engineer a current 2nd init to work for the nook.
The potential issue I see is, the kernel may not be new enough to run CM7.
Am I completely off base here?
chantman said:
I've got a Nook Tablet and would be more than happy to help with this. I'm available most evenings after 9PM EDT.
I've been reading alot about kexec and 2nd init. It looks like 2nd init is the way to go, due to the fact that it's already been used multiple times.
Ideally what I'd like to do is try to reverse engineer a current 2nd init to work for the nook.
The potential issue I see is, the kernel may not be new enough to run CM7.
Am I completely off base here?
Click to expand...
Click to collapse
Kernel is good enough to run CM7 (Gingerbread), but not sufficient for CM9 (ICS). Also it is not good enough for CM8 either (although the chance we see CM8 for any device is doubtful).
We need to find a way to keep a chat between developers. Add me on g+ and ill create a huddle for every dev
Sent by breaking the sound barrier
chantman said:
I've got a Nook Tablet and would be more than happy to help with this. I'm available most evenings after 9PM EDT.
I've been reading alot about kexec and 2nd init. It looks like 2nd init is the way to go, due to the fact that it's already been used multiple times.
Ideally what I'd like to do is try to reverse engineer a current 2nd init to work for the nook.
The potential issue I see is, the kernel may not be new enough to run CM7.
Am I completely off base here?
Click to expand...
Click to collapse
your pretty spot on, but i dont see cm7 being a problem, i see cm9 being a problem. with a 2nd init rom you have to build the OS around the kernel(which it is much harder than doing it the right way) and if the kernel isnt high enough or if drivers are outdated(like the nook color graphic drivers) than you can count that OS out of your list. cm7 since it is gingerbread and since gingerbread can be booted on a froyo kernel(moto droid proved that along with the droid x/2), i think it can be booted using 2nd init, ICS on the other hand needs a ICS kernel to boot and if your not using an ICS kernel than you need a custom kernel that can get ics booting properly
now i disagree with you about 2nd init being the best way to build a rom for the nook tablet, i believe kexec is the best way to go about building a rom for the nook tablet because it will allow for a custom kernel to be booted off the original kernel. from what i have read about kexec on android is that they cant get the 3g chip to get started again(but nook tablet doesnt have a 3g chip so who cares), but wifi and all the other key functions can get started up and running, so using kexec on a nook tablet seems the best logical solution to getting around the locked bootloader(but dont quote me on this cause i havent developed anything for the nook tablet yet, nor do i even own one).
---------- Post added at 11:19 PM ---------- Previous post was at 11:18 PM ----------
Indirect said:
We need to find a way to keep a chat between developers. Add me on g+ and ill create a huddle for every dev
Sent by breaking the sound barrier
Click to expand...
Click to collapse
devs use irc to chat, its easier than any forum or chat program out there
Thats true but i cant always be on irc to keep up on info.
Sent by breaking the sound barrier
Also, ill look into getting kexec once i get my nook tab
Sent by breaking the sound barrier
Indirect said:
Thats true but i cant always be on irc to keep up on info.
Sent by breaking the sound barrier
Click to expand...
Click to collapse
There are most likely complete logs available somewhere to review, or someone could make them available for you. I don't have the link on this pc, but there is a site that keeps up-to-date logs #nookcolor available
Indirect said:
Also, ill look into getting kexec once i get my nook tab
Sent by breaking the sound barrier
Click to expand...
Click to collapse
I wouldn't spend too much time on this. Assuming that android_4430BN_defconfig from B&N's kernel sources is the defconfig used to compile the running kernel, kexec will not work as it has been disabled.
it doesn't really matter if kexec has been disabled in the kernel config. we can't really hope that they would leave a gaping hole that fricking big. honestly i'm kind of annoyed at the "omg they didn't configure their kernel specifically for us to hack the crap out of the device" posts. Seriously, even if they did this, as far as i've seen we have yet to disable OTA updates, so 3 seconds of a B&N developer time would wipe out any work depending on kexec being built into the kernel.
we can after all create modules neh? my linux kernel hacking experience is very close to non-existent, but i'll be starting by getting a module to load, followed by getting the kexec tools and a kexec module loading.
so far i'm having trouble finding any literature on kexec on ARM. it all says it's x86 only, but clearly everyone from motorola to sony communities are making use of kexec on arm. anyone know of any good points to find information on kexec for arm?
I've also seen something call splboot mentioned a few times, but am having trouble googling anything useful up. anyone familiar with that tech?
I suggest posting in the motorola dev section seeing if any of them would be interested in getting kexec up and running on the nook tab or could point us where to get information on it running with an ARM architecture device.
Indirect said:
I suggest posting in the motorola dev section seeing if any of them would be interested in getting kexec up and running on the nook tab or could point us where to get information on it running with an ARM architecture device.
Click to expand...
Click to collapse
Try Kabaldan. http://forum.xda-developers.com/member.php?u=2218140
He was a great developer when I owned a Motorola Milestone. Assuming he used 2ndInit to port CM6 and CM7
http://lists.infradead.org/pipermail/kexec/2008-February/001272.html<-- kexec on an ARM processor.
I just tried something to see where it would get me and if I could learn something new.
Using ROM Manager, I have been trying to flash different recoveries to see what results I would get or what I could break (or brick). After some research I found a device also running the OMAP 4430 processor and selected it (LG Optimus 3D). When I selected reboot into recovery, I did get some new screens I have not seen before. It made me reboot again, then another screen flashed very fast and it then rebooted and was normal from there. I think it may have replaced the recovery I flashed as it was flashing something but was very fast. I will try it again and see if I can determine what is happening. But I got it's attention and probably flashed the right thing in the wrong place, or the wrong thing in the right place.
I found a guide on a site for flashing a recovery to a device using flash_image binary, and two files were mentioned and deleted which allowed hijacking of the recovery process. Out NT has those two files as well:
/system/recovery-from-boot.p (encrypted, cannot view)
/system/etc/install-recovery.sh (can view code, and points to first file)
I wonder what the possibility is to hijack the install-recovery.sh file ? Or is there yet another file in the process? Very interesting though.
Ive actually been thinking of hijacking the install recovery script
Sent by breaking the sound barrier
To ellaborate further on my previous post, I believe this is the key to how we can get a bootloader bypass for a custom recovery as they have done for the Motorola Bionic and other Motorola phones. When a reboot occurs, the bootloader looks for a certain file in a certain place, if it exists then it reboots into recovery. If not, it boots like normal. The bootstraps for the Motorola devices mimic the logwrapper binary that the bootloader looks to and allows it to go into a custom recovery instead. A very simplified explanation.
What their bootstrap does is place the recovery indicator file in the proper place (somewhere in /data) and when the bootloader finds it, it goes to the logwrapper binary, which of course has been replaced with their hijacked version.
It appears the install-recovery.sh on our NT is looking for a "recovery" indicator, and if it exists, it is telling it to go to recovery-from-boot.p
If so, this is the very process we need to hijack to allow some type of custom recovery. It doesn't get us completely around the bootloader, but it would allow a recovery mode for flashing custom ROMs, just as the Motorola guys have done. I am probably way over simplifying this, but i have researched this quite a bit the past few days and it looks like for the short term, this is the path we need to look at.
If anyone has contact with Kousch or someone familiar with the bootstrap process, I think we could be in business to get something workable here.
Here is a link to one of the Motorola bootstraps, and the contents of the /system/etc/install-recovery.sh
http://www.koushikdutta.com/2010/08/droid-x-recovery.html
#!/system/bin/sh
if ! applypatch -c IMG:/dev/block/platform/mmci-omap-hs.1/by-name/recovery:2048:70ef89e0497435e988819690aaabb35da6b7677f; then
log -t recovery "Installing new recovery image"
applypatch IMG:/dev/block/platform/mmci-omap-hs.1/by-name/boot:2850816:114706e7bbfa4c806323215a83d6ad4e9cd392f7 IMG:/dev/block/platform/mmci-omap-hs.1/by-name/recovery 532ad547febe82850924a52625132376514e3a8b 3203072 114706e7bbfa4c806323215a83d6ad4e9cd392f7:/system/recovery-from-boot.p
else
log -t recovery "Recovery image already installed"
fi
Or all of this could be in place and not ever used !
---------- Post added at 02:22 PM ---------- Previous post was at 02:18 PM ----------
Indirect said:
Ive actually been thinking of hijacking the install recovery script
Sent by breaking the sound barrier
Click to expand...
Click to collapse
The Motorola bootstraps are just one .apk file ! We could probably modify the process to fit ours. But these are paid for apps on the market so we would need permission, or even better help from the developer. For testing to see if it even works I don't think it would matter, if it doesn't work or is not the fix then we move on to something else. But if it works, I don't think we can just post the fix without the developer's permission on how he wants to handle it.
Let me see what I can find out
Alright that will be great. Thanks romified.
Sent by breaking the sound barrier
FYI, I know there is a free version of the Droid 2 bootstrapper floating around somewhere (I think the developer made it available on xda). I'll see if I can find the link.
ylexot said:
FYI, I know there is a free version of the Droid 2 bootstrapper floating around somewhere (I think the developer made it available on xda). I'll see if I can find the link.
Click to expand...
Click to collapse
Yes, I have the APK and have it decompiled...just not with me. I will dig into this afternoon and see what I can determine. If I can reach Kousch (the developer) he may be interested in helping do this and making it available since the NT is fairly popular. Then we could have help with a recovery as well.
Thanks for your help though ! If you find the link that is fine, it may help others who can look into this as well.
Found the link, but I guess it's not from Kousch:
http://www.mediafire.com/?fxvlw4wl2jade0o
It's in one of the Droid X stickies over at AndroidForums.

[REF] Getting CWMR Working: From the Dev's Perspective

As of you guys have found out there has been a few threads that have been started that throw around theories about getting CWMR to work and such and I'm here to finally give you guys the progress from the dev that's working on it.
I have been working on getting CWMR working off and on for a few months now to some avail. I have been slowly testing it and sending out alphas to people on the IRC and now I'm here to tell you where I'm at and what has been accomplished.
Part 1: Getting into CWMR
I started working with our current bootstrap recovery as a base for CWMR. It was of course in charge mode, but it was a step that had to be done first. I got a hold on a CWMR binary and after a bunch of shell commands managed to get the mangled version of CWMR that we've seen before. From there I had the idea to inject the ATRIX binary into the recovery and try it from there. It was a big success and I could use some (very few) of the functions that if offered. But I was finally in CWMR on the X2. (I posted the picture on my twitter).
Part 2: Making the Functions Work
From here the first thing I decided to do was to get the "Fix Permissions" script working. By getting this to work I know I could place my own code in there that will log to the file that I could open up and see whatever I wanted as ADB didn't work YET (more on that later). I fiddled with it a bit and got it working.
This also allowed me to access the log and find out why the unmounting and formatting wasn't working either. This was due to an issue with the mke2fs and other complementary binaries not being appropriately compiled for our phone. As I was working on CM7 at the time, i had access to the sources of these and to the recovery binary as well. I decided to build a recovery binary that was tailored to our phone and not the ATRIX and the binaries that handle formatting partitions, etc. These worked on some partitions I could wipe data and cache properly by reformatting, I could easily erase a partition at will except for one: /system.
Part 3: Getting /system Formatted (WIP)
At this point I decided to find out why /system could never be formatted. When a partition needs formatting it must be unmounted first. But I could never unmount /system. By using the logs I found out that the partition was still in use. By using the "Fix Permissions" script, I managed to find that a lot of daemons (aka services) were being ran from the /system sub directories. This meant that in order to format, I had to have them not running. Easy enough as there's a script in CWMR that allows us to kill certain processes before the new recovery starts. I decided to kill all of the services with this script but found that the display would go blank. From there I found that two services are REQUIRED to be running on the phone for drawing (making things show on the screen) to take place: servicemanager and nvrm_daemon.
The servicemanager does exactly what it's title says: it manages the currently running services. This has to be running to keep nvrm_daemon running or else things get kinda freaky.
nvrm_daemon is what is used to manage drawing commands to the screen (the nv stands for nVidia which is who made the Tegra 2). With this service running I was able to (while in charge mode still) draw to the screen and show all of the menus for CWMR.
This created a problem. As these HAD to be running /system could never unmount because they were in there. Unless we used 2nd-init. From here I created my own hijack script that allowed me to copy over the necessary daemons into /sbin (which is just a sub directory of the rootfs). Then by using a new init.rc I could start these daemons from /sbin and see if they worked for CWMR.
After a lot of coding I managed to get the daemons running from /sbin and I thought I was free from there. And while I was at it, I might as well tried to get it out of charge mode.
Part 4: Untethering the Recovery (WIP)
I figured that since I was using 2nd-init anyway that I might as well have been working on trying to get it untethered also. After a bunch of looking into why charge mode was the only way to get it working, I found that before charge mode was started the init.rc started the "pre-zygote" services. These include usbd (the usb daemon), battd (the battery daemon), etc. What was also started was nvrm_daemon (another proof that we needed this running) to draw on the screen (charge mode draws the battery indicator to show charging progress).
I decided to move to mot_boot_mode to do the hijacking. I eventually managed to get things running but it still wouldn't draw to the screen. A look at the logs showed that for whatever reason we still didn't have access to the framebuffer (the memory space aka buffer that is drawn to the screen). I was tired of rebooting over and over again to get results and by now I had SBF'd I don't know how many times, only to not be able to access the logs due to a wipe. So next thing I decided was to get ADB working at boot.
Part 5: Starting ADB at Boot (The Short Version)
I took a look through the init.rc and found that Motorola had disabled the default way to get ADB working at boot. Through a bunch of digging I found that I could re-enable the method but it started usbd also (yet another daemon I'd have to move and thus more time, etc.). But eventually I found another property (aka system variable) that i could set that would start ADB without having usbd started: persist.adb.enable_NV_DISABLED. Setting that to 1 started ADB whenever I wanted it to. This allowed me access to the system (as root actually) without having to reboot and try to get into logs and whatnot. I could see everything that was running, mount/unmount and do everything I normally could and see better why they were failing.
Part 6: Recent Discoveries (as of 1/3/12) On the /system Unmount
I decided that I was going to go back to charge mode for now. After causing too much pain with framebuffer access I decided to look into why /system STILL wouldn't unmount after moving everything out of there. With the help of mastafunk and DrPenguin I was able to get a hold of a program named strace. This allows you to debug what binaries are doing down to pretty much every comparison, file opening, memory mapping, etc. I had found that nvrm_daemon (although started from /sbin) was looking for and loading drivers found in /system/lib. This was a problem and I thought that we may never get /system unmounted. Until I found out one other thing.
The nvrm_daemon doesn't look for the drivers inside of /system/lib first. It looks for them in /vendor/lib first and then if it can't find them, goes to /system/lib. So simple enough. I thought I could just make a /vendor/lib directory, copy the libs over and have them load from there. Well it's not that simple as there is already a file in the rootfs named vendor. But the file is a symlink to /system/vendor so if it looks at /vendor/lib it really looks at /system/vendor/lib. I thought I was stuck again until I took a closer look at the /system directory. There is no ./vendor sub directory in /system. That being said, I was able to delete the symlink in the rootfs and then create a /vendor/lib directory copy over the libs to it and nvrm_daemon successfully loaded the libs from there and not from system.
Conclusion
You are now caught up on when we've basically done to try to get CWMR working on the X2. Being that we're the only Tegra 2 phone from Motorola that is locked, we're kinda stuck trying to get things working. For now I consider this progress. Albeit slow progress, but progress none the less. If you took the time to read this, I hope you now understand the frustrations I've had to deal with this. All the while trying to help masta get 2nd-init fully working for our phones.
Thank you.
Thank you very much for the detailed explanation - well written so that even a novice like myself could understand your progress and frustrations. Thank you to you and your peers also for your hard work and determination to see this through. I think I can speak for all X2 users and say this is most appreciated!
Great writeup. Very informative. Thank you for your dedication.
I thought 2nd init was done and masta was working on aosp? I mean we can log from our new init.rc so it is using it. In the meantime i've been working on my barebones so we can get new blood using 2nd init and because I want a decent daily driver in the event we cant get stuff going.
To echo what others have said, thank you very much for the information. This kind of transparency is always very much appreciated when there's some spare time to put that out there. It not only is really helpful to make it understandable, but it's nice to know that these projects are still active.
Perhaps most importantly though in the context of potential progress: having specific information is a great way for knowledgeable people reading to recognize if they might be able to help out in certain areas. You might get some fresh ideas from people who hadn't considered themselves familiar enough with the situation to be useful. Who knows.
Anyways, thank you very much again. It's very encouraging to hear progress reports in general, not to mention ones like this that involve so many successes.
Wow thanks so much for your hard work and dedication can't wait until you conquer this sounds like you are closer then ever
Sent from my DROID X2 using XDA App
I am so glad to hear the "behind the scene" drama. Thank You DK sharing. I AM sorry for what bad drama I may have started. Will you forgive me?
skwoodwiva said:
I am so glad to hear the "behind the scene" drama. Thank You DK sharing. I AM sorry for what bad drama I may have started. Will you forgive me?
Click to expand...
Click to collapse
No need to appologize man... Stuff like this should have been posted or known. To be honest, I thought Masta was finishing 2nd INIT and starting to work on getting AOSP running and CWM was out the window, thats why I jumped in to try and get progress on CWM. Thanks DK and now I know the IRC is more active, I will be on there more to try and help out.
Thank you!
Thanks a ton for all the effort you're putting in. When I got my DX2 I thought that despite the crazily over-bloated Motoblur, I would be OK due to the Tegra 2 power and wonderfully innovative developer community. I didn't count on their being such a small number of us out there for this device or the complexity that Moto would unnecessarily bake in. So, after many months of gut wrenching disappointment, I finally have hope again.
You are a true nerd hero, sir!
Its nice to have an explanation of things and why they work or dont work. A lot of us are just trying to learn so we can be useful.
Sent from my Eclipsed and ICS themed X2.
Dragonz...after reading the info about 1/3/12 I am curious...
Does this mean that you might be able to get it working and unmount system as u need it to?
Or were there still other processes using system that you will need to mess with and change around as you did with the vendor ?
Do you still need to move the servicemanager also?
O btw imma start Hopn on the irc. I have a cm7 nightly booting thanks to second init but am having some crashes, not to mention other horrific bugs.. I need some help
Sent from my DROID X2 using xda premium
PM me with a copy of your nightly so I can help as well please
kaliblazin707 said:
O btw imma start Hopn on the irc. I have a cm7 nightly booting thanks to second init but am having some crashes, not to mention other horrific bugs.. I need some help
Sent from my DROID X2 using xda premium
Click to expand...
Click to collapse
Kali send me a pm, I have the week off and work as a mobile developer... would like to help get rid of some of those crashes. Send me a link to that irc and ill get cracking on it 2moro
Sent from my DROID X2 using xda premium
drapp said:
Kali send me a pm, I have the week off and work as a mobile developer... would like to help get rid of some of those crashes. Send me a link to that irc and ill get cracking on it 2moro
Sent from my DROID X2 using xda premium
Click to expand...
Click to collapse
Webchat.freenode.net
Channel #X2-AOSP
AND #DX2 for "off topic"
kaliblazin707 said:
O btw imma start Hopn on the irc. I have a cm7 nightly booting thanks to second init but am having some crashes, not to mention other horrific bugs.. I need some help
Sent from my DROID X2 using xda premium
Click to expand...
Click to collapse
I know why you have a cm7 nightly "booting" and I'm sorry to say that it's not for good cause. What is happening is that the system isn't being formatted properly (hence a point in my post) and you're just flashing a bunch of new APKs from CyanogenMod on top of BLUR. I'm sorry to say, but it's not CyanogenMod.
dragonzkiller said:
I know why you have a cm7 nightly "booting" and I'm sorry to say that it's not for good cause. What is happening is that the system isn't being formatted properly (hence a point in my post) and you're just flashing a bunch of new APKs from CyanogenMod on top of BLUR. I'm sorry to say, but it's not CyanogenMod.
Click to expand...
Click to collapse
I honestly think the way to go is to get back to that step with proper 2nd init and then replace everything blur with as much CM as possible
aceoyame said:
I honestly think the way to go is to get back to that step with proper 2nd init and then replace everything blur with as much CM as possible
Click to expand...
Click to collapse
But that's not the right way to go. All that is is basically taking the BLUR base ROM and replacing the things with CM7's stuff. That's basically taking the stock rom and turning it into another blur-based ROM with CM7 apks. That's basically like Eclipse.
dragonzkiller said:
But that's not the right way to go. All that is is basically taking the BLUR base ROM and replacing the things with CM7's stuff. That's basically taking the stock rom and turning it into another blur-based ROM with CM7 apks. That's basically like Eclipse.
Click to expand...
Click to collapse
Let me rephrase that, add CM stuff and then remove Moto stuff. So get back to that, delete moto apk's and then edit init.rc for the framework. All those FC's we are getting if when were in that state are vital clues as to whats isn't playing nice with CM's apk's and framework. The fact it can even somewhat boot in a state like that means it's fairly close to how it wants. If it didn't wipe /system/ then it sounds like you just need to properly 2nd init that ***** and then in moto's init.rc remove moto jar's and apks's. Remember if it didn't wipe then you replaced the framework with CM and it's blur running ontop of it.
ashclepdia said:
Webchat.freenode.net
Channel #X2-AOSP
AND #DX2 for "off topic"
Click to expand...
Click to collapse
Thanks ashclepdia.... helpful as always...
Sent from my DROID X2 using xda premium

[REAL DEVELOPMENT] ICS Building for Flyer

This is not a thread to say ‘thanks’ to developers. Only post here if you have some input in this development progress, by either fixing bugs, or coming up with ideas (and ideally, try your idea and report what happens).
Having that said, let’s move on to where we are at the moment. Currently, we have a build which is based upon Ice Cold Sandwich 6.2 Test Edition for the HTC Desire HD. This build boots up by flashing my custom kernel on it, based on Flyer HC Original Kernel Source, with some patches:
-Quota2 Support
-Genlock Support
-Updated KGSL driver by applying Lord Clockans patches from his kernel
The ZIP we are working on now, can be downloaded here:http://w728685.open.ge.tt/1/files/9iI3CbF/0/blob?download
This ZIP contains a build which is mainly Lord Clockans ICS, with essential changes in the ROM to get it booting (we used LeeDroid’s Flyer HC as the donor ROM). This ROM is made for a HoneyComb HBOOT!
After you have flashed that ZIP, this is the kernel you need: http://ge.tt/9iI3CbF/v/1
You MUST flash this kernel to get it up and running, or it’ll just loop in the logcat complaining about unsupported stuff.
This set should do the following:
-Boot up (bootanimation resets after some time, it’s ok, it will boot within 5 minutes).
-Touchscreen works after you did this: open ADB Shell (by entering ‘adb shell’ on your pc,), and send the command “echo ‘1’> /sys/android_touch/event_google”. Now touchscreen should be working. (For some reason the file 90flyerhacks in /system/etc/init.d doesn’t do its job. If anyone has a clue > say so!) Also, the ntrig.c file in /drivers/input/touchscreen/ is modified in the kernel, don’t know if it helped though.
-Full Hardware Accceleration
-Screen is bugged at certain moments (seems to happen especially during things concering wallpapers. Rendering a wallpaper, showing a heavy LWP, etc.). The build.prop file contains some lines such as:
ro.fb.mode=1
debug.composition.type=gpu/mdp
debug.fb.rgb565=0
Perhaps we have to change these lines to get it running without issues (strange thing is, logcat doesn’t seem to make an issue about this). We can also try a recompile of the kernel using the entire driver folder from Lord Clockans kernel (it’s in /drivers/gpu/msm/ in his kernel, and /drivers/video/msm/gpu/kgsl_adreno205_hc in ours, moving the folder to where it should be causes issues, so we keep it like this for the time being).
-Sound is working
-Backcamera seems to be working fine, haven’t tested frontcamera.
-Hardware buttons under the screen aren’t working, and this should be a low
priority for now. It isn’t ideal to use them in ICS anyway (different button functions in comparison with the softbuttons), and I think we shouldn’t focus on this for now.
-GPS switch can be enabled, haven’t tested whether it works.
-Bluetooth switch can be enabled, but turns off automatically after about ten seconds.
-WiFi switch can’t be changed, logcat tells us that it can’t connect with /dev/rfkill, applying this patch in the ramdisk could fix it:
https://github.com/OpenSensation/an...mmit/da09360d70888a7e126871ab2ae5b218514cad18
-Power button and Volume buttons work fine.
-Pen works after we send the event_google command mentioned before.
If the ROM immediately reboots within 10 seconds and it seems like it’s looping, and you can’t even logcat, hold down Power and Volume Down until you get to HBOOT, select FASTBOOT, and enter ‘fastboot erase cache’ in the CMD/Terminal, and reboot, and it should work.
And that’s about it for the current things we know I think. If you manage to fix something, please write down and report what you did to fix it, so we can keep a list. I will work on a vendor folder using the known information, so we can compile a ROM from source, made for our device.
And last, but not least: don’t post here asking for release dates. We will do our utmost best to bring ICS experience to the Flyer, but do not bug us. Thanks.
Now let’s get this up and running guys! I will keep a log of what is fixed and what is not, so we can keep the thread organized. Else we’ll have 50 ZIPs around, not knowing which one is the right one et cetera.
Source code of kernel: http://github.com/Chaosz-X
Ramdisk will be uploaded tomorrow.
Donations are much appreciated, as I'm developing and building atm on a 1.67GHz Dual core...
Donations can me made to [email protected] using Paypal.
i suggest creating two repos... one for ROM and one for kernel... that way single file changes can be tracked even on ROM front, not just kernel...
willing devs can fork those repo and send pull requests to main repo when they get stuff working
I'm not a developer, and I have nothing but love for all the great devs that worked so hard to bring ICS to the Flyer.
Might I suggest, however, that instead of pursuing CM9 builds, the next effort be centered around porting the Android Open Kang Project (AOKP) ROM? In terms of features and customizations, it's considerably ahead of CM9, with numerous supported devices to boot.
I think this ROM, versus CM9, would give users the most flexible and dynamic ICS experience for their Flyer.
Chaosz-X said:
-Touchscreen works after you did this: open ADB Shell (by entering ‘adb shell’ on your pc,), and send the command “echo ‘1’> /sys/android_touch/event_google”. Now touchscreen should be working. (For some reason the file 90flyerhacks in /system/etc/init.d doesn’t do its job. If anyone has a clue > say so!)
Click to expand...
Click to collapse
Does it work if you add
write /sys/android_touch/event_google 1
to the init.rc file?
Could you post the init.rc file where you trigger the init.d scripts?
nickiberli said:
Does it work if you add
write /sys/android_touch/event_google 1
to the init.rc file?
Could you post the init.rc file where you trigger the init.d scripts?
Click to expand...
Click to collapse
yes that should work correctly
No, I didn't add that. I'll try it tomorrow (or one of you, if you have a Linux machine ready. Laptop with Ubuntu is having some issues atm, can fix it tomorrow).
So, assuming that's working, let's get to the display. We know that it causes issues, but how?
-Logcat doesn't error (except for HtcEbdLog, saying something about rotation, which seems to happen when glitches occur. Perhaps we need to swap the files?)
-At the very beginning, it does tell that initOverlay failed. This overlay-thing is baked in the ROM, and can be disabled in the ROM itself by setting an option to 'false' in the vendor setup. We don't know if it fixes the issue, but since the attempts to add this functionality to the kernel failed, it could be a better idea to fix it in the ROM to get rid of the error.
Any other suggestions?
Edit: and before I forget, tomorrow I'll check the ZIP for what is changed in comparison with the ROM it is based upon, so we know what we have to add in to a new build too.
Chaosz-X said:
No, I didn't add that. I'll try it tomorrow (or one of you, if you have a Linux machine ready. Laptop with Ubuntu is having some issues atm, can fix it tomorrow).
So, assuming that's working, let's get to the display. We know that it causes issues, but how?
-Logcat doesn't error (except for HtcEbdLog, saying something about rotation, which seems to happen when glitches occur. Perhaps we need to swap the files?)
-At the very beginning, it does tell that initOverlay failed. This overlay-thing is baked in the ROM, and can be disabled in the ROM itself by setting an option to 'false' in the vendor setup. We don't know if it fixes the issue, but since the attempts to add this functionality to the kernel failed, it could be a better idea to fix it in the ROM to get rid of the error.
Any other suggestions?
Edit: and before I forget, tomorrow I'll check the ZIP for what is changed in comparison with the ROM it is based upon, so we know what we have to add in to a new build too.
Click to expand...
Click to collapse
u want me to add stuff to that ramdisk?
start a github repo for the ramdisk and ROM too... trust me... its VERY helpful...
I'll start installing Ubuntu within 30 minutes, and will add everything to a GitHub by tonight within about 3 hours I think.
Chaosz-X said:
I'll start installing Ubuntu within 30 minutes, and will add everything to a GitHub by tonight within about 3 hours I think.
Click to expand...
Click to collapse
thats great... it should make keeping track of changes much easier and other interested devs can contribute if they want...
Hello, all.
Attempting to help by working on the build.prop settings. I'm S-OFF with revolutionary and have my device fully configured with the Honeycomb HBOOT/radio/bootloader/etc.
After flashing the ROM and the kernel, the device would immediately reboot upon attempting to return to the main recovery menu. I had to fastboot oem rebootRUU and reflash Globatron's PG41IMG-WIFI-light-B10 zip to get recovery back.
The device never proceeded to the boot animation.
Thracks said:
Hello, all.
Attempting to help by working on the build.prop settings. I'm S-OFF with revolutionary and have my device fully configured with the Honeycomb HBOOT/radio/bootloader/etc.
After flashing the ROM and the kernel, the device would immediately reboot upon attempting to return to the main recovery menu. I had to fastboot oem rebootRUU and reflash Globatron's PG41IMG-WIFI-light-B10 zip to get recovery back.
The device never proceeded to the boot animation.
Click to expand...
Click to collapse
I can confirm this happened to me also. The only difference is that I was using the kernel for a port of mine, and it did the same thing.
Yes, it is known that for some reason, Go Back already reboots the device. It's no problem though, it works fine anyway. If it is really looping the bootanimation every ten seconds, keep Vol Down and Power pressed, until you get to HBOOT. Select FASTBOOT, and enter 'fastboot erase cache' in the terminal. Then reboot on the device, and it should boot up fine.
Also, kernel won't work on Honeycomb, haven't checked why it doesn't though (and I won't btw, our goal is not to make a new kernel for Honeycomb, but for ICS, where it does its job fine).
Kernel source is uploaded to my Github: http://github.com/Chaosz-X
Edit the CROSS_COMPILE for your toolchain, and it should compile fine (it does here).
Will add the link to the OP within 5 minutes, ramdisk will be uploaded tomorrow.
If chaos has a device tree set up for the Flyer/View, no build prop editing should be necessary, can just submit requests - but I don't notice it on the git.
Thanks for uploading, I'll have a look and see what has changed so far. It's a little difficult to keep track of the changes since there are no commits that document the patches applied over time, but I'll try to make do with what you've got.
Is this straight from flyer HC kernel source?
I may be doing this wrong, but the touch screen commands do not seem to be working for me
Cimer said:
I may be doing this wrong, but the touch screen commands do not seem to be working for me
Click to expand...
Click to collapse
You have to type it in manually. Copying and pasting does not work, at least it did not for me. I think the issue is with the '
lawguy said:
You have to type it in manually. Copying and pasting does not work, at least it did not for me. I think the issue is with the '
Click to expand...
Click to collapse
It may just be me, I tried manual too. I had to use http://forum.xda-developers.com/showthread.php?t=1379875 since I'm stuck on Windows 8..maybe something is up with that. I guess I will just need to sit and wait =/
Cimer said:
It may just be me, I tried manual too. I had to use http://forum.xda-developers.com/showthread.php?t=1379875 since I'm stuck on Windows 8..maybe something is up with that. I guess I will just need to sit and wait =/
Click to expand...
Click to collapse
Hang tight for now. Wifi Does not work and the screen freaks out. I'm sure that these things will be fixed soon.
Going to upload ramdisk source within an hour, and try to apply a fix for WiFi, and try to fix the touchscreen by using the command in init.rc mentioned here earlier.
The new modem arrived, I have Internet again, so we have remote access to our Linux machine and can start compiling etc again
Indeed, we're grabbing AOKP source code now. Within about 2 hours we think, we'll start compiling the ROM for the HTC Flyer. Don't know if it will work out, but we have to start somewhere

[DEV][BETA][PREVIEW] TWRP 2.2 Recovery for NT

Team Win Recovery Project 2.2, or twrp2 for short, is a custom recovery built with ease of use and customization in mind. It’s a fully touch driven user interface – no more volume rocker or power buttons to mash. The GUI is also fully XML driven and completely theme-able. You can change just about every aspect of the look and feel.
Phone look:
Tablet look:
CHANGELOG (for 2.2.0):
- On-screen keyboard in recovery! -- supports long press, backspace repeat, and swipe left deletes everything left of the cursor
- Name new backups and rename existing backups
- Rename files and folders in the file manager
- Pseudo-terminal emulator
- Support decrypting an encrypted data partition on Galaxy Nexus (enter password using keyboard)
- Backup archive splitting -- allows backup and restore of data partitions larger than 2GB
- Simplified XML layout support between resolutions
- Added dual storage selection radio buttons to zip install, backup, and restore pages
- Improved zip install compatibility
- Updated update-binary source code
- Numerous small bug fixes and improvements
DOWNLOAD:
The fastest and easiest way to install TWRP is to use the GooManager app:
Play Store Link
Direct Download
You can find more information and download links on our website!
BUGS:
If you have found a bug, please consider posting it to our github issues log. It's pretty much impossible for us to keep up with the more than 30 threads that we have for the devices that we "directly" support. If you have a significant problem that cannot be answered in this thread, your best bet is to PM me directly, contact us via our website, or find us in our IRC channel below. If you see someone that's struggling, feel free to point it out to us. We need your help to help us keep track of all of our devices! Thanks!
SUPPORT:
Live support is available via #twrp on Freenode with your IRC client or just click this link.
ORIGINAL POST (from May):
This is a work in progress.
TWRP (Team Win Recovery Project) 2.1 by TeamWin is an alternative recovery (instead of ClockworkMod) that is a good companion for Goo Manager. See this video for more info.
This is an experimental, mostly untested build of TWRP2 for entertainment purposes only. USE OR ATTEMPT TO USE ENTIRELY AT YOUR OWN RISK. It is intended for those who are willing to risk any and all damage, loss, and STD infection to their hardware, data, person, and associates resulting from this software. Do not attempt to use unless you understand and accept these risks.
Please note this is using the still-being-developed 3.x kernel.
I am including the raw .imgs which can be fastbooted or used on an SD (rename recovery.img.sdcard to recovery.img and put on SD in place of the existing version). Which I don't recommend doing of course, given the disclaimer above. Remember I don't have an NT so I haven't run this... ever.
Finally, this has not at all been put through any kind of paces. That's for you, assuming all the risks, to do. And report it back here for everyone's benefit.
Thanks to dees_troy, eyeballer and demetris_I & frustro for testing this. I'm busy the next few days, so I'm volunteering demetris_I, who has it running, to answer anyone's questions per his availability
twrp-2.1-nt-2012-05-17E-fullofbugs.tar.gz
History
6/12/12 - updated first post.. No binaries yet.. Can someone make one?
5/17 -
Updated 3.0 kernel to support new 512GB NTs (untested)
Updated twrp codebase to latest
Newer cm9 stuff as well
5/17B&C
Use cmdline from u-boot.bin to determine max ram size.
fix device showing up as "B" to "NookTablet"
5/17D&E
I can't remember. But it's betterer.
Has anyone successfully flashed this yet? And can anyone offer up the steps in a more-in-depth way?
Sent from my Team A CM9 Alpha 0.03 Nook Tablet
Well... there's always update.zip
I haven't tried it, but I'm guessing if you've installed fastboot to your computer, this should work:
1. boot into cyanoboot and choose Fastboot from the menu.
2. On your computer, navigate to where recovery.img is and enter into the terminal
fastboot flash recovery recovery.img
Or... maybe someone could whip up a quick update-twrp2-nt-2012-5-14.zip maybe?
I guess that someone might as well be me. This is intended for use with an existing cwm recovery. This will flash to emmc...maybe.
update-twrp-2.1-nt-2012-05-14-fullofbugs-emmc.zip
MD5: 337269fa77017150325d398216a6dd3c
Thoroughly and completely untested. I really don't know if it will even install, and if it does, if it will work. See all disclaimers above, plus make up some additional ones yourself.
Edit: See below about a possible issue with possible difficulties accessing the external SD card. Internal /emmc seems to work consistently. Looking into it, but if you want to help debug this, that would be much appreciated. Just knowing what works or doesn't work and log samples (dmesg via adb) would be great.
Will this completely replace CWM as the recovery? Or will it run alongside. Anything else I should be aware if before I try to flash (do it on a fresh rom install, will I be able to restore from a backup if something goes wrong etc etc...)
Sent from my Team A CM9 Alpha 0.03 Nook Tablet
It will replace cwm.
Rom doesnt matter , they reside in different partitions.
Cyanoboot is all you want if anything goes wrong or/and CWM/TWRP from sd card so you can dd the recovery.
SilentStormer said:
Will this completely replace CWM as the recovery? Or will it run alongside. Anything else I should be aware if before I try to flash (do it on a fresh rom install, will I be able to restore from a backup if something goes wrong etc etc...)
Sent from my Team A CM9 Alpha 0.03 Nook Tablet
Click to expand...
Click to collapse
Should replace it completely. I say should because if you do this with the update.zip, you will be the first one to try it.
Oh, Mister_Argent is trying it on IRC...
The Zip seems to work! Android boots fine, and it's entirely possible to get into TWRP via Cyanoboot. This might just be me, but the terminal seems to lock up...
Oh hey argent, so the zip works? And is it worth my time to change from CWM to TWRP?
Sent from my Team A CM9 Alpha 0.03 Nook Tablet
SilentStormer said:
Oh hey argent, so the zip works? And is it worth my time to change from CWM to TWRP?
Sent from my Team A CM9 Alpha 0.03 Nook Tablet
Click to expand...
Click to collapse
There may be issues with selecting the external SD card... not sure what the deal is. I believe demetris_I checked this out previously, but you can use the internal (/emmc) one though until this is worked out/confirmed one way or the other.
Note: if anyone is good at verifying/debugging, post any relavent dmesg stuff + what your theory is on the issue
So we can still flash stuff through emmc?
Sent from my Team A CM9 Alpha 0.03 Nook Tablet
Indirect gave me this command to flash recovery via terminal emulator and it worked out nicely
dd if=/recovery.img of=/dev/block/mmcblk0p3
Click to expand...
Click to collapse
where "/recovery.img" is the file path/file name of the recovery image
Recovery looks nice. I'll do some more playing with it later when I have time.
fattire said:
There may be issues with selecting the external SD card... not sure what the deal is. I believe demetris_I checked this out previously, but you can use the internal (/emmc) one though until this is worked out/confirmed one way or the other.
Note: if anyone is good at verifying/debugging, post any relavent dmesg stuff + what your theory is on the issue
Click to expand...
Click to collapse
No issues with external sd it just take some seconds to mount, is not instant but it will mount.
8gb NT. Successfully flashed internally; will test, log and provide feedback on any issues.
The zip file name is overly long and CWM doesn't like it. Renaming to something shorter solves the issue.
In my experience with other android devices, it is normally recommended you wipe 'dalvik cache' whenever changing / updating kernel. Perhaps this step will avoid some issues for people.
Edit: Flashing gapps update via Goo Manager results in failure of rom to load after Cyanoboot screen. I did not choose to wipe dalvik / cache in Goo Manager. Also unable to access Cyanoboot via N. Screen appears but does not seem to respond and automatically boots emmc (blank screen).
Re-download Gapps and press the buttons combo to access twrp/cwm and reflash (power+N)
What rom and what gapps you are using?
Make sure they are downloaded ok before flashing.
demetris_I said:
Re-download Gapps and press the buttons combo to access twrp/cwm and reflash (power+N)
What rom and what gapps you are using?
Make sure they are downloaded ok before flashing.
Click to expand...
Click to collapse
I could not access twrp as already stated, because Cyanoboot did not respond to button press. I've managed to get access to CWM via sdcard and reflashed another gapps. CM9 still will not load.
Next, I plan to wipe everything and flash CM9 anew.
Edit: Still won't boot. Looks like I have a brick to fix.
Edit2: Flashing CWM internally got everything working again. Cyanoboot would previously go automatically to loading from emmc; there was no delay / opportunity to press N to access the menu. Now the delay occurs and I have access. CM9 also loads.
Edit3: Reflashed TWRP internally again. It's not working on 8gb NT. It doesn't break Cyanoboot or prevent CM9 from loading, but any attempt to load TWRP results in a black screen.
How do you flash twrp?
If you flash the zip can you please try the fastboot way?
fastboot flash recovery twrp.img, thanks
demetris_I said:
How do you flash twrp?
If you flash the zip can you please try the fastboot way?
fastboot flash recovery twrp.img, thanks
Click to expand...
Click to collapse
I flashed the above emmc zip via cwm internal
I have adb working, however fastboot seems to require a separate driver to work in windows. I've searched the forum and have not found a clear answer.
I'm guessing the 3.0 kernel doesn't have support added for the 8gb nts yet. I guess maybe I could look into that...
Sent from my HTC Vision using XDA
So to run this I have to be running the new 3.x kernel? Or can I just flash the zip if I'm on the 2.x Cm9
(16gb Tablet)
Sent from my Team A CM9 Alpha 0.03 Nook Tablet
SilentStormer said:
So to run this I have to be running the new 3.x kernel? Or can I just flash the zip if I'm on the 2.x Cm9
(16gb Tablet)
Sent from my Team A CM9 Alpha 0.03 Nook Tablet
Click to expand...
Click to collapse
Recovery is separate from the rom. You'll be fine. I have it running on my 16GB.

CM12 / Android TV ROM Development

This thread is for development updates, and an eventual release of testing candidates for the future of dual booting CM12 android roms on the Amazon Fire TV. At this time I am not planing on supporting the Fire TV stick since my development platform is based off USB3 booting.
There currently isn't even a stable branch in CM12 upstream so things are quite tricky right now.
I may eventually setup public nightlies once the core is stable.
IN PROGRESS FORM HERE: https://t.co/TXp9z7htDx
The goals for development are in this order:
Wifi [working]
Bluetooth [crashing]
Stable core [random resets possibly storage related]
Audio [possibly needs hacking to default to hdmi]
Recovery system [rom boots using the recovery partition currently]
Hardware Acceleration [untested]
Android TV addons [require stable core]
USB Formating and install app [apparently not everyone knows what gparted is]
Modified version of Rbox's bootloader [I'd like to add recovery to the loader then have stock and custom boot options]
Also, if you want to be ready for possible nightly testing, I highly recommend going to walmart and buying one of the playstation USB3 hubs. It's about $20 but allows you to plug in a USB3 drive and keyboard and mouse until bluetooth is working.
SETTING UP USB BOOTING:
Code:
#include <std_disclaimer.h>
/* * Your warranty is now void. *
* I am not responsible for bricked devices, dead USB drives,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in these files
* before flashing them! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you. */
PART ONE [Preparing the drive]:
This process will eventually be streamlined but for now I'll explain the process and how it relates to testing builds during development. Since the Fire TV only has an 8gb flash chip and has no hardware recovery trigger, it is quite the unforgiving device to develop on. The current boot method for my CM12 builds involves flashing over the recovery partition and using it as a sort of dualboot partition. The modified recovery partition then searches for ext4 partitions on and external (USB3 preferred) flash drive. Currently each build generates its own boot image to be flashed over recovery, but I'm currently in the process of exploring the possibility of following Rbox's method of loading a boot image from a system folder instead making only one flash to the actual device necessary going forward.
For USB3 booting during the development process I highly recommend using a USB3 hub for a keyboard and mouse while bluetooth pairing and control mapping is being worked on. I also recommend a USB3 drive.
1) Turn on a Linux machine or boot a Live CD
2) Open Gparted
3) Delete any partitions on the usb drive
4) Create three ext4 partitions, the first partion is system and should be about 1GB, the THIRD partition is cache, and should be about 768mb with 0mb following, you should then have the middle portion empty in the display, in this SECOND partition make your data partition fill the rest of the space.
PART TWO [Preparing the bootloader]:
WARNING this process currently involves replacing your recovery partition, remember kids dd and root is like holding a grenade, make sure you don't throw it at something you care about.
Also, if you are testing a build and it does not load using the previous bootloader, try flashing the latest one from the nightlies (and vise versa) as I am still in the process of stream lining the boot process as far as what should take place before system bring up on our device. If a different boot image loads the system with noticeably more stability let me know asap so I can track the causes of my current issues.
Code:
adb connect <STOCK FIRE TV IP>
adb push boot-<DATE>.img /sdcard
adb shell
cd /sdcard
su
dd if=boot-<DATE>.img of=/dev/block/platform/msm_sdcc.1/by-name/recovery
Next I recommend side loading this apk to make rebooting into USB boot easier.
The three most recent "boot" images have been added to the downloads section, remember these should be flashed to recovery. Although they would work in boot, that would disable Rbox's loader and prevent you from loading stock OS.
PART THREE [Playing with instability]:
Great so now you have a USB3 booting image flashed to your recovery partition and you have an empty flash drive. This is where the tinkering begins. In the download section you will find a .tar.gz archive with a somewhat booting system with the aforementioned issues. Inside this archive is a system.img file which you will use dd to flash to the first partition of the flash drive you formated. After the system image is flashed you can plug your flash drive into your hub and reboot into recovery. Things will be great, wifi will show up and if you're quick enough you can complete setup and make it to the launcher. (the issue I'm currently working on is an odd timed reset that may be kernel or storage related oddly if you make it to the launcher and don't touch anything, it takes longer to reset)
If you made it this far, welcome to development. You can help by "kanging" (replacing system apk's and files with other versions to find more stable matches, or remove apks until things don't die then report back to me) Also if you make it to this point go ahead and fill out the form I mentioned earlier. Eventually any hotfix builds I do between nightly builds will be accessible to those users to play with.
Overhauling the boot system next and working on the reset debugging.
XDA:DevDB Information
TechVendetta ROM Development, ROM for the Amazon Fire TV
Contributors
TechVendetta, rbox
Source Code: https://github.com/TechV/android_device_amazon_bueller
ROM OS Version: 5.0.x Lollipop
Based On: CyanogenMod
Version Information
Status: Testing
Created 2015-01-29
Last Updated 2015-01-29
Reserved
UPDATE: I'm pretty much settled in to my new job/home now so I'm going to resume this project shortly. The first order of business is to see what sort of driver improvements we got from Amazon and whether their modifications help resolve the issues I was having. I only have the original FireTV so I'll be only testing on that. Not sure if the new one has an unlocked bootloader or recovery system so that will be up to whichever brave soul wants to test that. Hopefully tomorrow I can resync my repos and get a look at whats changed.
Reserved
Thanks for the update! Looking forward to seeing how this progresses.
Thanks for your work!
It would be nice run a CM12 build in Fire TV
So far the main system seems promising, I feel like the reset issue, which is the primary major roadblock is either in the kernel, or in the storage management/selinux services. Selinux should be disabled in this build so I'm looking into the other two options right now.
TechVendetta said:
So far the main system seems promising, I feel like the reset issue, which is the primary major roadblock is either in the kernel, or in the storage management/selinux services. Selinux should be disabled in this build so I'm looking into the other two options right now.
Click to expand...
Click to collapse
Thank you for keeping us updated!
[email protected] said:
Thank you for keeping us updated!
Click to expand...
Click to collapse
I'll link this here for now, while I finish looking into the logs for bluetooth/wifi/audio before uploading a rough copy here. I think I'm going to use the individuals who filled out the form to test the installer and recovery apps I'll be doing after fixing the above three things.
:victory:| TEASERS |:victory:
TechVendetta said:
I'll link this here for now, while I finish looking into the logs for bluetooth/wifi/audio before uploading a rough copy here. I think I'm going to use the individuals who filled out the form to test the installer and recovery apps I'll be doing after fixing the above three things.
:victory:| TEASERS |:victory:
Click to expand...
Click to collapse
Hey,
i've got one question for the installation:
you use the recovery as boot partition (because you dont want to mess with the actual boot partition where the bootmenu is).
is there a reason we cant use rbox's bootmenu, add another entry "usb boot" which will boot from /system/boot/usbboot.img ?
Or is the only reason that this just hasnt been added by rbox so we have to use another way?
I think this would be the most brick safe version and shouldnt be a big problem for rbox to implement....
Chris
[edit]
i'm really looking forward to this
aHcVolle said:
Hey,
i've got one question for the installation:
you use the recovery as boot partition (because you dont want to mess with the actual boot partition where the bootmenu is).
is there a reason we cant use rbox's bootmenu, add another entry "usb boot" which will boot from /system/boot/usbboot.img ?
Or is the only reason that this just hasnt been added by rbox so we have to use another way?
I think this would be the most brick safe version and shouldnt be a big problem for rbox to implement....
Chris
[edit]
i'm really looking forward to this
Click to expand...
Click to collapse
Thats one of the goals I put up there, just unlike rboxs current loader I know a way to make it remote controlled. ;D I started a bit on it. The "friendly user release" will have a root installer app that will handle multiboot, formating flash drives, recovery options, updates etc.
Really looking forward to a CM12 Android TV ROM. It would be nice to know that Amazon would not be able to kill a rooted Fire TV when this becomes reality. Peace of Mind regarding the Fire TV would be Priceless!
Xposed too http://forum.xda-developers.com/showthread.php?t=3030118
hhairplane said:
Xposed too http://forum.xda-developers.com/showthread.php?t=3030118
Click to expand...
Click to collapse
I'm a big fan of exposed, I'll have to add that to my testing list. I get a bit more free time tonight so I'll be getting back to looking at WiFi and Bluetooth and the installer. I still have two possible routes for both installing and updating i have to consider.
Sent from my LG-VM670 using XDA Free mobile app
TechVendetta said:
I'll link this here for now, while I finish looking into the logs for bluetooth/wifi/audio before uploading a rough copy here. I think I'm going to use the individuals who filled out the form to test the installer and recovery apps I'll be doing after fixing the above three things.
:victory:| TEASERS |:victory:
Click to expand...
Click to collapse
Any luck with the video acceleration, eg for Kodi or others such as Netflix, etc? How about hdmi audio?
Thanks for the update!
Video acceleration appears to be working, haven't got to audio. Had a death in the family this morning so i haven't had time to test my latest build.
Sent from my LG-VM670 using XDA Free mobile app
Sorry to hear that, Family is first! Although, maybe working on this will help take your mind away from that. Feel better!
TechVendetta said:
Video acceleration appears to be working, haven't got to audio. Had a death in the family this morning so i haven't had time to test my latest build.
Sent from my LG-VM670 using XDA Free mobile app
Click to expand...
Click to collapse
Sorry to hear that.
I recently installed CM 12 on a 2012 kfhd and wow!--it really brought that device to life! Performance/OC options are built right into the OS and another Dev made a custom kernel to oc to 1.7 ghz. But I have limited experience with CM and Android TV. Can we expect a similar UI and performance options with this? Or is it different for the set top boxes?
BTW--I think it's really great you're doing this. Lots of people are excited and it's very appreciated!!!
KLit75 said:
I recently installed CM 12 on a 2012 kfhd and wow!--it really brought that device to life! Performance/OC options are built right into the OS and another Dev made a custom kernel to oc to 1.7 ghz. But I have limited experience with CM and Android TV. Can we expect a similar UI and performance options with this? Or is it different for the set top boxes?
BTW--I think it's really great you're doing this. Lots of people are excited and it's very appreciated!!!
Click to expand...
Click to collapse
I can overclock the kernel but I'm not sure if it will be necessary yet. As for the features, CM12 doesn't even have a "stable" build yet. (they call them M builds now) They are still porting customizations like that in. That rom may use some stuff pulled in by the dev from other projects like paranoid, aokp etc. I'm listening to what people are asking for and I'll be taking it into consideration once I get to tweaking release candidates.
TechVendetta said:
I can overclock the kernel but I'm not sure if it will be necessary yet. As for the features, CM12 doesn't even have a "stable" build yet. (they call them M builds now) They are still porting customizations like that in. That rom may use some stuff pulled in by the dev from other projects like paranoid, aokp etc. I'm listening to what people are asking for and I'll be taking it into consideration once I get to tweaking release candidates.
Click to expand...
Click to collapse
Sounds great. Thinking now...an OC kernel probably isn't necessary since it's already real fast. But this rom I have works well on a relatively low end/older device. So I'm super excited about your project. Thanks again!

Categories

Resources