记一次折腾的android无线调试经历。
Android 4.2.2定制版智能硬件, USB口能插鼠标键盘, 但是不能USB调试。供应商两个方案, 要么开壳找到USB OTG排座, USB口自己接线, 但是开壳会导致硬件功能无法使用; 要么手工打包APK安装到硬件慢慢的toast。
摸索出第三条路。
搜索android无线调试, 基本都需要第一次USB调试线, adb tcpip 5555开启android设备端口监听, 之后adb connect ip port。笔者不想开壳, 即这个方案无望。
有些好奇为什么那些android模拟器, 游戏模拟器可以直接debug, adb connect可以直接连过去, android x86还有快捷键直接进入shell, 应该是启动了一个adbd的debug的服务。先装个手机版的shell, JuiceShell吧, 看能不能启动, 不行就把设备ROOT了。
shell执行su, 切换到了root账户, 好像设备是默认给root了。 去开启服务
setprop service.adb.tcp.port 5555 stop adbd start adbd
Android 4.2开启开发者模式, 对着版本点击5-7下, 勾选debug。
Android studio打开terminal, adb connect yourDeviceIp 5555, 貌似连通了一点点, 提示unauthorized验证未通过。 一般手机调试会弹出一个RSA指纹确认, 需要手机确认授权。 而这个智能硬件精简了很多东西, 没法弹出也没法设置。
继续百度, 源码UsbDebuggingActivity.java, 貌似和两个系统属性有关联
ro.debuggable=1 //打开debug选项 ro.adb.secure=0//关闭鉴权
去手机的shell慢慢打,尝试修改
setprop ro.debuggable 1 setprop ro.adb.secure 0 stop adbd start adbd
很可惜依旧不行, 奇怪的是setprop之后再去getprop查看属性值, 没修改成功, 搞不清楚是不是真正的root了。
如何跳过指纹和信任证书的验证呢?
自己build ROM的牛人还是多, android信任的证书是放在/data/misc/adb/adb_keys, 到shell不存在这个文件, 把本机
C:\Users\Administrator\.android\adbkey.pub 拷贝为adb_keys, 重启adbd, 使用adb connect连接一次, connected.
巴掌大的屏幕玩shell, 折腾得不行, 有人包装个APK工具就好了。
原文链接: https://tech.lock-in.cn/news/e488d2faa17048448911cfcc5873d391
笔者注: 正准备把以往一些技术文章往头条号迁移, 提高下流量,也可关注微信公众号.