I am trying to unlock the bootloader for my device (it's a cheap Chinese phone) and then root using Magisk. The first problem is that OEM Unlock option is not available in developer options, so I got no choice other than try unlocking using fastboot. Now the second problem is that fastboot doesn't show anything at all. Normally there is a Fastboot written at the top left corner of the device but in my case there is no output but the blank screen, and I do verify that my device is in fastboot mode because when I do fastboot devices, it show's the output:

C:\Users\Mujtaba>adb devices
List of devices attached
Y3123A0310Q0100020953   device

C:\Users\Mujtaba>adb reboot bootloader

C:\Users\Mujtaba>fastboot devices
Y3123A0310Q01000209     fastboot

Since fastboot is responding, I tried to unlock the bootloader using different commands but each time I get read/write failed error.

C:\Users\Mujtaba>fastboot oem unlock
FAILED (command write failed (Unknown error))
finished. total time: 5.011s

C:\Users\Mujtaba>fastboot oem unlock
FAILED (status read failed (Too many links))
finished. total time: 80.886s

Alas, I got the same results with fastboot oem unlock-go and fastboot flashing unlock as fastboot is not picking up (at least I think) any command except for fastboot devices.

I read the official guide and there I found that:

Devices should deny the fastboot flashing unlock command unless the get_unlock_ability is set to 1. If set to 0, the user needs to boot to the home screen, open the Settings > System > Developer options menu and enable the OEM unlocking option (which sets the unlock_ability to 1).

My device supports unlocking bootloader because I've checked the build.prop file using adb shell getprop and it includes the properties stated below:

The ro.oem_unlock_supported property should be set at build time based on whether the device supports flashing unlock.

If the device suppports flashing unlock, set ro.oem_unlock_supported to 1. If the device doesn't support flashing unlock, set ro.oem_unlock_supported to 0. If the device supports flashing unlock, then the bootloader should indicate the lock status by setting the kernel command line variable androidboot.flash.locked to 1 if locked or 0 if unlocked.

For devices that support dm-verity, use ro.boot.verifiedbootstate to set the value of ro.boot.flash.locked to 0; this unlocks the bootloader if the verified boot state is orange.

C:\Users\Mujtaba>adb shell getprop
[ro.oem_unlock_supported]: [1]
[ro.boot.verifiedbootstate]: [green]
[ro.boot.flash.locked]: [1]
[sys.oem_unlock_allowed]: [0]

Someone on reddit did this to find the OEM unlock state, mine of course returned 0 as you can see above.

adb shell getprop sys.oem_unlock_allowed

Device Specs:

CPU: ARM Cortex-A-7 @ 1.20 Ghz

GPU: Mali-400 MP

Board: sp7731cea (Unisoc aka Spreadtrum)

Build: Q Infinity C_MP_26_01

Treble: NA

Seamless update (A/B): NA

So long story short, I'm still unable to unlock the bootloader so any help would be very helpful guys. Thanks

  • if OEM Unlock option is not available you need to find some app/ROM/workaround which reveals that. you may succeed with flashing (AVBv1 signed) magisk_patched.img on locked bootloader. once you have rooted you may enable OEM unlocking from cmd line. unfortunately i can't help flashing pac, don't know if it is even possible to flash single partition from SPD flash tool – alecxs Dec 16 '20 at 9:16
  • for samsung devices one must insert SIM for 7 days, worth a try android.stackexchange.com/q/225021 – alecxs Dec 16 '20 at 9:21
  • @alecxs but i still need my boot.img file for magisk right?? – Mujtaba Dec 16 '20 at 10:43
  • @alecxs when patching boot.img from magisk, will it use avb1 or 2 by default? – Mujtaba Dec 16 '20 at 13:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.