Credits to @TheOnlyAnil-@Firelord1
-
Requirements: a) stock recovery + rooted phone b) custom recovery
-
Files changed:
- /system/build.prop
- /data/property/persist.sys.usb.config
- /data/misc/adb/adb_keys
same as "Settings >> Developer Opcions >> USB debugging" ON
- Connect the device to Mac or PC in recovery mode.
- Now open terminal/CMD in computer and go to platform-tools/. type and enter
adb devices
to check if the device is connected in recovery mode. - Now type
adb shell mount data
andadb shell mount system
to mount the respective directories. - Get the persist.sys.usb.config file in your system using
adb pull /data/property/persist.sys.usb.config /Your directory
- Now open that file in a texteditor and edit it to
mtp,adb
and save. - Now push the file back in the device;
adb push /your-directory/persist.sys.usb.config /data/property
- Get the build.prop file;
adb pull /system/build.prop /your-directory
- Add these lines:
persist.service.adb.enable=1
persist.service.debuggable=1
persist.sys.usb.config=mtp,adb
- Push build.prop back into the device;
adb push /your-dir/build.prop /system/
adb shell
mount data
echo -n 'mtp,adb' > /data/property/persist.sys.usb.config
Verify options are not present before do it: adb shell "grep 'persist.service.adb.enable' /system/build.prop"
adb shell
mount system
echo '' >> /system/build.prop
echo '# Enable ADB' >> /system/build.prop
echo 'persist.service.adb.enable=1' >> /system/build.prop
echo 'persist.service.debuggable=1' >> /system/build.prop
echo 'persist.sys.usb.config=mtp,adb' >> /system/build.prop
For the RSA verification that you asked to bypass, I don't know whether it would work in your device, but it worked in my little experiment. In Lollipop, the ADB keys (after authorization) are saved in /data/misc/adb/adb_keys. Your private key is saved in computer. In Linux the directory location is $HOME/.android/. On Windows that usually translates to %USERPROFILE%.android, but keys might end up in C:\Windows\System32\config\systemprofile.android in some cases.
adb push ~/.android/adbkey.pub /data/misc/adb/adb_keys
Okay, it seems like if I do this on a clean install, it works. However, if I do the whole tap 10 times thing to enable developer options, then disable them, ADB stops working. Maybe this is why my previous attempts weren't working, since ADB had been explicitly turned off in other parts of Android. How would we change this using ADB/TWRP?