原生安卓 ADB hacks
如何使用 Termux 操作 ADB
如果尚未安装 ADB,直接执行 adb
指令,Termux 会提示如何安装。
安装好后,在手机的 Developer options 中启用 Wireless debugging。选择 Pair device with pairing code,可以看到有对应的 <ip>:<port> 以及配对码。
在 Termux 中输入 adb pair
可以看到使用说明,使用 adb pair <ip>:<port> <code>
进行配对。(也可以不输 code,紧接着 adb 会提示输入)
配对完成后,使用 adb connect
建立连接,可以用 adb devices
查看已连接的设备。
以上就完成了 adb 的配对和连接,后面就可以执行下面的 shell 指令了。如果需要执行多条 adb shell xxx
指令,其实可以直接先执行 adb shell
,进入 shell 环境后只需要执行后面那句指令即可。
完成所有指令后,使用 adb disconnect
断开连接。
备注:
- 多任务切换窗口后配对码就会失效,所以可以使用分屏,同时展示设置和 Termux,即可正常完成配对。
- 配对前最好关闭 VPN,否则 IP 可能不对。
Hacks
-
网络状态检测
原生安卓使用的 Captive Portal Server 是谷歌的域名(实际使用的域名有众多说法,无定论),显然被墙无法访问,而且这种底层应用貌似不会被正确代理。因此需要更换 Captive Portal Server 到一个国内能够正常访问的地址。
可以使用 V2EX 提供的:
1adb shell "settings put global captive_portal_http_url http://captive.v2ex.co/generate_204"; 2adb shell "settings put global captive_portal_https_url https://captive.v2ex.co/generate_204";
还可以添加 fallback 地址:
1adb shell "settings put global captive_portal_fallback_url http://captive.v2ex.co/generate_204"; 2adb shell "settings put global captive_portal_other_fallback_urls http://captive.v2ex.co/generate_204";
检查设置:(其它以此类推)
1adb shell "settings get global captive_portal_https_url"
除了 V2EX 的服务器外还可以使用小米和谷歌 CN 的:
(http/https) connect.rom.miui.com/generate_204
(http/https) www.google.cn/generate_204
更多参考:
-
时间同步
和 Captive Portal 一样,原生安卓使用的 NTP Server 也是被墙的(time.android.com),这导致系统无法正确同步时间。
使用 ADB 修改成 pool.ntp.org 即可:
1adb shell "settings put global ntp_server pool.ntp.org"
检查设置:
1adb shell "settings get global ntp_server"
参考:
-
应用独立语言设置
安卓 13 引入了每个应用独立的语言设置(per-app language settings),但是默认需要应用启用支持以后,才会在系统设置里显示这个应用。
例如全局系统语言设置为英文,但是想要把 Sky Map 设置为中文,默认是不行的。因为 Sky Map 没有在构建应用的时候启用对应的支持,应用内也没有做语言切换。
要强制启用对所有应用的独立多语言设置,可以使用 ADB 添加如下设置:
1adb shell "settings put global settings_app_locale_opt_in_enabled false"
检查设置:
1adb shell "settings get global settings_app_locale_opt_in_enabled"
然后就可以在系统语言设置里的应用语言里看到所有应用了,也可以在每个应用自己的设置界面里看到语言选项。
参考:
How to make every app appear in Android 13’s new per-app language settings
另外,也可以通过 Shizuku + Language Selector 第三方 UI 实现独立应用语言选择。不过有原生 UI,还是用原生的更靠谱。
#tech notes
本文总字数 1223
本文阅读量
本站访客量