用 oppo 的开发者都知道,无论如何设置,插上 USB 后,一定要主动点击 【传输文件】 这个按钮,否则 adb 连不上。每次插 USB 都要点一下,非常让人恼火,于是写个 xposed 插件把这个东西给干掉。
目标:每次连接 USB 后,让 usb 调试可以自动开启。
确认位置
使用 monitor dump ui,发现在 com.android.systemui 下。
直接用 apktool 解包时提醒缺少资源,需要用 apktool if 安装 framework 的资源,然后再解包。
1 2 3 4 5
adb pull /system/framework/oppo-framework-res.apk adb pull /system/framework/framework-res.apk apktool if oppo-framework-res.apk apktool if framework-res.apk apktool d SystemUI.apk
java.lang.RuntimeException at de.robv.android.xposed.XC_MethodHook.callBeforeHookedMethod(XC_MethodHook.java:51) at EdHooker_.hook(Unknown Source:96) at com.coloros.systemui.notification.usb.UsbService.updateUsbNotification(UsbService.java:706) at com.coloros.systemui.notification.usb.UsbService.onUsbConnected(UsbService.java:595) at com.coloros.systemui.notification.usb.UsbService.access$1500(UsbService.java:71) at com.coloros.systemui.notification.usb.UsbService$4.run(UsbService.java:554) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:238) at android.app.ActivityThread.main(ActivityThread.java:7767) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1016)