Skip to content

Instantly share code, notes, and snippets.

@aldur
Created November 14, 2017 19:44
Show Gist options
  • Star 80 You must be signed in to star a gist
  • Fork 14 You must be signed in to fork a gist
  • Save aldur/b785257ac26d23bce648cad3ce2f6dc8 to your computer and use it in GitHub Desktop.
Save aldur/b785257ac26d23bce648cad3ce2f6dc8 to your computer and use it in GitHub Desktop.
OnePlusRoot

Root OnePlus5 without unlocking the bootloader

Gain adb root.

$ adb shell am start -n com.android.engineeringmode/.qualcomm.DiagEnabled --es "code" "angela"

Download Magisk-v14.0 and extract it somewhere. Download MagiskManager.

Now, open a shell (adb shell).

OnePlus5:/ # mkdir /data/magisk
OnePlus5:/ #

Push the required file to the device:

adb push {arm64/*,common/*} /data/magisk/
arm64/magisk: 1 file pushed. 6.7 MB/s (192736 bytes in 0.027s)
arm64/magiskboot: 1 file pushed. 20.2 MB/s (316536 bytes in 0.015s)
common/boot_patch.sh: 1 file pushed. 3.1 MB/s (7732 bytes in 0.002s)
common/init.magisk.rc: 1 file pushed. 0.3 MB/s (675 bytes in 0.003s)
common/magisk.apk: 1 file pushed. 21.6 MB/s (3311368 bytes in 0.147s)
common/util_functions.sh: 1 file pushed. 2.5 MB/s (6688 bytes in 0.003s)
6 files pushed. 17.9 MB/s (3835735 bytes in 0.205s)

Download busybox for arm. Extract it and push it to the device:

adb push busybox-armv6l/system/xbin/busybox /data/magisk/

Install MagiskManager:

adb install ../MagiskManager-v5.4.0.apk

Back on the ADB shell (adb shell):

OnePlus5:/ # cd /data/magisk/
OnePlus5:/data/magisk # ls
boot_patch.sh busybox init.magisk.rc magisk magisk.apk magiskboot util_functions.sh
OnePlus5:/data/magisk # ./magisk --createimg magisk.img 64
Creating filesystem with parameters:
    Size: 67108864
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 4096
    Inode size: 256
    Journal blocks: 1024
    Label:
    Blocks: 16384
    Block groups: 1
    Reserved block group size: 7
Created filesystem with 11/4096 inodes and 1294/16384 blocks
OnePlus5:/data/magisk # mv magisk.img ..
OnePlus5:/data/magisk # ./magisk --createimg xbin.img 64
Creating filesystem with parameters:
    Size: 67108864
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 4096
    Inode size: 256
    Journal blocks: 1024
    Label:
    Blocks: 16384
    Block groups: 1
    Reserved block group size: 7
Created filesystem with 11/4096 inodes and 1294/16384 blocks
OnePlus5:/data/magisk # ./magisk --mountimg xbin.img xbin
/dev/block/loop0
OnePlus5:/data/magisk # cp /system/xbin/* xbin/
OnePlus5:/data/magisk # cp magisk xbin
OnePlus5:/data/magisk # umount xbin
OnePlus5:/data/magisk # rmdir xbin
OnePlus5:/data/magisk # ./magisk --mountimg xbin.img /system/xbin
/dev/block/loop0
OnePlus5:/data/magisk # magisk --post-fs
OnePlus5:/data/magisk # magisk --post-fs-data
OnePlus5:/data/magisk # magisk  --service

That's it, your phone is now rooted and Magisk modules should work too. After a reboot you'll need to repeat the last steps:

$ adb shell
OnePlus5:/ # cd /data/magisk/
OnePlus5:/data/magisk # ./magisk --mountimg xbin.img /system/xbin
/dev/block/loop0
OnePlus5:/data/magisk # magisk --post-fs
OnePlus5:/data/magisk # magisk --post-fs-data
OnePlus5:/data/magisk # magisk  --service
@fhebuterne
Copy link

It's work with OnePlus2 ?

@YUDHPK
Copy link

YUDHPK commented Dec 26, 2017

@aldur can you guide us for magisk 15.0 and manager 5.5.1

@Martmists-GH
Copy link

@Fabien91 if you have an EngineeringMode app, yes
@YUDHPK procedure should be the same, shouldn't it?

@bunduuk
Copy link

bunduuk commented Dec 28, 2017

@Martmists no the file names have changed, further if you already had magisk installed on previous version then you can run the command and you get root. If not you need to go back to older version and update Magisk sustains.

@bunduuk
Copy link

bunduuk commented Dec 29, 2017

I tried doing it but since the file names and files have changed did not succeed, your help is needed, please. @Martmists

@Martmists-GH
Copy link

Stay with using Magisk 14.0, I don't actually know how to do it with 15.0 either

Currently I'm trying to get a modified boot image to be flashed using EDL, but I'm getting an md5 mismatch

@Raboo
Copy link

Raboo commented Jan 1, 2018

I might have fucked up. I used the magisk built in auto update. And now my OP3T doesn't recognize my pin when I rebooted the Phone.
What are my options?

@Raboo
Copy link

Raboo commented Jan 1, 2018

I was able to recover using recovery and adb sideload to put in the original ROM. And all my settings remained :-)

@doegox
Copy link

doegox commented Jan 3, 2018

There is a 15.2 release fixing issues for oneplus5: https://www.xda-developers.com/magisk-v15-2-oneplus-samsung-devices/
Any idea how to install it?

@YUDHPK
Copy link

YUDHPK commented Jan 4, 2018

@doegox nope not yet

guys for latest open beta on oneplus 3t you should run this command
adb shell am start -n com.oneplus.factorymode/.qualcomm.DiagEnabled --es "code" "angela"

@dotternetta
Copy link

dotternetta commented Jan 11, 2018

adb noob here :-( this is killing me! When I enter the first push command I get this:

C:\Android>adb shell
root@OnePlus2:/ # adb push {arm64/,common/} /data/magisk/
adb push {arm64/,common/} /data/magisk/
/system/bin/sh: adb: not found

Please help. I download Download Magisk-v14.0 and extracted it in the c:/android/ folder from where I run adb

@gbesh
Copy link

gbesh commented Feb 10, 2018

is there anyway to unroot after using this method?

@dalfaand
Copy link

Does this method still work? I have my OPO with the stock rom and updated. I don't see EngineerMode app so I guess it doesn't work.
Should I install an outdated rom for this to work? One that still has EnginnerMode apk?

@lukavia
Copy link

lukavia commented Sep 16, 2019

@doegox nope not yet

guys for latest open beta on oneplus 3t you should run this command
adb shell am start -n com.oneplus.factorymode/.qualcomm.DiagEnabled --es "code" "angela"

In seams that with the stable release that is not working anymore. Either they have removed it, or changed the password :(

@JulesLassara
Copy link

Hello, do you think this is working on other OnePlus devices ? Like OnePlus 7 pro ? Open beta does matter ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment