[APP][2015-01-12][root][GNex/Dev] BootUnlocker for Nexus Devices -- version 1.6.1

Search This thread

efrant

Retired Senior Moderator & Developers Relations
Feb 12, 2009
11,468
10,985
Montreal
Samsung Galaxy S20
Here are segv11's instructions from earlier in the thread:

Also here is me following those instructions for the Nexus 7 if you want to make sure you're following the steps correctly:
http://xdaforums.com/showthread.php?p=33986295#post33986295

Cheers! :)

It's actually easier if he runs ls -l in the "by-name" folder, rather than in the "block" folder. That way we don't have to search for the names corresponding to the partition numbers.

Sent from my Nexus 4 using Tapatalk 2
 
  • Like
Reactions: osm0sis

steven676

Senior Member
Nov 24, 2011
593
2,433
Awesome, thanks! Since I don't have a Nexus S, I'm not entirely sure what partitions you have. Can you drill down in the /dev/block/platform folder and find the folder "by-name" and get a list by typing "ls -l" in that folder and post the partition list here.

We have both MTD (OneNAND) and eMMC flash on crespo. For the MTD flash:

Code:
shell@android:/ $ cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00200000 00040000 "bootloader"
mtd1: 00140000 00040000 "misc"
mtd2: 00800000 00040000 "boot"
mtd3: 00800000 00040000 "recovery"
mtd4: 1d580000 00040000 "cache"
mtd5: 00d80000 00040000 "radio"
mtd6: 006c0000 00040000 "efs"

I can dump any of these partitions for you if you like.

For the eMMC (I very much doubt the information you need is here, but for posterity):
Code:
shell@android:/ $ ls -l /dev/block/platform/s3c-sdhci.0/by-name                
lrwxrwxrwx root     root              2013-01-13 19:32 media -> /dev/block/mmcblk0p3
lrwxrwxrwx root     root              2013-01-13 19:32 system -> /dev/block/mmcblk0p1
lrwxrwxrwx root     root              2013-01-13 19:32 userdata -> /dev/block/mmcblk0p2
 
  • Like
Reactions: efrant

efrant

Retired Senior Moderator & Developers Relations
Feb 12, 2009
11,468
10,985
Montreal
Samsung Galaxy S20
We have both MTD (OneNAND) and eMMC flash on crespo. For the MTD flash:

Code:
shell@android:/ $ cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00200000 00040000 "bootloader"
mtd1: 00140000 00040000 "misc"
mtd2: 00800000 00040000 "boot"
mtd3: 00800000 00040000 "recovery"
mtd4: 1d580000 00040000 "cache"
mtd5: 00d80000 00040000 "radio"
mtd6: 006c0000 00040000 "efs"

I can dump any of these partitions for you if you like.

For the eMMC (I very much doubt the information you need is here, but for posterity):
Code:
shell@android:/ $ ls -l /dev/block/platform/s3c-sdhci.0/by-name                
lrwxrwxrwx root     root              2013-01-13 19:32 media -> /dev/block/mmcblk0p3
lrwxrwxrwx root     root              2013-01-13 19:32 system -> /dev/block/mmcblk0p1
lrwxrwxrwx root     root              2013-01-13 19:32 userdata -> /dev/block/mmcblk0p2

I would hazard a guess that the misc partition is what we are interested in. Can you dump that while the bootloader is unlocked, then again while locked?

Sent from my Nexus 4 using Tapatalk 2
 
  • Like
Reactions: steven676

steven676

Senior Member
Nov 24, 2011
593
2,433
I would hazard a guess that the misc partition is what we are interested in. Can you dump that while the bootloader is unlocked, then again while locked?

Can't be that ...

Code:
$ sha1sum misc-*
e75a589cf46253fa7d602f38dff1e9d2041aaf7b  misc-locked.img
e75a589cf46253fa7d602f38dff1e9d2041aaf7b  misc-unlocked.img
 
  • Like
Reactions: efrant

osm0sis

Senior Recognized Developer / Contributor
Mar 14, 2012
16,773
40,456
Halifax
GT-i9250
Google Nexus 4
It's actually easier if he runs ls -l in the "by-name" folder, rather than in the "block" folder. That way we don't have to search for the names corresponding to the partition numbers.

On the other hand the boot blocks are in there and that's the only way to get at them since they don't have a by-name link.

Can't be that ...

Code:
$ sha1sum misc-*
e75a589cf46253fa7d602f38dff1e9d2041aaf7b  misc-locked.img
e75a589cf46253fa7d602f38dff1e9d2041aaf7b  misc-unlocked.img

Hmm misc was my guess too. If you're sure you dumped it correctly then I guess the only option is to dump all of them from the dir segv11 suggested (which would be the EMMCs I guess) and the mtds? Any mmcblk0boot0 or boot1, etc. partitions would also be interesting to see. Since you gave us the by-name we can just match them up with the platform dumps later. That media emmc one jumps at me too, is that the sdcard or something else?

Edit: Please give us that ls -Rl /dev/block output too just so we can see better what we're dealing with. :)
 
Last edited:
  • Like
Reactions: efrant

efrant

Retired Senior Moderator & Developers Relations
Feb 12, 2009
11,468
10,985
Montreal
Samsung Galaxy S20
Can't be that ...

Code:
$ sha1sum misc-*
e75a589cf46253fa7d602f38dff1e9d2041aaf7b  misc-locked.img
e75a589cf46253fa7d602f38dff1e9d2041aaf7b  misc-unlocked.img

I guess then the best thing to do would be to dump all of them in /dev/block/ except for 1, 2 and 3 (as the lock flag wouldn't be stored in system, media or userdata). Nor would it be in boot, and unlikely in efs or bootloader.

Edit: ninja'd by osm0sis!

Sent from my Nexus 4 using Tapatalk 2
 

steven676

Senior Member
Nov 24, 2011
593
2,433
Hmm misc was my guess too. Can you dump all of them from the dir segv11 suggested (which would be the EMMCs I guess) and the mtds? Any mmcblk0boot0 or boot1, etc. partitions would also be interesting to see. Since you have us the by-name we can just match them up later now. That media emmc one jumps at me too, is that the sdcard or something else?

Code:
461bee05418a547dd9d4710e32a18a8c4ed0a678  bootloader-I9020XXLC2-locked.img
461bee05418a547dd9d4710e32a18a8c4ed0a678  bootloader-I9020XXLC2-unlocked.img
a5178a357af00d1e6b88f93c238fb96f62613f23  efs-locked.img
a5178a357af00d1e6b88f93c238fb96f62613f23  efs-unlocked.img
eaca8def76c679178fdff9edd125d788651cca91  radio-I9020XXKI1-locked.img
eaca8def76c679178fdff9edd125d788651cca91  radio-I9020XXKI1-unlocked.img

"cache" on the MTD device is a yaffs2 filesystem mounted under /cache. "boot" and "recovery" are the boot and recovery images in the regular Android boot image format.

On the eMMC device, "system" is /system, "userdata" is /data, and "media" is /sdcard.

No mmcblk*boot* devices -- here are the entire contents of /dev/block:

Code:
# ls -lR
.:
brw-------    1 root     root      254,   0 Jan 14 04:49 dm-0
brw-------    1 root     root        7,   0 Jan 14 04:49 loop0
brw-------    1 root     root        7,   1 Jan 14 04:49 loop1
brw-------    1 root     root        7,   2 Jan 14 04:49 loop2
brw-------    1 root     root        7,   3 Jan 14 04:49 loop3
brw-------    1 root     root        7,   4 Jan 14 04:49 loop4
brw-------    1 root     root        7,   5 Jan 14 04:49 loop5
brw-------    1 root     root        7,   6 Jan 14 04:49 loop6
brw-------    1 root     root        7,   7 Jan 14 04:49 loop7
brw-------    1 root     root      179,   0 Jan 14 04:49 mmcblk0
brw-------    1 root     root      179,   1 Jan 14 04:49 mmcblk0p1
brw-------    1 root     root      179,   2 Jan 14 04:49 mmcblk0p2
brw-------    1 root     root      179,   3 Jan 14 04:49 mmcblk0p3
brw-------    1 root     root       31,   0 Jan 14 04:49 mtdblock0
brw-------    1 root     root       31,   1 Jan 14 04:49 mtdblock1
brw-------    1 root     root       31,   2 Jan 14 04:49 mtdblock2
brw-------    1 root     root       31,   3 Jan 14 04:49 mtdblock3
brw-------    1 root     root       31,   4 Jan 14 04:49 mtdblock4
brw-rw----    1 radio    radio      31,   5 Jan 14 04:49 mtdblock5
brw-------    1 root     root       31,   6 Jan 14 04:49 mtdblock6
drwxr-xr-x    4 root     root            80 Jan 14 04:49 platform
brw-------    1 root     root        1,   0 Jan 14 04:49 ram0
brw-------    1 root     root        1,   1 Jan 14 04:49 ram1
brw-------    1 root     root        1,  10 Jan 14 04:49 ram10
brw-------    1 root     root        1,  11 Jan 14 04:49 ram11
brw-------    1 root     root        1,  12 Jan 14 04:49 ram12
brw-------    1 root     root        1,  13 Jan 14 04:49 ram13
brw-------    1 root     root        1,  14 Jan 14 04:49 ram14
brw-------    1 root     root        1,  15 Jan 14 04:49 ram15
brw-------    1 root     root        1,   2 Jan 14 04:49 ram2
brw-------    1 root     root        1,   3 Jan 14 04:49 ram3
brw-------    1 root     root        1,   4 Jan 14 04:49 ram4
brw-------    1 root     root        1,   5 Jan 14 04:49 ram5
brw-------    1 root     root        1,   6 Jan 14 04:49 ram6
brw-------    1 root     root        1,   7 Jan 14 04:49 ram7
brw-------    1 root     root        1,   8 Jan 14 04:49 ram8
brw-------    1 root     root        1,   9 Jan 14 04:49 ram9

./platform:
drwxr-xr-x    4 root     root           160 Jan 14 04:49 s3c-sdhci.0
drwxr-xr-x    2 root     root           180 Jan 14 04:49 s5pc110-onenand

./platform/s3c-sdhci.0:
drwxr-xr-x    2 root     root           100 Jan 14 04:49 by-name
drwxr-xr-x    2 root     root           100 Jan 14 04:49 by-num
lrwxrwxrwx    1 root     root            18 Jan 14 04:49 mmcblk0 -> /dev/block/mmcblk0
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 mmcblk0p1 -> /dev/block/mmcblk0p1
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 mmcblk0p2 -> /dev/block/mmcblk0p2
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 mmcblk0p3 -> /dev/block/mmcblk0p3

./platform/s3c-sdhci.0/by-name:
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 media -> /dev/block/mmcblk0p3
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 system -> /dev/block/mmcblk0p1
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 userdata -> /dev/block/mmcblk0p2

./platform/s3c-sdhci.0/by-num:
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 p1 -> /dev/block/mmcblk0p1
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 p2 -> /dev/block/mmcblk0p2
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 p3 -> /dev/block/mmcblk0p3

./platform/s5pc110-onenand:
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 mtdblock0 -> /dev/block/mtdblock0
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 mtdblock1 -> /dev/block/mtdblock1
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 mtdblock2 -> /dev/block/mtdblock2
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 mtdblock3 -> /dev/block/mtdblock3
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 mtdblock4 -> /dev/block/mtdblock4
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 mtdblock5 -> /dev/block/mtdblock5
lrwxrwxrwx    1 root     root            20 Jan 14 04:49 mtdblock6 -> /dev/block/mtdblock6

Don't see a /dev/nvram or anything similar either.
 
  • Like
Reactions: efrant and osm0sis

segv11

Senior Member
Mar 19, 2012
379
526
What version of Android are you running? Pre-ICS kernels didn't make the boot0/boot1 devices visible.

Sent from my stock 4.2.1 manta
 
  • Like
Reactions: efrant

efrant

Retired Senior Moderator & Developers Relations
Feb 12, 2009
11,468
10,985
Montreal
Samsung Galaxy S20
Not sure what dm-0 and loop0 - loop7 are. Maybe it's in there?

I don't think it would be in any of the other ones you listed. If it is like the N1, and the lock flag is in the NVRAM, i doubt it will be possible to get it to work.

Sent from my Nexus 4 using Tapatalk 2
 

osm0sis

Senior Recognized Developer / Contributor
Mar 14, 2012
16,773
40,456
Halifax
GT-i9250
Google Nexus 4
Not sure what dm-0 and loop0 - loop7 are. Maybe it's in there?

I don't think it would be in any of the other ones you listed. If it is like the N1, and the lock flag is in the NVRAM, i doubt it will be possible to get it to work.

The GN has all those loop and more dm mounts as well. Not sure what they do, though on kernels that support zram I've seen them mount it to a new loop..
 
  • Like
Reactions: efrant

steven676

Senior Member
Nov 24, 2011
593
2,433
The GN has all those loop and more dm mounts as well. Not sure what they do, though on kernels that support zram I've seen them mount it to a new loop..

Not sure what dm-0 and loop0 - loop7 are. Maybe it's in there?

dm-* are used by the device mapper -- the kernel infrastructure which supports installing Android apps to SD card. The loop* devices are loopback devices, which are used when you want to pretend that a regular file is actually a disk.

I don't think it would be in any of the other ones you listed. If it is like the N1, and the lock flag is in the NVRAM, i doubt it will be possible to get it to work.

I'm beginning to fear that this may well be the case.

What version of Android are you running? Pre-ICS kernels didn't make the boot0/boot1 devices visible.

Those are from ClockworkMod Recovery 5.0.2.0 -- which, come to think of it, would be a Gingerbread-era kernel. I'll try with a more recent kernel.

EDIT:
Code:
$ sha1sum mmcblk0boot*
3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3  mmcblk0boot0-locked.img
3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3  mmcblk0boot0-unlocked.img
3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3  mmcblk0boot1-locked.img
3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3  mmcblk0boot1-unlocked.img
All of those files are 1 MB full of null bytes.
 
Last edited:
  • Like
Reactions: efrant

segv11

Senior Member
Mar 19, 2012
379
526
This is a nice try, but it seems the boot0/boot1 are empty like on the Galaxy Nexus. Bootchain maybe starts in radio firmware then onto OneNAND partitions...

If we've checked all the visible OneNAND and eMMC partition, then it's either in a hidden partition or it's in NVRAM. This is going to be more difficult than we thought. Wonder why Sammy didn't do a param partition on this device...

Sent from my stock 4.2.1 manta
 

osm0sis

Senior Recognized Developer / Contributor
Mar 14, 2012
16,773
40,456
Halifax
GT-i9250
Google Nexus 4
This is a nice try, but it seems the boot0/boot1 are empty like on the Galaxy Nexus. Bootchain maybe starts in radio firmware then onto OneNAND partitions...

If we've checked all the visible OneNAND and eMMC partition, then it's either in a hidden partition or it's in NVRAM. This is going to be more difficult than we thought. Wonder why Sammy didn't do a param partition on this device...

So is there a nvram dir in /data/ on the Nexus S? I also read dd can still access hidden partitions if you can actually track one down.

Edit: Hmm, or wait, it's a Samsung so the nvram usually lives in efs, no? And we found those were unchanged..

dm-* are used by the device mapper -- the kernel infrastructure which supports installing Android apps to SD card. The loop* devices are loopback devices, which are used when you want to pretend that a regular file is actually a disk.

Would it be worth dumping the loops to see if any of them change with lock state, like nvram?
 
Last edited:

steven676

Senior Member
Nov 24, 2011
593
2,433
Would it be worth dumping the loops to see if any of them change with lock state, like nvram?

Would probably be easier just to see what files/disk blocks are behind those devices. I can try this at some point, though I'm not terribly hopeful (I strongly suspect they're all unattached.)
 

osm0sis

Senior Recognized Developer / Contributor
Mar 14, 2012
16,773
40,456
Halifax
GT-i9250
Google Nexus 4
I don't know about everyone else but sometimes I find I've rebooted into the bootloader only to realize I've forgotten to unlock in BootUnlocker beforehand. Well, I decided to make a BootUnlocker Script for my GN so I could just boot to recovery quick, unlock, then adb reboot-bootloader to get back without having to fully boot the OS to make the change.

I've posted the script here: http://xdaforums.com/showpost.php?p=37841533&postcount=176. Tested and working on my maguro device, not sure if it's all the same offset for toro and toroplus, but if so, then it could work for them too once the build.prop assert is changed to match. It'd be relatively simple to change it for the other supported devices as well, so if anyone feels like adapting it, feel free. :good:

Thanks to scary alien for the help on trimming the dd output to something testable. :)
 
Last edited:

segv11

Senior Member
Mar 19, 2012
379
526
Re: [APP][2012-12-24][root][GNex/Dev] BootUnlocker for Nexus Devices -- version 1.3

I don't know about everyone else but sometimes I find I've rebooted into the bootloader only to realize I've forgotten to unlock in BootUnlocker beforehand. Well, I decided to make a BootUnlocker Script for my GN so I could just boot to recovery quick, unlock, then adb reboot-bootloader to get back without having to fully boot the OS to make the change.

I've posted the script here: http://xdaforums.com/showpost.php?p=37841533&postcount=176. Tested and working on my maguro device, not sure if it's all the same offset for toro and toroplus, but if so, then it could work for them too once the build.prop assert is changed to match. It'd be relatively simple to change it for the other supported devices as well, so if anyone feels like it, feel free. :good:

Thanks to scary alien for the help on trimming the dd output to something testable. :)

Maguro, toro, and toroplus all use the same offset. Check the BootUnlocker source code on Google code.

Sent from my 4.1.2 toro Bugless Beast.
 

spartak0s

New member
Feb 16, 2013
3
0
may have bricked my phone

Alright, I was running one of the CyanogenMod nightlies and downloaded this app. Set my phone to locked, then forgot about it -- I downloaded today's latest nightlie, but when I rebooted, my phone was unresponsive. I was able to restore an older backup, but naturally everything was gone, and an attempt to flash my previous ROM failed.

So my question is, what do I have to do to unlock the bootloader and get this thing working properly again?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 109
    [APP][2015-01-12][root][GNex/Dev] BootUnlocker for Nexus Devices -- version 1.6.1

    NEW: beta version available!

    [SIZE="+2"]BootUnlocker for Nexus Devices -- Unlock your bootloader without fastboot.[/SIZE]

    This application REQUIRES a Galaxy Nexus (maguro, toro or toroplus), Nexus 4 (mako), Nexus 5 (hammerhead), Nexus 7 2013 (deb or flo), Nexus 10 (manta), OnePlus One (bacon / A0001), OnePlus 2 (OnePlus2), OnePlus X (OnePlus / ONE / E1001), YU Yuphoria (lettuce / YUPHORIA), YU Yureka (tomato / YUREKA), Lenovo Zuk Z1 (ham / Z1), InFocus M810 (VNA), InFocus M812 (VN2), or Yota Phone 2 (yotaphone2), with root.

    You've rooted your device, and you are trying to decide between the security of relocking your bootloader (with stock recovery and USB Debugging off), and the flexibility of leaving it unlocked.

    You know that in order to prevent an unauthorized user from accessing your data by flashing a custom recovery, "fastboot oem unlock" wipes your data. This also means that if you relock your bootloader, you will need to do a full backup-and-restore whenever you decide to unlock it again.

    BootUnlocker for Nexus Devices lets you have the best of both worlds by using root privileges to unlock your bootloader from within Android, without wiping your data. This allows you to keep your bootloader locked for security, with this application safely protected behind your lockscreen password. Whenever you want to unlock or relock your bootloader, just unlock your screen and run BootUnlocker.

    License
    BootUnlocker for Nexus Devices is Open Source Software, licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0.html.
    You can redistribute, reuse, or modify this software as permitted under this license.

    Source code is maintained on GitHub.

    Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

    For support, please leave a comment on this thread, or open an issue on the GitHub page.

    STABLE version: (a) XDA post, (b) XDA download, (c) Google Play download
    BETA version: (a) XDA post, (b) XDA download


    XDA:DevDB Information
    BootUnlocker, App for the Samsung Galaxy Nexus

    Contributors
    segv11, osm0sis
    Source Code: https://github.com/segv11/boot-unlocker


    Version Information
    Status: Stable
    Current Stable Version: 1.6.1
    Stable Release Date: 2015-01-12
    Current Beta Version: 1.6.3
    Beta Release Date: 2017-10-29

    Created 2017-07-18
    Last Updated 2017-10-29
    29
    How to help bring BootUnlocker to new devices

    For those of you who are thinking of helping to bring this app to a new device, you should know what is involved. First, it should be a Nexus or similar device, with "fastboot oem unlock" and "fastboot oem lock", and without the 2014 security changes in the bootloader. Second you should know which devices are already supported, and which we probably can't support.

    You will want up-to-date nandroids, copied off-device. Backup your /sdcard off-device too, as nandroids don't save this.

    The general idea is that we take images of all the partitions, in both the locked and unlocked states. We then compare them to see where the changes were. Once we've figured it out, we test it by flashing back the appropriate images to make sure that they change the lockstate of the device. If we can't figure it out, we will need to unlock your device using "fastboot oem unlock", which will wipe ALL of /data, including /sdcard...

    If your device started locked, we would:
    1. run "ls -lR /dev/block" and send me the result
    2. I'll send back a list of "dd" commands to dump all the paritions to /sdcard
    3. dump all the partitions
    4. take md5's of each image for quick change detection
    5. copy the images off-device
    6. reboot bootloader
    7. fastboot oem lock
    8. reboot
    9. dump all the partitions again, to a different directory
    10. take md5's of each new image for quick change detections
    11. copy new the images off-device

    If your device started locked, we would:
    1. run "ls -lR /dev/block" and send me the result
    2. I'll send back a list of "dd" commands to dump all the paritions to /sdcard
    3. dump all the partitions
    4. take md5's of each image for quick change detection
    5. copy the images off-device
    6. reboot bootloader
    7. fastboot oem unlock (wipes device!)
    8. reboot
    9. re-enable ADB debugging
    10. dump all the partitions again, to a different directory
    11. take md5's of each new image for quick change detections
    12. copy new the images off-device
    13. restore a nandroid of userdata


    At this point, we can use the md5's to check which partitions have changed, which are hopefully only a few. We'll discuss which ones seem "interesting", so you can zip up and send as few images as necessary. I'll run "xxd" to make hexdumps of them, and "diff" and friends to analyze them.

    If we have a candidate set of changes, then you would use dd to copy back the relevant image(s) and reboot bootloader, to verify that this does indeed unlock and lock the device. If everything works, then I can change BootUnlocker to recognize the device. If things don't work, and you want an unlocked bootloader, you will need to unlock it with "fastboot oem unlock" and then restore your nandroid.

    As you can see, there is a significant risk of data loss. You also need to be comfortable with fastboot, adb, and the adb/linux shell on your device. And of course, you need root. :)

    We've got the Galaxy Nexus, Nexus 4, and Nexus 10 in the bag. The ASUS bootloader in the Nexus 7 (2012 edition) stores the lockstate using device-specific encryption; we cannot support that device. If you've got some other Nexus device and feel like some hacking, PM me and we'll see if we can figure your device out.

    On the other hand, I'm not the only one who can do this work; many of us figured out the G-Nex together, on a different XDA thread. If you've already done the relevant hacking on your bootloader and know how it stores the lockstate, send me the info and I'd be happy to add it to BootUnlocker.
    11
    BootUnlocker v1.6.2 Beta

    Well, I finally got down to it on my list, and it was actually pretty easy importing my fork of @segv11's project repo into Android Studio, so here we are, finally with a test build of my proposed BootUnlocker v1.6.2 adding OnePlus 2 and OnePlus X support! ;):cowboy:

    Changes:
    https://github.com/osm0sis/boot-unlocker/commits/master

    I'll accept Pull Requests for new device support via my repo. Please look at my OnePlus 2 commit for an example/template of everything required for a complete app and documentation update for each new device. Please submit one device per commit in each Pull Request, and let me sort out bumping the app version numbering/changelog items.

    @efrant, @Titokhan were there any outstanding devices we can add along with the PR I've already got for Yota Phone 2 in v1.6.3?

    We still need @dinomight or someone to help with OnePlus 3/T as well. Any users interested in helping can follow the directions I gave to @dinomight, here: https://xdaforums.com/galaxy-nexus/...r-nexus-devices-version-t1731993/post67720772

    It'd be nice if for ~v1.7.0 we could also do a Material redesign, like how AdAway did, but we'll need someone with more app coding chops than myself to submit a Pull Request; I am brand new to app creation, but as always I hope to learn as I go along. :p:)
    10
    Reserved

    This post is Reserved.
    8
    OnePlus One support is published

    A new version with bacon / A0001 (OnePlus One) support has been published to the Play Store.

    You can also download the APK from Google Drive: https://drive.google.com/file/d/0B6qHcVHPO4VrUmpZUWd6Mnh5elE/view

    This version also includes fixes for crashes on unsupported devices.

    Thank you all for your research and beta testing. Thank you especially to Polarfuchs, who provided the offsets for this device.