真.无线调试android设备

android studio 相关说明 | 2018-12-26 17:42

区块链的真实数据依赖于物联网和智能设备,记一次折腾的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

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

很可惜依旧不行, 奇怪的是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自动执行下?