anasfanani / Adb-Root-Enabler

Magisk Module that allows you to run unauthenticated "adb root".
Other
77 stars 8 forks source link

Not working #2

Open privacyguy123 opened 6 months ago

privacyguy123 commented 6 months ago

I was hoping this would work because of all the extra secpolicy stuff you're fixing. Does it need to be flashed through TWRP specifically? I saw an error and flashed in KSU instead and it doesn't change any props or anything...

nivranaitsirhc commented 1 month ago

disable all other modules and try again.

OdinVex commented 1 week ago

Unfortunately I have the same problem. No Magisk logs either. Edit: I should clarify, this is Android 14.

nivranaitsirhc commented 1 week ago

Try this steps:

Disable all modules except this one.

Reboot

open terminal or use adb shell and run these code:

getprop ro.debuggable
getprop ro.adb.secure
getprop persist.service.adb.enable
getprop persist.service.debuggable
getprop persist.sys.usb.config
getprop service.adb.tcp.port

output should be:

ro.debuggable=0
ro.adb.secure=0
persist.service.adb.enable=1
persist.service.debuggable=0
persist.sys.usb.config=mtp,adb
service.adb.tcp.port=33445

if its not, something might be resetting these props to safe values, and most probably its baked into your custom rom.

OdinVex commented 1 week ago

I forgot to follow-up with the cause last night. The problem isn't your module, it's that adbd wasn't compiled with ALLOW_ADBD_ROOT. Modern Android ROMs (more and more) are removing that which causes adbd to literally be compiled neutered without the ability to use root. I simply ended up modifying my adb pull commands into an adb shell su copy to an accessible directory and then adb pull, rm. Thank you, though.

Edit: You can see it adb/daemon/main.cpp, specifically should_drop_privileges. adbd binaries will need to be binary before-starting (or started but paused at oep) to Dalvik return false from that function so the rest proceeds without calling the minijail_capbset_drop function to prevent dropping root capabilities. Or perhaps killing the adbd to free its port and using an open-source adbd that allows requesting for root/su (or uses an alternative port if adbd can't reliably be killed), SSH, SFTP, etc.