Thoughts on Oreo... - Nexus 6 Developer Discussion [Developers Only]

So, since the Pixel and newer Nexus devices are now getting their Oreo updates, I think it's time that we, the developers who still own Nexus 6's, to look into porting Oreo to this device. I am looking into the source code as we speak for feasibility. If anything, I will probably do like I have done with most of my devices in the past, forge the path and create a guide, and let everyone else do the creative stuff. I just happen to like stock Android.

There is already one dev who got Oreo to boot on the Xiaomi Mi 3, runs on SD800 (32bit)

konradit said:
There is already one dev who got Oreo to boot on the Xiaomi Mi 3, runs on SD800 (32bit)
Click to expand...
Click to collapse
Looking promising,fingers crossed
Sent from my Nexus 6 using Tapatalk

There ARE people working on Android O port, even back when it was still in developer preview status. You'll see releases whenever they are ready, I'd give it a few weeks or months.
I won't argue if you're a developer or not, I'm sure you are. But you are not a "recognized developer". Your title is member

Dopamin3 said:
There ARE people working on Android O port, even back when it was still in developer preview status. You'll see releases whenever they are ready, I'd give it a few weeks or months.
I won't argue if you're a developer or not, I'm sure you are. But you are not a "recognized developer". Your title is member
Click to expand...
Click to collapse
Getting it to build is easy. Ive already done as much but without updated binaries (which I havent seen for any device) it wont boot. There are likely some kernel changes needed as well though I havent dug to much into that yet. Then there is the whole GApps for Oreo issue. I would say we are definitely a week or so away from anything working.

Things are in the works and if gapps don't work for 32 bit.. I suggest you gentlemen familiarize yourself with microG

I built it from developer preview 2 a couple months ago. Booted and everything, but nothing as far as any of the radios worked. I had to modify franco kernel to get it there, but it did work..
I tried re-building it after the stable source dropped and can't seem to get passed this error:
frameworks/native/include/gui/IGraphicBufferProducer.h:35:10: fatal error: 'hidl/HybridInterface.h' file not found
The file is there and where it should be... So I'm kinda scratching my head as to where the switch is that causes it not to pick up that location.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}

So the development for Xiaomi Mi3/Mi4 has gone online: https://forum.xda-developers.com/xiaomi-mi-3/development/8-0-aosp-t3662028
The source code is not available yet but is on it's way. Maybe there might be hints on what's needed for us to make stuff work on the shamu once the source is online(?). I'm aware they are completely different devices but the architecture are closer as they both are 32bit rather than the newer devices running 64bit.

I was able to get a build to complete but it doesn't boot. I don't have the time today to go over it, but if anyone has some free time, feel free to take a look at the logcat and see if anything jumps out immediately.
boot.log

kkozma said:
I was able to get a build to complete but it doesn't boot. I don't have the time today to go over it, but if anyone has some free time, feel free to take a look at the logcat and see if anything jumps out immediately.
boot.log
Click to expand...
Click to collapse
@followmsi build had a similar issue yesterday on the Nexus 7 2013 forums. I tested the build and it would not get to the boot animation and would restart to the bootloader after about a minute. After returning to TWRP the data partition was either corrupted or unreadable. OP said that it was probably the fact of missing SDcardFS support in the recovery/kernel.
https://forum.xda-developers.com/nexus-7-2013/development/rom-t3569067/page60
the struggle continues.

wavedashdoc said:
@followmsi build had a similar issue yesterday on the Nexus 7 2013 forums. I tested the build and it would not get to the boot animation and would restart to the bootloader after about a minute. After returning to TWRP the data partition was either corrupted or unreadable. OP said that it was probably the fact of missing SDcardFS support in the recovery/kernel.
https://forum.xda-developers.com/nexus-7-2013/development/rom-t3569067/page60
the struggle continues.
Click to expand...
Click to collapse
He is wrong. The sdcardfs is a file system for sdcard enabled devices. Nothing to do with the nexus 6. It was even removed in most other builds for the device. The only people that added it were people that didn't understand what they were doing.

wrongway213 said:
Things are in the works and if gapps don't work for 32 bit.. I suggest you gentlemen familiarize yourself with microG
Click to expand...
Click to collapse
Late reply here.
I have tried MicroG before - on a custom Galaxy S4 ROM - and I like MicroG about as much as I like Xposed. If MicroG is required I won't be upgrading.

wrongway213 said:
Things are in the works and if gapps don't work for 32 bit.. I suggest you gentlemen familiarize yourself with microG
Click to expand...
Click to collapse
People are not gonna do that. Microg is known for causing its own issues.

Strephon Alkhalikoi said:
Late reply here.
I have tried MicroG before - on a custom Galaxy S4 ROM - and I like MicroG about as much as I like Xposed. If MicroG is required I won't be upgrading.
Click to expand...
Click to collapse
zelendel said:
People are not gonna do that. Microg is known for causing its own issues.
Click to expand...
Click to collapse
It's been confirmed that gapps for arm are working since I posted that, so it's a moot point now, thankfully.

zelendel said:
He is wrong. The sdcardfs is a file system for sdcard enabled devices. Nothing to do with the nexus 6. It was even removed in most other builds for the device. The only people that added it were people that didn't understand what they were doing.
Click to expand...
Click to collapse
Oh mate, you're so wrong. SDcardFS is a virtual FS for emulating /sdcard/ (/storage/emulated/0) and EVERY android device has it. It's just a replacement for vFAT (virtual FAT). One of the most important fixes is that the file timestaps won't get corrupted anymore (this bug existed in android for years).

Lawstorant said:
Oh mate, you're so wrong. SDcardFS is a virtual FS for emulating /sdcard/ (/storage/emulated/0) and EVERY android device has it. It's just a replacement for vFAT (virtual FAT). One of the most important fixes is that the file timestaps won't get corrupted anymore (this bug existed in android for years).
Click to expand...
Click to collapse
vfat is a real filesystem for block devices. Think of it as being in between FAT and FAT32. What it adds over FAT is a virtual file NAMING convention in order to exceed the standard "8.3" filename format that FAT was stuck with. vfat is also the NAME of the linux implementation of FAT (FAT12, FAT16), VFAT, and FAT32.
What you are thinking of as being present on "EVERY" android device, is this; https://android.googlesource.com/pl...197870433386fb809d34b58b30fc0/sdcard/sdcard.c
You should pay attention to the README section of it starting at line 32.
When Android devices used to have an actual sdcard, it was formatted using vfat (the linux implementation of FAT32), with a mount point of /sdcard.
When they stopped including real sdcards, they started emulating sdcards using that FUSE simulated vfat I linked to above.
Now what sdcardfs is, is (a) a replacement for the FUSE filesystem I linked to above, and (b) a replacement for FUSE itself. Think of it as a scaled back and simplified FUSE+sdcard.c. The problem with FUSE is that it is too complex and with too high of an overhead. It causes performance degradation. And I'm not talking about the general userspace degradation that you would get with, for example, NTFS-3g compared to a native implementation, but rather the sdcard.c adds some problems because it is actually *abusing* FUSE. FUSE isn't designed or intended to wrap one filesystem with a simulation of a different one. FUSE is intended to actually implement a filesystem proper. What that means is that the kernel performs certain filesystem operations on the FUSE filesystem, which calls back to essentially perform the same operations on the base filesystem (ext4). Double the operations. Also double the caching, which is horrendous because it means that you are storing the same cached file in RAM twice. That is the kind of thing that sdcardfs is intended to solve.
Now personally, I completely disagree with this approach. Sdcardfs (as with FUSE+sdcard.c) is a backwards compatibility layer that really should be removed altogether. Instead, access controls to the data really should be by way of ACLs. Yes, this will break some very old software, but its the right way to move forward.

kkozma said:
I was able to get a build to complete but it doesn't boot. I don't have the time today to go over it, but if anyone has some free time, feel free to take a look at the logcat and see if anything jumps out immediately.
boot.log
Click to expand...
Click to collapse
Well, the first thing that stands out is this;
03-13 02:38:08.029 0 263 W VendorServiceManager: failed to open binder driver /dev/vndbinder
Indeed, the factory kernel does not have any such driver. This is probably something related to "Project Treble", which is supposed to make it simpler to update the android platform while leaving the *vendor* platform unchanged. Sounds like this driver will have to be added to the kernel.
https://android-developers.googleblog.com/2017/07/shut-hal-up.html
There is also this, which happens immediately before the SIGABRT for surfaceflinger:
03-13 02:38:09.975 298 298 F Gralloc2: gralloc-mapper must be in passthrough mode
Code:
Mapper::Mapper()
{
mMapper = IMapper::getService();
if (mMapper == nullptr || mMapper->isRemote()) {
LOG_ALWAYS_FATAL("gralloc-mapper must be in passthrough mode");
}
}
That gralloc issue could be a consequence of the vndbinder issue.
Hmm... https://github.com/SiXROM/platform_device_moto_shamu/commit/86ebb7db1b0a23c4d0a09568a6414d3b9f140596
Note that their changes to the BoardConfig.mk are bogus, none actually apply to this hardware. But the additional PRODUCT_PACKAGES are possibly meaningful.
Might try a build using these three projects;
<project path="device/moto/shamu" name="platform_device_moto_shamu" groups="device,shamu,broadcom_pdk,generic_fs,pdk" remote="sixoreo" revision="oreo" />
<project path="kernel/moto/shamu" name="platform_kernel_moto_shamu" groups="device,shamu,broadcom_pdk,generic_fs,pdk" remote="sixoreo" revision="oreo" />
<project path="vendor/moto" name="platform_proprietary_vendor_moto" remote="sixoreo" revision="oreo" />
sixrom has also made a whole lot of other changes, but I suspect that they are more related to customizations rather than actual device functionality.

I had seen the vndbinder thing the other day and added it to the kernel I'm using. I actually had it booting yesterday, but managed to hose it up trying to fix bluetooth and then ended up losing my boardconfig.mk and device.mk so I have to start over on those two.
I actually tried building with that sixrom repo and it wouldn't boot at all. I suspect it's because it's based on Lineage whereas mine is straight from AOSP.
Getting ready to play around with it some more, hopefully I can get back to a booting rom again!

kkozma said:
I had seen the vndbinder thing the other day and added it to the kernel I'm using. I actually had it booting yesterday, but managed to hose it up trying to fix bluetooth and then ended up losing my boardconfig.mk and device.mk so I have to start over on those two.
I actually tried building with that sixrom repo and it wouldn't boot at all. I suspect it's because it's based on Lineage whereas mine is straight from AOSP.
Getting ready to play around with it some more, hopefully I can get back to a booting rom again!
Click to expand...
Click to collapse
How do you lose your make files? Did you forget to commit them to your git?
Commit often, ESPECIALLY when you have things (anything) working.
Then if you bugger it up, just roll it back, of git diff it to see what you changed.
I don't see any evidence of sixrom being based on anything besides aosp (certainly not lineage/cm)
Take a peek at their manifest, there's a few frameworks that they've messed with, a bunch of applications, but its mostly AOSP;
https://github.com/SiXROM/manifest/blob/oreo/default.xml

Yeah, that was a real derpasaurus moment for me there, but I'm back to a bootable situation.
- Bluetooth is still broken
- No Cellular Radio
- WiFi connects but causes a reboot immediately
- Not able to view anything on the SD Card & Camera asks for an SD card to be inserted. Oddly enough I am able to play the music that's on my sdcard.
I'll get everything pushed up to my github later so if anyone else wants to tinker with it...
They probably haven't pushed the working updates to device to get to where they. As I said, I built directly from their repo and it didn't work at all.
Edit: my github is https://github.com/vwmofo
if you want to put together a local manifest and pull it down, feel free.

Related

Bootloader cracked and next steps

So now that we have found the leaking crack in the bootloader and proved it's usefulness fat-tire and others are going to start work on a couple of key projects that I could use a little help on.
This will also keep conspiracy theorists at bay who call me "extremely low IQ male rooster with social development issues" (Also I have no pies)
Here is how i see the next steps:
Strip down uboot (or other bootloader) and teach it boot from it's own partition.
For example install 2nduboot in /boot, hijacking the signature check and then setting a 1MB offset to look for the real, unsigned boot.img. Repeat for recovery.
This is the real hold up and why there is nothing to "flash" as of yet. (still no pies)
Finish CWM. 100% done.
Completed. See recovery.img here: http://forum.xda-developers.com/showthread.php?t=1440645
Work on CM9 for both SDcard and internal booting
See Below
So instead of insulting me. I am looking for some people to help work on these things. We are going to be doing this is private respostories and a private irc channel due to the stupid reward that is out there.
If you are wanting to work with me. The reward (if we get done by the 22nd) goes to Doctors Without Borders. This is where we should all be donating. No negotiating.
So PM me or come to #nook-tablet @ freenode
Reserved
Bootstrap-loader (Goal #1)
Here is some more details on my thoughts on bootstrapping /boot and /recovery to boot unsigned images.
Today we are only bootstrapping with a 2nduboot on the sdcard. This would allow custom kernels and ramdisks on emmc for things like easier root, overclocking, CM9, CWM, etc
So my thoughts were to bundle together a bootstrap bootloader (uboot obviously will work, but another project that was used for CM on the touchpad called, moboot, may be a nice option to get menus and such) and the unsigned kernel+ramdisk into one binary blob. The unsigned boot.img will be at a well known offset. This will allow us to act as "stock" as possible and do things like. Replace just the kernel with an OC one. Replace just the ramdisk with ro.secure=0, etc.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This would also allow us to completely replace recovery with CWM.
Current Status: Fattire working on a meny for SD booting. Still discussing best way to do internal booting although using bauwks bootstrap uboots will work for now for emmc but incorporating a possible menu is being looked into. Low Priority
CM9 (Goal #2) Inprogress
There is a lot here and I am going to go at it pretty methodically adding one feature at a time. So graphics first, then key/touchscreen, usb gadget, etc.
There is a number of kernel changes that need to be done:
Find the closest git repo/branch/revision from omap zoom to apply B&N changes as a patch.
This will allow us to a) have revision history b) allow merging up to 3.0 easier
This is pretty important and if anyone is handy with git and knows of an easy way. Let me know
Backport key changes (fattire probably has this already done)
Backport usb gadget
Backport a hwrenderer compatable sgx drives (maybe move to a 3.x kernel at this point instead)
Backport
Current Status:
Teasers:
Wow. Thanks nemith for all the info. I will work with you and 100% will give the donation to them (verbal and writen agreement). From when I was building CWM on the GNex I remeber having to change one of the values in the .mk file to allow for adb.
Hi nemith,
That is a nice plan which aligned with my plan for modding u-boot to boot off the internal partitions .
I pushed some changes into my git repository on github which looks like #1 on your list. git://github.com/bauwks/Nook-Tablet.git
So for example, to build a 2nd u-boot that will install to the internal flash partition "recovery" and try to load the next stage at offset 256K of the internal "recovery" partition one would do:
(cd to u-boot directory and switch to second-uboot branch first, then)
PATH=/usr/local/arm-2010q1/bin:$PATH
make nt2ndboot_irecovery
make
./tools/build_nt_2ndboot_img.py -f -o irecovery.img u-boot.bin
dd if=/dev/zero of=irecovery.img bs=1 seek=262143 count=1 # pads to 256K size
Then, you can cat your irecovery.img and your real recovery.img together and blast them onto the recovery partition.
There is also a nt2ndboot_iboot config that will do the same, but is used on the "boot" partition.
I have only done minimal testing with the recovery partition 2nd uboot. I'm about to write a full image onto my recovery partition and see what happens
Update:
I flashed my recovery partition with irecovery.img + a random twrp2 image I had and it boots solely from internal flash! No more SD card needed, no more USB connection needed, just holding down power+N
nemith said:
So now that we have found the leaking crack in the bootloader and proved it's usefulness fat-tire and others are going to start work on a couple of key projects that I could use a little help on.
This will also keep conspiracy theorists at bay who call me "extremely low IQ male rooster with social development issues" (Also I have no pies)
Here is how i see the next steps:
Strip down uboot (or other bootloader) and teach it boot from it's own partition.
For example install 2nduboot in /boot, hijacking the signature check and then setting a 1MB offset to look for the real, unsigned boot.img. Repeat for recovery.
This is the real hold up and why there is nothing to "flash" as of yet. (still no pies)
Finish CWM. 100% done.
Completed. See recovery.img here: http://forum.xda-developers.com/showthread.php?t=1440645
Work on CM9 for both SDcard and internal booting
Started on this one as well. I can boot but haven't got adb working and no graphics (expected at this point)
So instead of insulting me. I am looking for some people to help work on these things. We are going to be doing this is private respostories and a private irc channel due to the stupid reward that is out there.
If you are wanting to work with me. The reward (if we get done by the 22nd) goes to Doctors Without Borders. This is where we should all be donating. No negotiating.
So PM me or come to #nook-tablet @ freenode
Click to expand...
Click to collapse
A bit on UI, cleanup, and various boot scenarios
Bauwks.. cool, glad emmc is is a go.
Current Status: Fattire working on a menu for SD booting. Still discussing best way to do internal booting although using bauwks bootstrap uboots will work for now for emmc but incorporating a possible menu is being looked into
Click to expand...
Click to collapse
UB2 update from me: A fruitful night with lots of fun enhancements, some modest UI feedback, and a sprinkling of safety/sanity fixes and other tweaks. SD and emmc options should be more convenient/consistent now, with recovery selection effectively handled by UB2 not UB1 (though power+n will remain an option obviously). I'll let nemith elucidate.
Also, bauwks, nemith suggested, and I thought it wasn't a bad idea, to expand to 512K instead of 256K as a partition buffer just to be on the safe side. I think he said the partitions are 16MB in all, so a little extra padding for possible future bloat is probably not a bad thing to have-- especially if there's gonna be a 2nd-bootloader "standard" (ie, so that any UB2 or menu will work in the future...) now's the time to decide- what do you think? Is 512 reasonable? Adding a single new .rle pushes you over. (We actually can eliminate two .rles right now, as the "charging" and "plugin" ones are effectively useless. I got rid of them, then added two more for feedback so I'm back to even, though eventually I'll probably get rid of them too.) What are your thoughts?
Considering I don't have an NT and I'm working blind here with nemith testing... I think this could wind up pretty nifty.
bauwks said:
Update:
I flashed my recovery partition with irecovery.img + a random twrp2 image I had and it boots solely from internal flash! No more SD card needed, no more USB connection needed, just holding down power+N
Click to expand...
Click to collapse
Nice!!!!
I was loathing the idea of having to keep a bootable sdcard in the thing forever. From my understanding of this, this hardware is now "cured", and just needs a special blob appended to the front of the boot and recovery partitions, eh?
dhkr234 said:
Nice!!!!
I was loathing the idea of having to keep a bootable sdcard in the thing forever. From my understanding of this, this hardware is now "cured", and just needs a special blob appended to the front of the boot and recovery partitions, eh?
Click to expand...
Click to collapse
Yeah. Or more specifically, everything in those partitions will need to be shoved over by a set amount to make room for UB2.
fattire said:
Also, bauwks, nemith suggested, and I thought it wasn't a bad idea, to expand to 512K instead of 256K as a partition buffer just to be on the safe side. I think he said the partitions are 16MB in all, so a little extra padding for possible future bloat is probably not a bad thing to have-- especially if there's gonna be a 2nd-bootloader "standard" (ie, so that any UB2 or menu will work in the future...) now's the time to decide- what do you think? Is 512 reasonable? Adding a single new .rle pushes you over. (We actually can eliminate two .rles right now, as the "charging" and "plugin" ones are effectively useless. I got rid of them, then added two more for feedback so I'm back to even, though eventually I'll probably get rid of them too.) What are your thoughts?
Click to expand...
Click to collapse
Hi fattire,
I guess it depends on how you look at it. I was looking at it like: an "image" is a concatenation of a 2nduboot and an Android kernel/ramdisk. To install, one would just dd the "image" to a partition. Then the 2nduboot wouldn't have to have a fixed max size that is predefined, if it needs to be increased you would just modify the partition offset in the bootcmd to load the stuff after the new size. It would also make updating the 2nduboot easier because it's part of the "image".
But, I have not worked with Android before so I do not have expertise in how images are typically deployed. If you always want the real image to be at a fixed offset then increasing to 512K makes a lot of sense. You are free to use the solution that best fits your problem.
By the way, the offset of the real image doesn't have to be a power of 2, it only has to be a multiple of the MMC sector size (512 bytes).
I can't really offer much as I am no android developer. I can modify basics and work thinsg out through educated trial and error but most of what you guys have been on about has been way out of my league. If it makes any difference I have 2 NTs one of which is brand new in a sealed box just sat waiting for the correct time to bother getting it out to play.
I'm quite happy to do testing, tweak things and do what I can where required.
Not sure what happened about the reward thing but as has been said before I think giving it to a good cause is a very decent and honest thing to do.
Doing it and donating the 'winnings' to a good cause is a far better idea and I commend you for following that route. Those that do it solely for the money aren't doing it for the reasons that I think XDA exists and from what I've seen before often get their money out of blatantly using other members hard work to make themselves look good, there always seems to be a lot of sitting on the fence then diving in at the last second and releasing something as their own when most of it isn't.
Anyway, enough babbling from me! Keep up the good work and when you think I can be of any help I will be more than happy to chip in where required.
bauwks said:
Hi fattire,
I guess it depends on how you look at it. I was looking at it like: an "image" is a concatenation of a 2nduboot and an Android kernel/ramdisk. To install, one would just dd the "image" to a partition. Then the 2nduboot wouldn't have to have a fixed max size that is predefined, if it needs to be increased you would just modify the partition offset in the bootcmd to load the stuff after the new size. It would also make updating the 2nduboot easier because it's part of the "image".
But, I have not worked with Android before so I do not have expertise in how images are typically deployed. If you always want the real image to be at a fixed offset then increasing to 512K makes a lot of sense. You are free to use the solution that best fits your problem.
By the way, the offset of the real image doesn't have to be a power of 2, it only has to be a multiple of the MMC sector size (512 bytes).
Click to expand...
Click to collapse
Presumably, the partition table is write protected along with the xloader and bootloader partitions, right? Now I guess that would be by power-on-write-protect rather than permanent write protect (which would obviously lock even THEM out of it...). Stupid question, but has anyone checked if the eMMC reset pin is connected to a test point on the board or on some gpio we can manipulate? I'm just wondering if we can pull something like a gfree on this sucker, especially since the eMMC is practically identical to the one on VISION/GLACIER/ACE, just larger. Bounce that reset pin and reinitialize the eMMC with write protect disabled, replace xloader and uboot with proper uncrippled ones, and BE GOD.
Progress on CM9 from @AndroidNemith http://twitpic.com/86hx6m - Twitter
dhkr234 said:
Presumably, the partition table is write protected along with the xloader and bootloader partitions, right?
Click to expand...
Click to collapse
Nope.
dhkr234 said:
Now I guess that would be by power-on-write-protect rather than permanent write protect (which would obviously lock even THEM out of it...)
Click to expand...
Click to collapse
Nope.
dhkr234 said:
Stupid question, but has anyone checked if the eMMC reset pin is connected to a test point on the board or on some gpio we can manipulate? I'm just wondering if we can pull something like a gfree on this sucker, especially since the eMMC is practically identical to the one on VISION/GLACIER/ACE, just larger. Bounce that reset pin and reinitialize the eMMC with write protect disabled, replace xloader and uboot with proper uncrippled ones, and BE GOD.
Click to expand...
Click to collapse
This is not the g2. It's not a write-protected emmc and a power cycle of the emmc will do nothing. I appreciate the enthusiasm, but you're coming to this very late.
More rambling...
If I'm not mistaken, the way you're suggesting is UB2 would be a prepended portion of the boot and recovery images as part of a "package", and this is how we were already discussing doing it in the cm9 build system-- this also matches in effect how Nook Color CM7 distros work-- the bootloader is actually re-installed with every update.zip (to enforce compatibility as newer versions of Android require newer u-boot).
However, I was considering that some people want to swap various u-boots in and out of existing boot or recovery partitions without necessarily having to push aside the rest of the image to make room. So if they're thought of as a unit, it makes total sense to do it as you suggest- but if UB2 is something that can be replaced (or updated) independently, then maybe a standard "buffer" size would be more appropriate.
We've talked about a few ideas- if a simpler boot menu is used to replace UB2, or a redirection to "see other partition for bootloader"... then it could be 512K (or whatever) mostly wasted... which may not be a big deal either.
Anyway, just typin' out loud. Lots of options, and no "right" way to do it.
bauwks said:
Hi fattire,
I guess it depends on how you look at it. I was looking at it like: an "image" is a concatenation of a 2nduboot and an Android kernel/ramdisk. To install, one would just dd the "image" to a partition. Then the 2nduboot wouldn't have to have a fixed max size that is predefined, if it needs to be increased you would just modify the partition offset in the bootcmd to load the stuff after the new size. It would also make updating the 2nduboot easier because it's part of the "image".
But, I have not worked with Android before so I do not have expertise in how images are typically deployed. If you always want the real image to be at a fixed offset then increasing to 512K makes a lot of sense. You are free to use the solution that best fits your problem.
By the way, the offset of the real image doesn't have to be a power of 2, it only has to be a multiple of the MMC sector size (512 bytes).
Click to expand...
Click to collapse
aversion of single-point-of-failure
I'd like to recommend, to avert the Single Point of Failure, a manditory and automatic backup of the /ROM/ partition. Since you're developing the first custom kernel, there will be a lot of work based upon yours for this device.
This can be handled in the init scripts. after /ROM/, /system/ and /sdcard/ mount. If the /ROM/ folder is available and there is no backup, make one. This simple step can save alot of grief in the future in case of damage.
Untested code:
Code:
#! /bin/sh
ROMBACKUPDIR="/sdcard/backup/ROM/";
BACKUPFILE=$ROMBACKUPDIR"ROMPARTITION.img";
TESTFILE="/ROM/NAMEOFANYFILE";
ROMPARTITION="/dev/block/***";
busybox test ! -e $ROMBACKUPDIR && mkdir --parents $ROMBACKUPDIR;
#no backup detected, so make one.
busybox test -f /ROM/$TESTFILE && busybox test ! -f $BACKUPFILE && busybox dd if=$ROMPARTITION of=$BACKUPFILE;
where ***=the ROM partition on your kernel and NAMEOFANYFILE=the name of any file on the /ROM/ folder
Whomever is building the AOSP!!!
Be careful with the ICS 4.0.3. There are alot of issues with the way the AOSP market place is working with it. The 4.4.3 Market has a tendancy to crash continually. Might be worth building ICS 4.0.2, and using that to elimitate all the problems whe can.
I have a mac g5 on public ip space and a NT that I can plug in if any dev's want to use that.
other than that, I'm another tester for y'all.
Loglud said:
Adam,
I own the nooktabletdev.org wiki, I will add all of those into it, or allow you an admin account. Then we can just point to there.
Click to expand...
Click to collapse
I've begun said post here: http://forum.xda-developers.com/showthread.php?p=21371828
Congrats to everyone who cracked it finally
I can say with 90% surity that You can recover a junked ROM partition or for that matter a fully junked eMMC, for the simple fact that it gives other pheriperals a chance before booting into eMMC (cannt say 100 % by myself immidiately now, because have been busy with other stuff at work over the last week, so my memory FIFO wrt my experiments on NookTab is bit blurry now).
AdamOutler said:
I've begun said post here: http://forum.xda-developers.com/showthread.php?p=21371828
Click to expand...
Click to collapse
Ahhhh, documentation!!!!
But seriously, thanks very much for that.
And FYI: Probably the best place to keep documentation is right here: http://forum.xda-developers.com/wiki/BN_Nook_Tablet -- in the xda device wiki.
Hey guys this just made you famous on the interwebz...
http://www.engadget.com/2012/01/14/nook-tablet-bootloader-bypassed-android-4-0-takes-its-first-ste
Good jorb!

[L][5.0] Android Lpv Dev for Deb [Stable 9001]

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Flashing tips by @ramjet73, this should be read by everyone
http://forum.xda-developers.com/showpost.php?p=55228784&postcount=12583
This is an enhanced version of the 81c developer preview that google released.
It has currently been ported for Mako and Deb and improved for Hammerhead and Flo
It offers a permissive selinux policy, aosp merged in and rock solid stabilty along with drastic improvements in speed and smoothness.
It offers updated proprietary files, updated google apps, fonts, res files and animations from the newer sdks.
Click to expand...
Click to collapse
Deb does not have a working mobile radio yet, radio turns on but without access to the settings, we can't configure it. A work around is being worked on
Big thanks to @defconoi , @zyr3x , @percy_g2 , @ben1066 [MENTION=1050103] for improving and originally helping with the old lpv79 port to Mako.
Right now I rebased the entire project to clean it out and smooth it out
Huge thanks to @ramjet73 @bitstra @manueltts @skiman10 @psycho693 @jayfallen for helping me get it over to the other devices I don't have and testing everything I threw at them and the huge brainstorming and trying things I couldn't. It would have not been possible without these guys so please thank them
Click to expand...
Click to collapse
Warning. This has heavy ramdisk mods that are essential for it to work. You can flash current up to date "kit Kat kernels or L updaters only" but not full boot.imgs as this will break the ROM. If you do happen to flash a a boot.img, you can pull it out if the rom and fastboot flash boot boot.img
Hammerhead can only use L preview Kernels.
Remember, this is a port of a developer preview, there is already bugs in the official version from google and without the L code, we can not fix google's bugs. There are fixes to known problems in N7 2013 and N5 forums so if you do find them, please provide them with the bug
Click to expand...
Click to collapse
INSTALLATION INSTRUCTIONS
FIRST TIME FLASHING
Put the file onto your Internal Storage
Reboot into Recovery (CWM/TWRP]
"wipe data/factory reset"
"mounts and storage" -> "format system"
"install zip" -> "install zip from sdcard" -> choose the mako-bla-bla-zip and confirm flashing procedure
"reboot into system"
first boot may take up to 10 minutes - be patient
UPDATING
Put the latest L-bla-bla.zip onto your Internal Storage
Reboot into Recovery (CWM/TWRP)
"wipe data/factory reset"
"install zip" -> "install zip from sdcard" -> choose the [filename.zip] and confirm flashing procedure
"reboot into system"
Updater-script wipes the cache files so no need to wipe cache
Sources
Mako
GPL KERNEL SOURCE - github.com/Android-L-Porting-Team/android_kernel_mako
Flo, Deb and Hammerhead use the modifed stock preview with the kexec-hardboot patch directly provided by @tassadar to provide multirom support. Flo and Deb use the same kernel.
Hammerhead - http://forum.xda-developers.com/showpost.php?p=48508468&postcount=2
Flo - http://forum.xda-developers.com/showpost.php?p=45886584&postcount=2
We are using the rebase repos right now since they are cleaned out
Github https://github.com/Android-L-Porting-Team
Downloads
Stable - 9001
Full
Afh - https://www.androidfilehost.com/?fid=95747613655040641
Google Drive - https://drive.google.com/file/d/0By0vn8iv_zrVYUlFbmVrMEtHcDA/edit?usp=sharing
Dev-Host-
Mega-
Click to expand...
Click to collapse
Downloads
Stable - 9001
Slim -
Afh - https://www.androidfilehost.com/?fid=95747613655040642
Google Drive - https://drive.google.com/file/d/0By0vn8iv_zrVS1hDakt6VWM3WGc/edit?usp=sharing
Dev-Host
Mega-
Click to expand...
Click to collapse
slim builds have excess google apps cut out for those on a bandwidth budget or like to pick and choose their google apps from the play store
OT talk is welcomed in my threads and development is done in the open. I encourage involvement in the project in any way.
Please do not complain about OT, it encourages a fun and relaxed environment
Like the work I did, consider donating. I'm currently not working so it helps feed me
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=BPFLE54YPRV92
Yes, my PayPal account is thatguy32404, I like to keep my banking stuff separated from my social account
nexus devices threads
Mako
http://forum.xda-developers.com/nexus-4/development/lpv-79-mako-port-beta-t2807446
deb
http://forum.xda-developers.com/nex...e/l-android-lpv-dev-deb-t2856915#post55016443+
flo
http://forum.xda-developers.com/nex...id-lpv-dev-flo-enhanced-t2856920#post55016534
hammerhead
http://forum.xda-developers.com/google-nexus-5/development/l-android-lpv-dev-n5-enhanced-t2856934
Changlelog.
Changlelog.
Stable-9001
Now over 9000!!!!!!
Updated selinux security policy
tracked down some missing permissions
did some other work but can't remember
B7.0.1
Flo & Deb
removed some excess apps that were replaced and I missed in b7
B7
updated fonts, res files, animations from the latest sdk
updater-script wipes cache files
updated some more google apps.
now using smart-art
force dns to google's public dns
B6
6 finishes up the rebasing work from 5 (5.9 was just a stepping stone and getting it out to other devices so we could work out all the kinks)
(Mako only info)
The rebasing work meant a lot of clean up and trying to get it as efficient as possible so from 5 to 6 is a big step and will be quite noticeable
(mako, flo, deb)
updated egl drivers are from qcom developer are in here which are newer then the preview ones
(Hammerhead )
Proper working sound now
(All)
Built in Busybox should be working. I tested the functions and seemed good to me.
Got rid of all the looping code and debugging code to speed everything up.
Updated the preview proprietary binaries to the latest version (some can't go all the way up and are stuck on a previous set or even original preview versions)
(Hammerhead has the latest preview egl drivers)
Built in google apps have been updated.
Introduction of slim builds for those on a bandwidth budget.
Can't think of what else.
Most kinks have all been worked out
Click to expand...
Click to collapse
B5.9
Rebased completely from scratch on 81c
improved reliability and stability.
Ported to Deb, Flo and Hammerhead
Beta 5
fully permissive sepolicy based on aosp, cleaned out a lot of crud
removed reliance on n5 frameworks, merged in some current aosp
improved smoothness and increased reliability, daily driver status
Beta 4
New Kernel
more smashy smashy bugs
Dpat09 said:
For all camera issues please try this: go to the Dev settings and disable nuplayer! I'm posting it again because I think it will be lost in all the posts! If it works hopefully the contributing devs will catch it and put it in the main post
Click to expand...
Click to collapse
reserved for @defconoi kernel info
Installed it now, works great. Thank you for bringing this to deb.
Now all we gotta do is figure out how to access the radio setting outside of the setting app since they aren't there.
I had to track down the radio files and pulled them out of 4.4.3 to get the radio to start but I don't have a deb so I can't troubleshoot it as well.
I'm using the n7 as a base for mako along with all the framework files but had to use the n5's apps. The problem with deb is that if you try to use non tablet apps, it breaks the multi user feature so that might not be am option there so a script or an app that replicates the setting and configure it to the network might have to be done
sykopompos said:
Now all we gotta do is figure out how to access the radio setting outside of the setting app since they aren't there.
I had to track down the radio files and pulled them out of 4.4.3 to get the radio to start but I don't have a deb so I can't troubleshoot it as well.
I'm using the n7 as a base for mako along with all the framework files but had to use the n5's apps. The problem with deb is that if you try to use non tablet apps, it breaks the multi user feature so that might not be am option there so a script or an app that replicates the setting and configure it to the network might have to be done
Click to expand...
Click to collapse
What's the difference between your port and my
http://forum.xda-developers.com/nexus-7-2013/development-lte/android-lpv81c-deb-t2849013
Just so you all know it was me who actually did all this stuff, @sykopompos is taking all the credit ? no but really without sykopompos and his wizardly ways there would be no way this would have gotten done. He was nice enough to help with the project, then "take it over" and get it done the right way. Make sure to give him a big thanks for taking time out of his day and working on this through the nights. Without him this might have never happened. Thanks a lot man!
Sent from my Nexus 7 LTE using Tapatalk
Ansanen said:
What's the difference between your port and my
http://forum.xda-developers.com/nexus-7-2013/development-lte/android-lpv81c-deb-t2849013
Click to expand...
Click to collapse
Give it a flash and come back and give me an answer.
Oh BTW, this should have been out like a month ago but I didn't realize my really stupid derp of not modifying the bootclasspath so it wouldn't boot. I didn't realize this till after I started work on flo so if @skiman10 was helping you, you might have a part of my earlier work in yours.
Also do you have the radio files in yours?
Hoping that you guys could figure out the radio issue, soon~ thanks!
jayfallen said:
Hoping that you guys could figure out the radio issue, soon~ thanks!
Click to expand...
Click to collapse
@skiman10 is looking into our options here since he has a deb.
This is gonna be a bit of a pain to figure out how to work around this
Being that the file is almost 500mb, I assume the gapps are included in the file?
Yes @papikev thats right.
papikev said:
Being that the file is almost 500mb, I assume the gapps are included in the file?
Click to expand...
Click to collapse
Yes... Because the L apps are speeeeecccciiiiaaaaallll. Very special.
skiman10 said:
Yes... Because the L apps are speeeeecccciiiiaaaaallll. Very special.
Click to expand...
Click to collapse
oooooh, sounds phuuuuuun, Thanks guys.
Now I need L for Nexus 10 and I'll be happy
Fatal1ty_18_RUS said:
Now I need L for Nexus 10 and I'll be happy
Click to expand...
Click to collapse
Buy me a Nexus 10 and your wish will be granted lol
Once the radio gets straightened out, this will be (yet it already is) a killer rom. Very smooth. Nice new features on L. First time running it, good stuff guys. 5 star this thread. Look forward to the future with this one.:good:
skiman10 said:
Buy me a Nexus 10 and your wish will be granted lol
Click to expand...
Click to collapse
You mean buy me one...
sykopompos said:
You mean buy me one...
Click to expand...
Click to collapse
I got this one... Your apprentice is ready!
skiman10 said:
I got this one... Your apprentice is ready!
Click to expand...
Click to collapse
Good, because it wouldn't be one bit easy

[H918 / T-mo] [1.3b3] EasyRecowvery - TWRP and Root Installer

I don't always follow a new device during the troubled early days of root...
...but when I do, I'm utterly scarred by the chaos and confusion.​
Since I've watched the current V20 root exploit evolve from "maybe DirtyCow would work here" into a full-blown war on Nougat's sepolicy, and finally into the emergent "Recowvery"; I thought it might be fun to get my own hands a little dirty and write some wrappers to automate the rooting process with ample error-checking along the way.
>> Please take a moment to check out @jcadduono's Recowvery thread at http://forum.xda-developers.com/v20/development/h918-recowvery-unlock-v20-root-shell-t3490594 for more information, to say "thanks," and to donate if you can afford it. <<
WARNING: ATTEMPT AT YOUR OWN RISK! THIS PACKAGE IS RELEASED AS-IS AND WITHOUT ANY WARRANTY, IMPLIED OR EXPRESSED
THIS PACKAGE MAY MAKE YOUR LIFE EASIER (or harder) BUT NOTHING CAN FULLY PROTECT YOU FROM TROUBLE WHEN ROOTING A DEVICE!
IT IS NOT MY RESPONSIBILITY IF YOU END UP WITH A BRICK IN YOUR POCKET AFTER ATTEMPTING ROOT​
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Current, Planned, and Not Guaranteed Features:
- Windows support, including a truly die-hard adb check
- Push, exploit, and flash all in one step
- Optional automated SuperSU installation
- Bundled adb for more predictable results
- More error checking than you think you'd need
- Auto-disable dm-verity and forced encryption
- Optional selinux permissive mode
- Restore boot and recovery to stock
- Spawn a root shell for exploration and such
- Grab any recovery.img you'd like to use from /sdcard
- Linux support (needs to be reworked )
- Ability to download latest exploit and recovery at runtime
- Extra helper commands for stuff like trying to break out of bootloops or quickly grab logs
- Basic GUI for Windows
Download:
Latest version: 1.3b3
Grab the latest zip: https://github.com/bziemek/EasyRecowvery/releases
Or browse the source: https://github.com/bziemek/EasyRecowvery
--
TWRP for the H918: in jcadduono's thread, Step 3
no-verity-opt-encrypt: also in jcadduono's thread, Step 3
SuperSU: in Chainfire's beta thread
Instructions:
https://github.com/bziemek/EasyRecowvery/blob/master/README.md
Greetz:
Huge shout out to @jcadduono for running with the DirtyCow idea and making this root possible (read more and THANK HIM HERE), Chainfire for taking some time off to do a test install of the latest SuperSU hours before we had a working TWRP, @Darriousx and @slayerh4x for all their hard work testing, and #twrp on Freenode for generally putting up with the lot of us!
Donations:
IF you feel so inclined, PayPal some coffee and beer money to [email protected], or BTC to 1bu5MMgagtbN7QVeciyWfAzRbfk8vmynM
Many thanks to @Pjs187, who furnished the first donation I've received here at XDA!
Frequently Asked Questions
Why isn't it working?
First: update your ADB. If you don't have ADB, then you'll want to fix that before you spend another second at XDA. I personally only use official releases from Google, so I might not be much help if you're using something you found at random at XDA or elsewhere on the Internet. You can download Google's latest release of their tools from the very bottom of this page. (I recommend installing or extract them to C:\Android for easy access.) Using the "SDK Manager" included in that download, choose to install "Android Platform-tools" and "Google USB drivers", and remember to run it again once in a blue moon for updates.
If ADB isn't the problem, I'm happy to offer what assistance I can. Please describe what you were trying to do and how, then attach any .log files the script created.
Where is TWRP?
The link to the latest version is linked in this thread under Step 3.
Rename the downloaded file to recovery.img and put it on your internal storage.
Does Data need to be wiped?
For everything to work properly, YES. If you don't have an inherent understanding of what will happen if you don't run a Format Data, then please do so the first time you enter TWRP. This will erase Internal Storage and remove the default encryption so that TWRP can function to the fullest. BACK UP YOUR STUFF FIRST!
Is no-verity-opt-encrypt necessary?
YES, but not totally. This ZIP makes it possible to allow system modifications, and prevents a couple easy ways to end up with corrupt data or bootloops.
Download that from Step 3 in the thread above, and put it in the folder named zips next to EasyRecowvery.
If you're going to install SuperSU right away, you shouldn't really need it.
What is selinux?
selinux is a major security feature, and also a major pain in the butt depending on who you ask.
If you don't know if you need it in "permissive" mode, just leave it be. You can always reflash later.
Why isn't TWRP showing Internal Storage?
These phones use encryption out of the box. In order for TWRP to function properly, you will need to use the Wipe Data feature after installation.
This will blow away everything on your Internal Storage, so make sure you don't have anything important in there!
Changelog
1.3b3
Add more sanity checks
Add note about formatting data
Separate log for ZIP flashing
Rename bundled adb.exe to adb-recowvery.exe (maybe)
Older Versions
1.3b
Bundle adb.exe (can be toggled in Extras menu)
Improve and fix adb and device checks
1.2b
Add experimental support for auto-rooting.
Add an extra mode to flash no-verity-opt-encrypt.
Add an extra mode just to reboot into recovery.
1.1b-hotfix
Add the "zips" folder needed by the new version.
1.1b
Skip several versions and change versioning style.
Redesign the menu system.
Auto-flash no-verity-opt-encrypt.
Update Recowvery to latest version.
Tweak prompts, formatting, and fix typos.
More aggressive connection handling.
Fix the restore feature.
Allow disabling integrity verification (untested).
Increase logging verbosity.
Fix line endings in EasyRecowvery.cmd
beta5
Take a nap.
Fix some issues with various prompts.
Adjust some formatting.
More testing.
beta4
Improve adb checking code.
Reluctantly accept that we should try recovery.img.img.
Misc. tweaks to prompts.
beta3
Fix several parentheses that might be causing trouble.
beta2
Fix a bug causing EasyRecowvery to fail when run from another directory.
beta1
Initial release.
WOW! This is what i've been waiting for. Thanks man!
Thanks for this. Will help a lot of users who are Leary about the cureent manual process
Awesome...
Awesome man, so cool to watch all this develop. Glad I could be part of it.
definitely looking forward to this. sweetness!!!!
It has been amazing watch all this develop in the past weeks. I have been flashing and rooting for about 10 years and this is the first time I've seen it all from the beginning. It is really amazing what a few of these guys are capable of...but this time for me I was left speechless. Gentlemen, (and ladies?) Thank you for all of your free time and dedication for making this possible for the average end user like me. We all don't show enough gratitude and I'm sure I'm not the only one amazed my all of your capabilities. Keep up the unbelievable work, and a nice donation is coming to everyone who contributed if I can find a way to donate to you all. Point me in the direction, and the cash flow will be on its way. Thank you again.
Sincerely,
dmoney4eal
@bezeek you might want to add the "I am not responsib...." disclaimer. One for your protection but mostly so people are aware of the possible consequences.
If only I had the T-Mobile variant I would of already wrote this and put it in this thread lol, anyone want to donate? :c
whowatchlist said:
@bezeek you might want to add the "I am not responsib...." disclaimer. One for your protection but mostly so people are aware of the possible consequences.
Click to expand...
Click to collapse
There will be some big ol' red letters in here before I attach any files - you can bet on that
pro_granade said:
If only I had the T-Mobile variant I would of already wrote this and put it in this thread lol, anyone want to donate? :c
Click to expand...
Click to collapse
If you think you can beat me to it, there are H918 owners in #twrp on Freenode who would be happy to help you test as you go
bezeek said:
If you think you can beat me to it, there are H918 owners in #twrp on Freenode who would be happy to help you test as you go
Click to expand...
Click to collapse
I could write it in batch and convert to exe.
pro_granade said:
I could write it in batch and convert to exe.
Click to expand...
Click to collapse
I'm game for a friendly race. I've got lots else going on today, so it's coming together bit by bit.
(I might be putting up a rough build in the AM depending on what sort of sleep I get tonight.)
bezeek said:
I'm game for a friendly race. I've got lots else going on today, so it's coming together bit by bit.
(I might be putting up a rough build in the AM depending on what sort of sleep I get tonight.)
Click to expand...
Click to collapse
It'd be a lot quicker if I actually had the device. I'll probably let you go for it lmao
Race, race, race!
The winner gets the most thanks??
poczynek said:
Race, race, race!
The winner gets the most thanks??
Click to expand...
Click to collapse
How about some money lol
Is this still a WIP? I don't see anything updated by the OP. I'm waiting to root and something like this would be great as I am leery of going through the regular method with ADB as I'm coming from a Samsung device.
I pledge $20!.

[GUIDE][PROJECT CROISSANT] Installing official Chrome OS on any device (PC/PC-like)

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
CHROME OS ON ANY DEVICE
About Project Croissant (formerly known as Ć̸h̷̢̡r̢͝o̡҉ḿ̴̢̧e̷͜҉f̡͝y͝͞͡͡)
This project is aimed at making Chrome OS (the official releases by google) available for any non-chromebook devices (ATM The device must be able to boot from live USB, this excludes most Android-only devices);
The steps can also be followed on a chromebook, to install an image with android and linux support.
The script uses an official Chrome OS image, while it uses the Kernel and GRUB bootloader from another Chromium OS distribution (EX: ArnoldTheBat builds).
This project has an official GitHub/Wiki page, a Telegram group, a Twitter page and is the result of many ideas and contributions.
Please fill this survey to let us know whether Chromefy works (or doesn't) on your device
Required files
An official Chrome OS recovery image (downloads on the right; RECOMMENDED: eve (best) or pyro are the most complete images [must be from the same chipset vendor (Ex: Intel, ARM or RockChip); If eve/pyro doesn't work, try an image from a device with a similiar chipset as your own]
Another Chrome OS recovery image from a TPM 1.2 device (EX: caroline or kip) or the swtpm.tar file (swtpm TPM2 emulator needs VTPM proxy support in kernel) (this step is only needed if using an image from TPM2 device to fix a login issue, which is most likely the case for newer ones)
An image from a Chromium OS distribution (EX: ArnoldTheBat builds).
The Chromefy installation script.
Installation guide (Partition method)
For method 1 (bootable USB image generation) check this video guide:
Method 2-B (chromium OS root partition conversion) described below:
Other methods described in the official GitHub/Wiki page.
This procedure will install Chrome OS on top of a Chromium OS kernel, you will thus need to install a Chromium OS distribution on your device first;
RECOMMENDED: ArnoldTheBat builds
NOTE: CloudReady builds are not yet supported due to a different partitioning scheme and incompatible kernel
If you consider this guide too generic, try reading a more comprehensive guide
Flash the selected Chromium OS build on a live USB, boot into the live USB and install it on your HDD/SSD by typing the following command on the shell
Code:
sudo /usr/sbin/chromeos-install --dst [COLOR=Blue]YOURDRIVE[/COLOR] [COLOR=DeepSkyBlue](Ex: /dev/sda)[/COLOR]
now make sure the your chromium HDD/SSD installation is working before proceeding.
Resize the third partition of your sdX drive (EX: sda3 inside sda) from its current size to atleast 4GB; I suggest using Gparted live USB to resize it; you can either downsize sdX1 (data partition) or delete the sdX5 partition (we won't need it) to get more unallocated space.
Boot from your live USB again, make sure you have your Chrome OS images available and run the installation script with the following command
Code:
sudo bash /path/to/chromefy.sh [COLOR="blue"]YOURSYSTEMPARTITION[/COLOR][COLOR="DeepSkyBlue"](EX: /dev/sda3)[/COLOR] /path/to/chosenchromeosbuild.bin /path/to/carolinebuild.bin_OR_swtpm.tar
Don't leave live USB yet, make a powerwash (manually) by typing
Code:
sudo mkfs.ext4 [COLOR="Blue"]YOURDATAPARTITION[/COLOR][COLOR="DeepSkyBlue"](Ex: /dev/sda1)[/COLOR]
You can now reboot and enjoy your new "chromebook"
Images supporting swtpm TPM2 emulator
ArnoldTheBat's latest special build (v72) now supports VTPM proxy
FydeOS V6 (or newer) now supports VTPM proxy
ArnoldTheCat v3 (custom)
EmydeOS v3 (custom)
CloudRadish v3 (custom)
FAQ
Can I dualboot with Windows/Linux?
Yes, but it's a little more complicated
Will this ever work on CloudReady?
We don't know, nor we have any ETAs. There's currently a repartitioned image (still not working with chromefy)
My motion sensors do not work, how do I rotate the screen?
Laptop mode/keyboard connected: press ctrl+shift+f3
Tablet mode: use this app by Andrew Whaley (source) (check out his blog)
Linux apps (crostini) are not working at all, how do i fix it?
Go check if you have enabled all virtualization related option in your BIOS (Ex: "Intel Virtualization", "VT-x", "VT-e" etc...) (you should)
Do automatic updates work? How to update?
Not at the moment, and it's unlikely we find a workaround; you can update by ONLY repeating step 3 (without step 4).
ChromiumOS works on live USB but not HDD, what to do?
Did you remove the USB before rebooting the fist time? If you did NOT, you might need to reinstall it. If you did, try using fix_grub.sh
Some apps (ex: Netflix) do not show up in the Play Store, how do I fix it?
Read next answer
SafetyNet check fails, why?
For SafetyNet not to break you need two things, leave selinux on enforcing when chromefying (only working on Pie, otherwise will break android container) and disable "cros_debug" in the grub launcher to boot without developer mode (Custom images [ex: CloudRadish] have custom boot entries for this)
ChromeOS flags are not showing up, why?
Try opening the chrome://flags page in incognito mode.
Alternatives
FydeOS
Fyde OS is a Chromium OS based operating system that comes with Android apps; if you don't want to bother with the hassle of running the chromefy script and just want an OS that works out of the box, this might be for you.
...Also the developers are awesome
ArnoldTheBat
Does not come with Android apps (yet), but he's awesome too, so there's that
Credits
allanin for all of his ideas on Arnoldthebat discussion, most part of the code is from him
TCU14 for upgrading, and the MultiBoot guide
Dnim Ecaep from the Telegram Group for the shell command to change the SELINUX to permissive
Diogo from the Telegram Group for the corrections on the firmware migration
Danii from the Telegram Group for the work on the TPM bypass method and TPM2 emulation method
sublinhado for writing down the steps needed for the TPM bypass method
alesimula for the installation script
Giedrius Tamošiūnas (liolka) for the custom chromium kernels
++ some poor unlisted guys
Amazing. Just confirming whether Google play store work in this?
Awesome work!
Does it work with FydeOS builds?
Forever Alone said:
Amazing. Just confirming whether Google play store work in this?
Click to expand...
Click to collapse
coolloser said:
Awesome work!
Does it work with FydeOS builds?
Click to expand...
Click to collapse
Play Store (and crostini) works.
And yes, you can install it over FydeOS;
Some users report Arnold kernel working better for them, for others it's Fyde, so just test both to find the best one for your device
alesimula said:
Play Store (and crostini) works.
And yes, you can install it over FydeOS;
Some users report Arnold kernel working better for them, for others it's Fyde, so just test both to find the best one for your device
Click to expand...
Click to collapse
Tried it with Arnold special build on my AMD-450 with Radeon GPU and got a bootloop. I wasn't surprised because I don't think that there are any chromebooks with AMD chipset yet! The procedure was pretty painless though, thanks for all your hard work.
coolloser said:
Tried it with Arnold special build on my AMD-450 with Radeon GPU and got a bootloop. I wasn't surprised because I don't think that there are any chromebooks with AMD chipset yet! The procedure was pretty painless though, thanks for all your hard work.
Click to expand...
Click to collapse
Just make sure you didn't accidentally use the ARM build
This is something I have offered for well over 3 years...... http://zzsethzz.blogspot.com/2015/09/install-chromium-upgrade-it-to-chrome.html
Does this not suffer from the same hardware support issues due to the fact that ChromeOS has very limited hardware support naively?
zZSETHZz said:
This is something I have offered for well over 3 years...... http://zzsethzz.blogspot.com/2015/09/install-chromium-upgrade-it-to-chrome.html
Does this not suffer from the same hardware support issues due to the fact that ChromeOS has very limited hardware support naively?
Click to expand...
Click to collapse
Tried that some time ago and never worked for me as well as this method, also this one let's you have Crostini with the new recovery images that have tpm protection.
DiogoSilva48 said:
Tried that some time ago and never worked for me as well as this method, also this one let's you have Crostini with the new recovery images that have tpm protection.
Click to expand...
Click to collapse
That is simply a hardware based issue and not selecting the right build. I admit my project needs more work but even the github page tells you to use a build close to your own hardware. Also the TPM is bypassed and not a functioning part of the OS in this regard the same as mine, from a quick look anyway.
All this does is the exact same as my script but you have to download a lot of other crap too, my script does it all for you. This seems a rather long method to get the exact same thing.
Mine also doesn't require any messing with partitions, even between upgrading to newer versions.
zZSETHZz said:
That is simply a hardware based issue and not selecting the right build. I admit my project needs more work but even the github page tells you to use a build close to your own hardware. Also the TPM is bypassed and not a functioning part of the OS in this regard the same as mine, from a quick look anyway.
All this does is the exact same as my script but you have to download a lot of other crap too, my script does it all for you. This seems a rather long method to get the exact same thing.
Mine also doesn't require any messing with partitions, even between upgrading to newer versions.
Click to expand...
Click to collapse
Not build problem since I have an Ivy Bridge system and I'm using eve (pixelbook) recovery image and works perfectly, and maybe it's not your script fault, I don't remember it to be honest, I used it once 2 or more months ago. But another guy also has a script that downloads the image automatically. But I'm telling you to please join our telegram group, it's better if we work all together. I apologise if I somehow offended you.
DiogoSilva48 said:
Not build problem since I have an Ivy Bridge system and I'm using eve (pixelbook) recovery image and works perfectly, and maybe it's not your script fault, I don't remember it to be honest, I used it once 2 or more months ago. But another guy also has a script that downloads the image automatically. But I'm telling you to please join our telegram group, it's better if we work all together. I apologise if I somehow offended you.
Click to expand...
Click to collapse
Oh no you haven't offended me at all! Don't want you to think you have lol, I'm just joining telegram now as I've not used it before however it won't send me a verification message which is rather annoying. I was intended on seeing if its something that could be worked on together.
zZSETHZz said:
Oh no you haven't offended me at all! Don't want you to think you have lol, I'm just joining telegram now as I've not used it before however it won't send me a verification message which is rather annoying. I was intended on seeing if its something that could be worked on together.
Click to expand...
Click to collapse
Alright, thanks, I will be waiting for you there ? good luck, if you need anything related to telegram or anything pm me.
zZSETHZz said:
That is simply a hardware based issue and not selecting the right build. I admit my project needs more work but even the github page tells you to use a build close to your own hardware. Also the TPM is bypassed and not a functioning part of the OS in this regard the same as mine, from a quick look anyway.
All this does is the exact same as my script but you have to download a lot of other crap too, my script does it all for you. This seems a rather long method to get the exact same thing.
Mine also doesn't require any messing with partitions, even between upgrading to newer versions.
Click to expand...
Click to collapse
Your script, if I recall, uses the kernel from the downloaded chrome OS build, that's why you had to pick a version from a device with a similiar processor.
This not only limits the number of builds you can install, but, by extension, the features you can have, and the conpatible devices, and many drivers (bluetooth and stuff) may not work
This method copies the kernel from chromiumOS (as well as kernel modules and certificates)
Hi, I'm wondering if this can be installed in my 2016 Pixel C tablet, as it has an ARM processor and it was rumored to be designed to use Chrome OS.
Anyone can help me?
Is it multi-bootable with windows 10??
Sent from my OnePlus 5 using XDA Labs
@srmahunt said:
Is it multi-bootable with windows 10??
Sent from my OnePlus 5 using XDA Labs
Click to expand...
Click to collapse
Check this for multiboot:
https://docs.google.com/document/d/1uBU4IObDI8IFhSjeCMvKw46O4vKCnfeZTGF7Jx8Brno/edit?usp=sharing
Verdera11 said:
Hi, I'm wondering if this can be installed in my 2016 Pixel C tablet, as it has an ARM processor and it was rumored to be designed to use Chrome OS.
Anyone can help me?
Click to expand...
Click to collapse
ATM you can't do this on Android tablets (unless they have a BIOS and live USB booting, which is not your case)
Will this method give Android and Linux app support to devices that Google hasn't enabled that for? I have an Acer C720p that's been an awesome Chromebook, and I use Ubuntu on it as well using crouton. I suspect it would run Android just as well, but so far the ability hasn't been unlocked officially.
Nice
Snowflake6 said:
Will this method give Android and Linux app support to devices that Google hasn't enabled that for? I have an Acer C720p that's been an awesome Chromebook, and I use Ubuntu on it as well using crouton. I suspect it would run Android just as well, but so far the ability hasn't been unlocked officially.
Click to expand...
Click to collapse
Yes (but in case you have a BayTrail device, still no linux)

Themes / Apps / Mods [DEV] Kernel Flasher

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Kernel Flasher is an Android app to flash, backup, and restore kernels.
Features
Flash partition images and AK3 kernel zips
Backup and Restore kernel partitions
Mount, Map, and Resize vendor_dlkm
Save dmesg, logcat, and ramoops
Check for kernel updates
Notes
When making a backup of the active slot, to save time, it is assumed that the kernel on disk is the same as the running kernel. The Check Kernel Version button can retrieve it from disk prior to backup.
Depending on the method used, the updated contents of vendor_dlkm may not be immediately available for backup after flash or restore. This can be resolved by unmounting, unmapping, then remapping it.
AK3 helper modules are not backed up.
Credits
@osm0sis for AK3, feedback, and general guidance
@eng.stk & @Freak07 for feedback, advice, and encouragement
@phhusson for lptools
@topjohnwu for Magisk and libsu
Latest Update
2023-02-20 v1.0.0-alpha13
Hi, great app!
Can you please leave the kernel installation log opened after the process ends with an error? Currently it's impossible to see what went wrong since the log disappears instantly and is being replaced by an error screen.
Nezorflame said:
Can you please leave the kernel installation log opened after the process ends with an error? Currently it's impossible to see what went wrong since the log disappears instantly and is being replaced by an error screen.
Click to expand...
Click to collapse
That is already done in my own personal test version of the app, but I haven't had a chance to clean it up and get it released. I'll make an effort to get that done this evening.
I've got several other enhancements planned, but most of my focus has been on Hashtree Patcher lately, though I think that is nearly wrapped up. I'll try to get the installation log issue fixed asap, then I'll work on the rest over the next few days.
I pushed a new build that resolves the installation log issue. Here is the full changelog:
added option to backup AK3 zips
disabled flash and restore on inactive slot
added save ramoops button
added stderr to AK3 logs
added .log file extension to log files
filtered ui_print and progress in AK3 logs
sorted backups
Click to expand...
Click to collapse
I also added a list of planned and potential features to the OP. If you've got some interest in seeing any of them or anything I may have missed in a future build, feel free to note it here. If the list gets to be too big of a pain to maintain here, I may request that they go to the issue tracker, instead. Note that I don't currently plan to add kernel tweaks to the app.
Edit: There was a bug in the v1.0.0-alpha03 build that caused it to crash frequently. This has been fixed in v1.0.0-alpha04.
Alpha 4 seems like a bad upload? I have downloaded it a couple times but Android just reports "There was a problem parsing the package"
osm0sis said:
Alpha 4 seems like a bad upload? I have downloaded it a couple times but Android just reports "There was a problem parsing the package"
Click to expand...
Click to collapse
Hum installed fine on mine, maybe github acting up?
md5:
KernelFlasher-v1.0.0-alpha04.apk 94a1b66b29e95e23c918b054b9b3b1d6
eng.stk said:
Hum installed fine on mine, maybe github acting up?
md5:
KernelFlasher-v1.0.0-alpha04.apk 94a1b66b29e95e23c918b054b9b3b1d6
Click to expand...
Click to collapse
I have that checksum too but it's not working, maybe it's minimum Android 12?
Edit: Yep! Can the minimum API be lowered to support Android 11?
osm0sis said:
Alpha 4 seems like a bad upload? I have downloaded it a couple times but Android just reports "There was a problem parsing the package"
Click to expand...
Click to collapse
osm0sis said:
I have that checksum too but it's not working, maybe it's minimum Android 12?
Click to expand...
Click to collapse
Yes, I was playing with the new Splashscreen API, which requires Android 12, and I don't have an Android 11 device to test on, so I just set minSdk to 31. I'll see if I can get it to build against something lower.
I pushed a new build that will hopefully work on Android 11. Here are the changes:
lowered minSdk to 30
added vbmeta to raw partition backups
fixed vendor_dlkm map and mount
Click to expand...
Click to collapse
Note: With verity enabled, you may have to unmap vendor_dlkm twice, once for the verity device and again for the actual partition. The partition is remounted without verity, though I'm not sure there's a scenario where it's necessary to remount it at all.
capntrips said:
I pushed a new build that will hopefully work on Android 11. Here are the changes:
Note: With verity enabled, you may have to unmap vendor_dlkm twice, once for the verity device and again for the actual partition. The partition is remounted without verity, though I'm not sure there's a scenario where it's necessary to remount it at all.
Click to expand...
Click to collapse
Thanks! Crashes after the splash screen on my OP8T on OOS11, not seeing anything in the logcat however..
osm0sis said:
Thanks! Crashes after the splash screen on my OP8T on OOS11, not seeing anything in the logcat however..
Click to expand...
Click to collapse
I pushed a new build that hopefully fixes the issue. It now makes it to the point where it requires root to continue on an Android 11 AVD. I assume if it makes it to that point, the rest will work as expected. Anything beyond that, and I'll have to root the AVD to test it (though I did see an article about that a few weeks back, and it seemed simple enough).
Now works on lineage 18.1 Sony xz2 slot a/b device
A few random thoughts/ideas while testing on my 8T :
Got some errors trying to backup on my 8T since there's no vendor_boot, so I guess some logic will be needed for whether they exist.
Probably the feature should be like "backup slot" and save init_boot, boot, vendor_boot, dtbo, recovery, vendor_dlkm and vbmeta from the chosen slot if any of them exist.
If vendor_dlkm doesn't exist on an older device it doesn't make sense to show "Not Found" all over the place, nor offer to allow me to map it, it should hide those messages/buttons and just only show boot or whatever other partitions exist on the device.
If the reboot button had a ... to reveal an advanced reboot menu (menu items like the Magisk app) that would be excellent!
Magisk/RebootEvent.kt at master · topjohnwu/Magisk
The Magic Mask for Android. Contribute to topjohnwu/Magisk development by creating an account on GitHub.
github.com
Magisk/XSU.kt at master · topjohnwu/Magisk
The Magic Mask for Android. Contribute to topjohnwu/Magisk development by creating an account on GitHub.
github.com
Overall looking really good! Exciting to see a well written free alternative.
osm0sis said:
A few random thoughts/ideas while testing on my 8T
Click to expand...
Click to collapse
All good ideas. Probably good enough to check by path for the existence of a partition, rather than finding and parsing fstab. My next two weeks are brutal, but I'll see if I find some time to fiddle with it in there.
When you have time to work on the next update, would it be possible to make boot image flashing possible (External ones, not just saved backups), as well as zips?
shoey63 said:
When you have time to work on the next update, would it be possible to make boot image flashing possible (External ones, not just saved backups), as well as zips?
Click to expand...
Click to collapse
The backup format is very basic. You could easily drop the image you want into the backup folder and create the properties file. I'll take a look at adding something to simplify direct flashing in the next few revisions. I'm out of pocket through the weekend and will probably need a few days of catch-up when I get back.
----- posted in error ------
can I flash an uncompressed boot.img file with this app? the github only mentions flashing an AK3 zip file, so I was curious
sorry, I see the other reply. I'm hoping this app gets this feature in a future update soon. making a video about this app right now
Doesn't open up on Pixel 6. Anyone has a similar problem?
radekmazur said:
Doesn't open up on Pixel 6. Anyone has a similar problem?
Click to expand...
Click to collapse
Does it throw an error message? If not, is there anything in the logcat?

Categories

Resources