[Guide] Fix for Nexus 6P Bootloop of death | 8/22 - Android O Working

Search This thread

NoobInToto

Senior Member
Dec 4, 2013
856
246
Coimbatore
Can anyone give me the original boot.img for september build? I wanna get ready to update to the upcoming October security patch.

---------- Post added at 05:19 AM ---------- Previous post was at 04:57 AM ----------

If anyone can help me I have a quick nooby question. I've followed instructions on another website and got my phone to work again but was wondering if I could still update to android 8.0 after doing this. I believe I used the boot.img from 48B if that matters at all.

Not only can you update, you can do so without factory or ota images. You can update via the inbuilt ota system. Search this thread for my post on 'updating without losing data' .

Edit: speak of the devil, the update is here!
 

Attachments

  • Screenshot_20171003-105111.png
    Screenshot_20171003-105111.png
    124.5 KB · Views: 180
Last edited:
  • Like
Reactions: AddisG

dolphin77

Member
Oct 23, 2013
25
7
Odesa
boot.img for October update

Following instructions from the OP and using git source code, I modified boot.img for the October Oreo update. Here it is. https://drive.google.com/open?id=0Bz-QKvufSA2-MDZtOFkteS1YNjg

and step by step, what I did:
Code:
abootimg -x ../boot.img
vi bootimg.cfg
-androidboot.hardware=angler androidboot.console=ttyHSL0 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 boot_cpus=0-3 no_console_suspend loop.max_part=7 buildvariant=user
+androidboot.hardware=angler androidboot.console=ttyHSL0 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 boot_cpus=0-3 maxcpus=4 no_console_suspend loop.max_part=7 buildvariant=user
mkdir initrd
cd initrd
cat ../initrd.img | gunzip | cpio -vid
vi fstab.angler
-/dev/block/platform/soc.0/f9824900.sdhci/by-name/system       /system         ext4    ro,barrier=1,inode_readahead_blks=8                             wait,verify=/dev/block/platform/soc.0/f9824900.sdhci/by-name/metadata
-/dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor       /vendor         ext4    ro,barrier=1,inode_readahead_blks=8                             wait,verify=/dev/block/platform/soc.0/f9824900.sdhci/by-name/metadata
-/dev/block/platform/soc.0/f9824900.sdhci/by-name/userdata     /data           ext4    noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic,inode_readahead_blks=8 wait,check,forcefdeorfbe=/dev/block/platform/soc.0/f9824900.sdhci/by-name/metadata
+/dev/block/platform/soc.0/f9824900.sdhci/by-name/system       /system         ext4    ro,barrier=1,inode_readahead_blks=8                             wait
+/dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor       /vendor         ext4    ro,barrier=1,inode_readahead_blks=8                             wait
+/dev/block/platform/soc.0/f9824900.sdhci/by-name/userdata     /data           ext4    noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic,inode_readahead_blks=8 wait,check
vi init.angler.rc
-    write /dev/cpuset/foreground/cpus 0-2,4-7
-    write /dev/cpuset/foreground/boost/cpus 4-7
-    write /dev/cpuset/background/cpus 0
-    write /dev/cpuset/system-background/cpus 0-2
-    write /dev/cpuset/top-app/cpus 0-7
+    write /dev/cpuset/foreground/cpus 0-3
+    write /dev/cpuset/foreground/boost/cpus 0-3
+    write /dev/cpuset/background/cpus 3
+    write /dev/cpuset/system-background/cpus 2-3
+    write /dev/cpuset/top-app/cpus 0-3
find . |cpio --create --format='newc' | gzip > ../modinitrd.img
abootimg --create modboot.img -f bootimg.cfg -k zImage -r modinitrd.img

All the credits goes to Mr XCnathan32.
Screenshot_20171003-084951.png
 
Last edited:

boeder9

Senior Member
Dec 19, 2011
145
20
Following instructions from the OP and using git source code, I modified boot.img for the October Oreo update. Here it is. https://drive.google.com/open?id=0Bz-QKvufSA2-MDZtOFkteS1YNjg

and step by step, what I did:
Code:
abootimg -x ../boot.img
vi bootimg.cfg
-androidboot.hardware=angler androidboot.console=ttyHSL0 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 boot_cpus=0-3 no_console_suspend loop.max_part=7 buildvariant=user
+androidboot.hardware=angler androidboot.console=ttyHSL0 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 boot_cpus=0-3 maxcpus=4 no_console_suspend loop.max_part=7 buildvariant=user
mkdir initrd
cd initrd
cat ../initrd.img | gunzip | cpio -vid
vi fstab.angler
-/dev/block/platform/soc.0/f9824900.sdhci/by-name/system       /system         ext4    ro,barrier=1,inode_readahead_blks=8                             wait,verify=/dev/block/platform/soc.0/f9824900.sdhci/by-name/metadata
-/dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor       /vendor         ext4    ro,barrier=1,inode_readahead_blks=8                             wait,verify=/dev/block/platform/soc.0/f9824900.sdhci/by-name/metadata
-/dev/block/platform/soc.0/f9824900.sdhci/by-name/userdata     /data           ext4    noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic,inode_readahead_blks=8 wait,check,forcefdeorfbe=/dev/block/platform/soc.0/f9824900.sdhci/by-name/metadata
+/dev/block/platform/soc.0/f9824900.sdhci/by-name/system       /system         ext4    ro,barrier=1,inode_readahead_blks=8                             wait
+/dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor       /vendor         ext4    ro,barrier=1,inode_readahead_blks=8                             wait
+/dev/block/platform/soc.0/f9824900.sdhci/by-name/userdata     /data           ext4    noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic,inode_readahead_blks=8 wait,check
vi init.angler.rc
-    write /dev/cpuset/foreground/cpus 0-2,4-7
-    write /dev/cpuset/foreground/boost/cpus 4-7
-    write /dev/cpuset/background/cpus 0
-    write /dev/cpuset/system-background/cpus 0-2
-    write /dev/cpuset/top-app/cpus 0-7
+    write /dev/cpuset/foreground/cpus 0-3
+    write /dev/cpuset/foreground/boost/cpus 0-3
+    write /dev/cpuset/background/cpus 3
+    write /dev/cpuset/system-background/cpus 2-3
+    write /dev/cpuset/top-app/cpus 0-3
find . |cpio --create --format='newc' | gzip > ../modinitrd.img
abootimg --create modboot.img -f bootimg.cfg -k zImage -r modinitrd.img

All the credits goes to Mr XCnathan32.
View attachment 4290758

Can you help me with making a modified boot.img of 6.0.1 (MTC20L)?

The stock boot.img is here https://drive.google.com/file/d/0B9gZ2OL33rn3OVFZYzJGaGM3VHc/view?usp=sharing

I would be supremely grateful for you kind sir.
 

Alsen Lea

Member
Apr 19, 2012
17
1
Beijing
Can anyone give me the original boot.img for september build? I wanna get ready to update to the upcoming October security patch.

---------- Post added at 05:19 AM ---------- Previous post was at 04:57 AM ----------



Not only can you update, you can do so without factory or ota images. You can update via the inbuilt ota system. Search this thread for my post on 'updating without losing data' .

Edit: speak of the devil, the update is here!
If I flashed a custom kernel, can I use this method? I tried and it seems the update failed. Seeing from the flashfire log, the script for installing the update was aborted because of unexpected contents in system partition.

---------- Post added at 12:19 PM ---------- Previous post was at 12:15 PM ----------

Can anyone give me the original boot.img for september build? I wanna get ready to update to the upcoming October security patch.

---------- Post added at 05:19 AM ---------- Previous post was at 04:57 AM ----------



Not only can you update, you can do so without factory or ota images. You can update via the inbuilt ota system. Search this thread for my post on 'updating without losing data' .

Edit: speak of the devil, the update is here!
Also forgot to mention, after the attempt, however my kernel was changed to the stock one. So I wasn't really sure what was going on here.
 

D00MX

New member
Oct 2, 2017
1
0
Worked fine

Yesterday I revived my Nexus 6P from dead thanks to you guys. I really appreciate the effort you put into it. Bootloader opened by heating the phone up with hairdryer for like 20 min then holding power button until booting animation appeared. And after flashing big cores disabling patch I got "Decryption unsuccessful" message when attempt to boot the phone which can be resolved by going to TWRP and wipe "Data" on the phone. Then it booted normally.

Currently I am not able to update to Android O because of modified software. I will probably flash it then cause I want to use latest software.

Keep up the good work. Thank you again :) :good:
 

joe99joe

Member
Nov 22, 2014
17
1
"Boot.img from stock 48C, 7.1.2 firmware: Download | Mirror. This Image is modified to use only 4 cores, and is modified to utilize the 4 cores more effectively. I have had multiple people say that first boot takes a while after flashing this, so just wait about 20 minutes before you declare something is wrong with it."
=======
I put the above in and phone seems to be working nicely. Don't really see much of a slowdown.
But what happens now when security fixes or the Android O download become available? Do I have to get a new .img file, reflash to the phone and then redo all my applications after the backup gets restored??
 

aoaleman

Senior Member
Sep 28, 2010
2,022
859
San Antonio, TX
Following instructions from the OP and using git source code, I modified boot.img for the October Oreo update. Here it is. https://drive.google.com/open?id=0Bz-QKvufSA2-MDZtOFkteS1YNjg

and step by step, what I did:
Code:
abootimg -x ../boot.img
vi bootimg.cfg
-androidboot.hardware=angler androidboot.console=ttyHSL0 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 boot_cpus=0-3 no_console_suspend loop.max_part=7 buildvariant=user
+androidboot.hardware=angler androidboot.console=ttyHSL0 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 boot_cpus=0-3 maxcpus=4 no_console_suspend loop.max_part=7 buildvariant=user
mkdir initrd
cd initrd
cat ../initrd.img | gunzip | cpio -vid
vi fstab.angler
-/dev/block/platform/soc.0/f9824900.sdhci/by-name/system       /system         ext4    ro,barrier=1,inode_readahead_blks=8                             wait,verify=/dev/block/platform/soc.0/f9824900.sdhci/by-name/metadata
-/dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor       /vendor         ext4    ro,barrier=1,inode_readahead_blks=8                             wait,verify=/dev/block/platform/soc.0/f9824900.sdhci/by-name/metadata
-/dev/block/platform/soc.0/f9824900.sdhci/by-name/userdata     /data           ext4    noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic,inode_readahead_blks=8 wait,check,forcefdeorfbe=/dev/block/platform/soc.0/f9824900.sdhci/by-name/metadata
+/dev/block/platform/soc.0/f9824900.sdhci/by-name/system       /system         ext4    ro,barrier=1,inode_readahead_blks=8                             wait
+/dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor       /vendor         ext4    ro,barrier=1,inode_readahead_blks=8                             wait
+/dev/block/platform/soc.0/f9824900.sdhci/by-name/userdata     /data           ext4    noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic,inode_readahead_blks=8 wait,check
vi init.angler.rc
-    write /dev/cpuset/foreground/cpus 0-2,4-7
-    write /dev/cpuset/foreground/boost/cpus 4-7
-    write /dev/cpuset/background/cpus 0
-    write /dev/cpuset/system-background/cpus 0-2
-    write /dev/cpuset/top-app/cpus 0-7
+    write /dev/cpuset/foreground/cpus 0-3
+    write /dev/cpuset/foreground/boost/cpus 0-3
+    write /dev/cpuset/background/cpus 3
+    write /dev/cpuset/system-background/cpus 2-3
+    write /dev/cpuset/top-app/cpus 0-3
find . |cpio --create --format='newc' | gzip > ../modinitrd.img
abootimg --create modboot.img -f bootimg.cfg -k zImage -r modinitrd.img

All the credits goes to Mr XCnathan32.
View attachment 4290758

Damn, thank you for this! But I tried this process with the latest ABC ROM's kernel and it just doesn't want to take for some reason. I wonder if this editing only works on stock boot IMGs.
 

NoobInToto

Senior Member
Dec 4, 2013
856
246
Coimbatore
Yesterday I revived my Nexus 6P from dead thanks to you guys. I really appreciate the effort you put into it. Bootloader opened by heating the phone up with hairdryer for like 20 min then holding power button until booting animation appeared. And after flashing big cores disabling patch I got "Decryption unsuccessful" message when attempt to boot the phone which can be resolved by going to TWRP and wipe "Data" on the phone. Then it booted normally.

Currently I am not able to update to Android O because of modified software. I will probably flash it then cause I want to use latest software.

Keep up the good work. Thank you again :) :good:

Search this thread for my post on 'updating without losing data'

---------- Post added at 04:21 AM ---------- Previous post was at 04:19 AM ----------

"Boot.img from stock 48C, 7.1.2 firmware: Download | Mirror. This Image is modified to use only 4 cores, and is modified to utilize the 4 cores more effectively. I have had multiple people say that first boot takes a while after flashing this, so just wait about 20 minutes before you declare something is wrong with it."
=======
I put the above in and phone seems to be working nicely. Don't really see much of a slowdown.
But what happens now when security fixes or the Android O download become available? Do I have to get a new .img file, reflash to the phone and then redo all my applications after the backup gets restored??
You need new modified image and old unmodified image to update without losing data. Search this thread for my post on 'updating without losing data'
 

RoyLiu09

New member
Apr 4, 2014
2
3
Just to share: Using FlashFire to update OTA

Using "Flashfire" OTA update feature, i was able to apply October OTA update on my Bootloop Fix Nexus 6p.

After finishing the OTA update, reboot to recovery and apply 4 core boot image mod, Ex Kernel, SuperSu ....

Done my October OTA update and applying the XCnathan32's modified boot.img for the October Oreo update.
Re-apply SuperSU installation TRWP & ADB (push the required files over)

Thank You XCnathan32 for providing the bootloop fix.. Note: Flashfire requires a rooted phone to use.
 

rachitup

New member
Sep 15, 2017
2
0
It didnt work i tried so many times but the phone comes to that colourful circlings after the google screen but after that it goes back to the google screen. :/

2 working methods for the same trick:
Try heating the the area between camera bar and fp sensor with:
1. Hairdryer for upto 10 minutes.
2. If that didn't work, use an electric heating pad(the one we use to apply heat to our body for medical purposes) for upto 25 minutes. The heating pad trick worked for a friend I know.

All the while you have to keep it bootlooping. With some luck, you will get in for enough time to turn on that stupid OEM unlock option.
 

Tusshar0143

Senior Member
Sep 8, 2012
78
2
I was using this mod(4core 7.1.2) from last 1 month without any problem, today i was using phone and suddenly it freezed and goes off by itself...now nothing showing in display no recovery, no bootloader.only balck screen..not even bootlooping..please somebody help.
 
Last edited:

Alsen Lea

Member
Apr 19, 2012
17
1
Beijing
Using "Flashfire" OTA update feature, i was able to apply October OTA update on my Bootloop Fix Nexus 6p.

After finishing the OTA update, reboot to recovery and apply 4 core boot image mod, Ex Kernel, SuperSu ....

Done my October OTA update and applying the XCnathan32's modified boot.img for the October Oreo update.
Re-apply SuperSU installation TRWP & ADB (push the required files over)

Thank You XCnathan32 for providing the bootloop fix.. Note: Flashfire requires a rooted phone to use.
Is the modified kernel mandatory? Because I found the latest franco kernel works as well. However still only four cores are being used.
 

joe99joe

Member
Nov 22, 2014
17
1
Search this thread for my post on 'updating without losing data'

---------- Post added at 04:21 AM ---------- Previous post was at 04:19 AM ----------


You need new modified image and old unmodified image to update without losing data. Search this thread for my post on 'updating without losing data'
Thanks but that is fairly complicated process (especially to have to do every month) and I don't want to root the phone. I guess I will just leave the phone w/o the new security fixes until I figure out how to replace it.
 

aheeejd

Senior Member
Jan 5, 2012
4,362
1,960
off the coast o the kontiki!
So I think my 6p is totally wiped because my stepson tried flashing via adb fastboot stock rom several times. To no avail. And reading the op here, it says booting from. So what does that mean for someone who's phone is wiped? I mean do I just follow the op, flash boot IMG, then twrp & then kernel? What about the vender IMG? I guess I've probably confused myself more then needed. My bootloader is unlocked. Thanks for help

Sent from my LG-ls990 using Tapatalk
 

Top Liked Posts

  • There are no posts matching your filters.
  • 264
    Read First: This method is relatively drastic, and will hurt device performance some. You should only use this as a last resort, if the more basic methods of fixing a soft brick didn't work (e.g, factory reset, flash stock firmware, etc.)​

    *Update 8/22: Android O is working with 4 Cores now! Big thank you to @xls654 for finding out how to get Android O to work.

    *Petition:
    I made a petition for Google to officially release and sign modified boot.imgs, so that people with locked bootloaders can fix their devices too. Check it out here. (I apologize for dumbing it down so much, I wanted to make sure everyone could understand it)

    *Changelog:

    • 8/25 - EX kernel for Android O added.
    • 8/22 - Android O DPR6 boot.img and source added.
    • 8/16 - Started making this fix open-source, source code section added in OP. Also uploaded modified Franco and Flash kernel & source.
    • 8/10 - Added PA 7.2.2 and DarkROM boot images.
    • 8/08, 2nd change - Uploaded modified boot.img for firmware 48C.
    • 8/08 - Updated EX kernel to version 4.1.2. This updated zip adds the CPU utilization patch to the init.elemntalx.rc, instead of removing the old init.angler.rc and copying the new init over. That should mean more compatibility with Roms/kernels that modify the init.angler.rc. I also modified the camera-daemon to use cpus 0-3 instead of 0-2, so hopefully this should make the a camera bit faster too.
    • 8/07 - Added boot.img that only uses 1 core. Someone suggested I make a boot.img that only uses 1 core, just to see if it works for devices that didn't work with the 4 Core fix.
    • 7/30 - Added universal EX zip, this zip should modify your kernel to use only 4 cores, and it should modify it to utilize all 4 cores. You can flash this over most ROMs and it should work. Also added a donation url, and this changelog.
    • 7/29, 2nd change - Added Pure Nexus and PA dev version boot images, modified to use 4 cores, and utilize all 4.
    • 7/29 - Updated this fix to greatly improve performance. Before this fix, the device was only using 1 core for foreground tasks, now it will use all 4 cores. Also revamped OP.
    • 7/21 - Fix created, stock boot.img, TWRP image, and EX kernel modified to use 4 cores.


    *What this fix does, and how to apply it:

    The problem:
    The problem with most of the devices in a BLOD, is that a hardware failure related to the BIG cluster has occurred. This fix remedies the problem by disabling the BIG cores. Unfortunately, this does mean that you will take a performance hit. However, I am continually working on ways to improve the device's performance.

    The update: If anyone remembers device performance with the first fix, it was hurt a lot, however, after finding out that the device was only using 1 core for all foreground tasks, I modified the ramdisk to utilize all 4 cores more effectively, and it helps a lot.

    Requirements: For this fix to work, you need:
    • A brain
    • A computer
    • A bootlooping 6P with an unlocked bootloader/OEM unlocking enabled
    • The modified files of your choice
    • Fastboot on your computer (preferably installed system wide). If you do not know what this is, or do not have it, look at this post. Answer yes to all of the prompts to install it.

    How to apply the fix:
    1. Boot your phone into bootloader (hold power and volume down).
    2. Connect your phone to the computer.
    3. Go to the folder where you have the modified files, then hold shift and right click in a blank space, click on "open command prompt here" in the menu that pops up.
    4. In the command prompt: type "fastboot flash boot [name of the file here]" and then press enter. If you're flashing TWRP, replace boot with recovery. (Linux users, make sure you're running as root)
      Edit: With the new EX zip, you shouldn't need to flash the boot.img anymore, you can just flash twrp, and then flash EX in twrp.
    5. Boot up your phone, and hopefully it should work!


    *If your phone is bootloader locked/OEM locked:

    You can try to get your phone to boot long enough to enable OEM unlocking. Some users have reported success by freezing their phone for a bit, then booting it. Others have let their battery drain all the way, and then tried to boot their phone, but the most successful method seems to be heating up your phone (a lot).
    If you do attempt any of these methods, make sure you have time and patience, as it will take a long time.

    To enable OEM unlocking and unlock bootloader:
    1. Go to settings.
    2. Go to developer options, if you do not see that, go to "about phone", scroll to build number, and then tap it 7 times. You should now see developer options in settings.
    3. Once you're in developer options, click on "OEM unlocking" and accept the prompt.
    4. Now reboot your phone to bootloader, connect your phone to the computer, and type "fastboot flashing unlock" Your bootloader should now be unlocked.

    *Downloads:

    • Boot.img from stock 6.17, 8.0 firmware: Download | Mirror. This Image is the from the first official release of Android O, and is modified to use 4 cores. It also disables forced encryption as a bonus. Thank you to @xls654 for figuring out how to get Android O to work.
    • Boot.img from stock 48C, 7.1.2 firmware: Download | Mirror. This Image is modified to use only 4 cores, and is modified to utilize the 4 cores more effectively. I have had multiple people say that first boot takes a while after flashing this, so just wait about 20 minutes before you declare something is wrong with it.
    • Boot.img from stock 48B, 7.1.2 firmware: Download |Mirror. This Image is modified to use only 4 cores, and is modified to utilize the 4 cores more effectively. I have had multiple people say that first boot takes a while after flashing this, so just wait about 20 minutes before you declare something is wrong with it.
    • TWRP version 3.1.1: Download | Mirror. This TWRP image is modified to use only 4 cores.
    • EX kernel version 5.03: Download | Mirror. EX kernel 5.03 works with android 8.0.0. This zip applies the 4 cores patch, but you will need to flash it over an already modified boot.img to work.
    • Elemental X kernel version 4.12, universal zip: Download | Mirror. This zip is EX kernel, modified to use only 4 cores. Update: I modified it to apply the CPU utilization patch too, so now this is a universal zip, flash it over almost any ROM, and you should now have the BIG cores disabled fix, and the little core utilization fix.
    • Flash kernel version 2.5: Download | Mirror. This zip is modified to use only 4 cores, and utilize all 4. Works with android 7.1.2. You can flash this over almost any ROM, including stock, and it should boot again.
    • Franco kernel r55: Download | Mirror. This zip is modified to use only 4 cores, and utilize all 4. Works with android 7.1.2. You can flash this over almost any ROM, including stock, and it should boot again.

    You will most likely not need these images. It will be much easier, and much more universal to flash one of the custom kernel zips above ^^^
    • PA boot.img from PA version 7.2.2, build 8/10: Download | Mirror. Uses only 4 cores, and has core utilization patch.
    • PA boot.img from PA version 7.2.1: Download | Mirror. Boot.img from PA dev preview 7.2.1, uses only 4 cores, and is modified to utilize 4 cores more effectively. Flash it after you flash the PA zip, either with fastboot, or TWRP image flash.
    • Pure Nexus boot.img from Pure Nexus 7/25 build Download | Mirror. This image is modified to use only 4 cores, and it has a tweak to utilize the 4 cores more effectively. Flash it after you flash Pure Nexus, either with fastboot, or TWRP image flash.
    • DarkROM boot.img from 7/21 build: Download | Mirror. This image is modified to use only 4 cores, and has the utilization patch.
    • Boot.img modified to use only 1 Core. Some people were reporting that the 4 core images weren't working for them, someone suggested that I make a 1 core version to see if that helps at all. Edit: seems not to help unfortunately. Here it is: Download | Mirror


    Unfortunately, I have not been able to get Android O working yet, but I am working on it right now.
    If you have a favorite custom ROM or kernel you want to ported over to use 4 cores, let me know, and I'll put it up.


    *Source code:



    p-0000000000000000000000000000007 (sorry that was my kitten)

    *Tested custom ROMS/kernels

    I have used Pure Nexus by flashing the modified EX zip over it, it has notably better performance than the stock ROM, and very good battery life. It's a clean, stable ROM, with plenty of good features that are actually useful.
    I have also used Paranoid android dev preview, very good performance, definitely my favorite as of now. Battery life leaves something to be desired, but I have not tried a custom kernel yet. Also, 7.2.1 seemed smoother to me than 7.2.2.

    If you have a custom ROM/kernel that worked for you, let me know and I'll put it up here.


    *To improve performance slightly:

    • Flash a custom kernel. I will upload more kernels as I test more, so stay tuned.
    • Overclock the little cores. It can slightly help offset the lost performance, on my 6P, I have mine overclocked to 1632MHz, and it works perfectly for me. Edit: I actually recommend not overclocking. Many people have reported their Little cores failing, so I would go for longevity on this device, and keep it at stock clocks, or even underclock it. The speed difference you get from overclocking is negligible anyways.
    • Disable animations in developer options. Seriously, as soon as I found out about this tweak, I've used it on ever single device I've owned, it helps a ton.
    • Turn resolution down to 1080p. On a small screen, the difference in between 1080p and 1440p is not very noticable. To do this, first get root access, then download a terminal emulator. In the terminal, type "su" and grant it root access, then type "wm size 1080x1920", and finally, change the density "wm density 400". Personally, I like my density at 400, but you can expieriment with it. Lower density=Smaller items and text, Higher density=Bigger items and text. Also @Adithya FRK mentioned that you also want to put density in build.prop so apps display correctly. Change ro.sf.lcd_density=560 to your density, if you changed it.


    *Credits:

    @rchtk, His post here gave me the idea for how to modify the images.
    @flar2, He built the Elemental X kernel for this device, I merely made a small modification to his kernel to use 4 cores. In no way am I trying to steal and/or discredit his work.
    The TWRP development team, they built the TWRP recovery for this device, I merely made a small modification to their recovery to use 4 cores. In no way am I trying to steal and/or discredit their work.
    @tr1gg3r.man, He made the the PA kernel, I just added a couple modifications. In no way am I trying to steal and/or discredit his work.
    @BeansTown106, He made the Pure Nexus kernel, I just added a couple modifications. In no way am I trying to steal and/or discredit his work.
    @Dark_Eyes_, He made the DarkROM kernel, I just added a couple modifications to it. In no way am I trying to steal and/or discredit his work.
    @[U][COLOR="Purple"]The Flash[/COLOR][/U], He made The Flash kernel, I just made a couple modifications to it. In no way am I trying to steal and/or discredit his work. His posts have also helped me a lot with learning how to build a kernel from source, understanding how to use git more, etc. I recommend you check them out if you are interested in getting started with android development.
    @[B]franciscofranco[/B], He made Franco kernel, I just made a couple modifications to it. In no way am I trying to steal and/or discredit his work.
    @xls654, He found out how to get Android O working with 4 cores.


    FAQs

    • What's the password for TWRP/Why is TWRP asking for a password? - In android 7.0, Google added forced encryption to the data partition. To get around this, click cancel when TWRP asks you for a password, and then factory reset the device. Then you can flash EX kernel/Magisk to disable forced encryption.
    • Why am I getting an error when I try to flash the images? - Your bootloader is probably not unlocked, try running the command "fastboot flashing unlock", If you get an error there too, then you will have to enable OEM unlocking before you can continue.
    • It's not working for me, how do I fix it? - My only advice for that is: "Flash the stock firmware for whatever version image you're trying to flash, then reflash the images again" If you're stuck on the boot animation, wait at least 20 minutes before you declare it's not working. If none of that works, chances are your device may have a different problem.
    • Does EX kernel have the new speed fix? - Yep, you can flash this over just about any ROM, and it should patch it to use only 4 cores, and use them well.


    I would like to help as many people as I can, however, I am much more likely to be able to easily help you/reply to your post if you clearly state your problem and the steps you attempted to fix it. I will be much less likely to reply to posts such as "omggg i flashed the image and my phone won't boot helppp" Please read through post first, I did not spend time typing up this OP for no one to read it. If I can see that you read through the OP and have attempted all the steps, then I will be much more willing to help you.

    I set up donations on my profile, for those of you who want to donate. I have spent countless hours modifying, flashing, testing, and helping, don't get me wrong, I love doing this and helping y'all out, but donations really keep me motivated to keep going, and donations also will help me fund new equipment and devices that will help further my android development. Every single donation is appreciated :) Donate to me here!

    If this guide helped you, please click thanks, it means a lot to me :)
    25
    Guys.. bad news.. my Nexus 5X just got hit with the BLOD. :crying:

    Good news for everyone is I spent a bit of time tonight to first patch the latest TWRP 3.2.1-0-FBE (File-Based Encryption support) image to be 4core, then made an AnyKernel2 zip which will patch the existing boot and recovery partitions on-device to add all the 4core fixes from @XCnathan32. Should work over any ROM, any custom kernel, recovery, etc., can be added in queue after ROM, root zip + custom kernel to patch it from TWRP or FlashFire (so good for OTAs), and simplifies the initial process greatly since you can now fastboot boot any 4core recovery.img and then adb sideload my AK2 zip to fix the likely newer recovery you already had on your device. :good:


    Edit: See my new thread for updated files + step-by-step instructions: https://forum.xda-developers.com/nexus-6p/general/bootloop-death-blod-workaround-zip-t3819515
    17
    How the fuuuuuuuu man you save me, how do you make this.
    Really work for my Nexus 6p thank you man, is there any way to send a cup of coffe.

    To anyone who wants to make a boot.img with 4 cores: It's actually fairly simple, you need to get abootimg tools on linux. Then unpack the boot.img with abootimg -x (name of your boot.img) Once the image is extracted, there should be a file named bootimg.cfg, edit that file and put in maxcpus=4 in the line that starts with cmdline =. Then repack the image with abootimg --create myboot.img -f bootimg.cfg -k zImage -r initrd.img And viola! You have a (half) working kernel.
    17
    Update: Just found out that the kernel is setting foreground tasks to only run on CPU 0, I would assume this is because that foreground tasks only ran on BIG cores, but since the kernel can't access them, it pushes all foreground tasks to CPU 0, and only CPU 0, obviously, this would slow device performance down a lot, so I'm working on building a modified init script to fix this. Up to this point, our devices have basically been running on 1 core, so this fix will help performance a ton.

    I uploaded a screenshot of core usage on device startup, to show just how bad the problem is. (Keep in mind this is on my device with all the tweaks as well)
    16
    Big Update: Got the kernel to start utilizing all 4 of the cores instead of just 1, will update OP with links shortly! I haven't tested it much, as I just got it working, however, I expect a drastic increase in performance.
    Also, does anyone know how to add spoilers? I seriously need to clean up my OP.

    Edit: Yep, even from just a couple minutes of testing, device runs smooth AF now, and that was at startup too, when it's typically extremely laggy.

    I attached a screenshot of all cores being used down below.
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone