长期记录和更新关于安卓和 Linux 的一些折腾笔记
由来
长期记录和更新关于安卓和 Linux 的一些折腾笔记,没有 Linux 和刷机基础的不要看了。
adb
下载
知识点
小米系列手机开 adb 需要登录账号和插入 sim 卡,然后 Linux 和软路由上也可以安装 adb(打通网络后可以做很多事情),不要局限在看到的物体思维上。开了 usb adb 后插入电脑上:
1 | # 查看设备 |
更多见文档 tools/adb
adb shell
一些 adb shell 命令:
1 | $ adb shell dumpsys battery |
更多查看 https://adbinstaller.com/commands,另外 git bash 里拉取推送文件路径拼接符号不一样,可以 env 下面这样:
1 | MSYS_NO_PATHCONV=1 adb -s xxx pull /storage/emulated/0/Android/data/xxx . |
一些问题
打算把 adb 启动在 Linux 上,发现它 daemon 监听端口不是 bind 0.0.0.0:
1 | $ ss -nlpt | grep adb |
然后搜了下没有好的解决办法,有人去 hack 源码的,上面这个命令是大佬发的,只能前台运行,可以配合 screen 或者 systemd 啥的常驻。
安卓虚拟化
x86_64 机器上折腾的一些安卓虚拟化笔记,如果要在 x86_64 的安卓和安卓虚拟机或者容器内安装运行 arm64 的 apk ,需要带有 Native Bridge
。
Bliss OS
一个 x86_64 安卓系统,相对于 android-x86 似乎更新频繁,可以 pve 之类虚拟化导入安装,但是有些版本没带还是把 Native Bridge
删了。
Waydroid
anbox 后继 Waydroid 还没试过,是容器起的模拟器。
budtmo/docker-android
https://github.com/budtmo/docker-android 感觉太重了,而且没 arm64 架构镜像。
remote-android/redroid-doc
https://github.com/remote-android/redroid-doc 尝试运行 arm64 的 apk 成功了,chrome 的浏览器不行,需要有些依赖才可以运行,uc 浏览器也不行,最后用的 arm64 firefox 浏览器。另外发现有些 apk 安装后打开黑屏,最后从 proxmox 虚拟机切到宿主机上 docker 起才解决,也看到有人 arm64 M1 mac 上起安卓容器。
一些软件
一些软件相关
备份恢复
谷歌身份验证器
/data/data/com.google.android.apps.authenticator2/databases/databases
备份导入到新手机上覆盖
scrcpy
https://github.com/Genymobile/scrcpy 牛逼的项目,不用多说,配合 adb 使用:
1 | scrcpy |
关闭屏幕这个,lcd 的触发后,如果关闭 scrcpy 后面屏幕还会亮,而 oled 的则不会,单独想 adb 实现它的关闭屏幕显示而不休眠,可以参考
- https://meta.appinn.net/t/topic/46361
- https://github.com/Genymobile/scrcpy/issues/2888
- https://github.com/barry-ran/QtScrcpy/issues/194
还有其他很多 scrcpy 项目,以及可以很多编程语言有 scrcpy 的库,可以做到写代码控制手机和上面的应用。
adb 协议
golang
逆向
教程
常见逆向
- frida objection
- https://kuizuo.cn/docs/frida-so-hook/
frida
spwan
1 | -U usb, -f 是Attach模式,不带-f是Spawn 模式,前者会启动app注入,后者是自己选择啥时候注入 |
js 的话,hook 内容如下类似:
1 | setImmediate(function () { |
过检测 frida Ylarod/Florida
抓包:
unit 游戏逆向
libs/{libil2cpp,libmain,libunity,libxlua}.so
- https://veo.pub/2020/xlua/
- https://bbs.kanxue.com/thread-257678.htm
- https://blog.csdn.net/linxinfa/article/details/116572369
- https://github.com/vfsfitvnm/frida-il2cpp-bridge
- https://github.com/MlgmXyysd/IL2CppMemoryDumper
1 | # https://bbs.kanxue.com/thread-280500.htm |
辅助逆向
刷机和 ROOT
一加13T
参考一加 13 解锁并获得 root 权限,使用 kernel SU 举例,从 Android 开发者(国内) 下载 USB 驱动 android_winusb.inf
,但很搞笑的是,Android 开发者(国内)的下载链接 404,应该是谷歌哪边没传上去。
解锁
- 手机在
设置
-关于本机
-版本信息
中狂点 版本号 7 次,直到进入开发者模式,同时记下 内核版本,保存到手机以外的地方。 - 手机在
设置
-系统与更新
-开发者选项
中开启OEM 解锁
与USB 调试
,使用优质线连电脑,否则后面步骤不成功啥的 adb reboot bootloader
,手机授权电脑,重启进 bootloaderfastboot flashing unlock
,若一直卡在 waiting for device 可尝试手动指定设备驱动,指定上面下载的android_winusb.inf
- 根据提示按下音量减选择
UNLOCK THE BOOTLOADER
,再按电源键确认解锁,此刻会重启并类似恢复出厂设置一样清掉数据。
kernel SU
kernel SU 分为 LKM 和 GKI 模式,由于一加13T 内核开源且一加手机安卓版本号高,以及酷安有人编译内核,所以可以使用 GKI 模式。kernel SU 和面具 root 优点类似,使用 kernel SU 的管机器 app 修补 boot/init_boot 后安装,再刷入 GKI 内核。
kernel SU 的管理器 APP 我使用的是 SukiSU-Ultra,下载安装到手机上。
修补和刷入 init_boot
安卓 13+ 后是修补 init_boot 不再是 boot 了,从之前记录的内核版本下载手机系统对应的 ROM,我这里是微信公众号 one+更新
获取,下载后使用 FastbootEnhance
的 Payload.bin 解包
从 ROM 提取 init_boot.img
。提取后传到手机的 Download
内,打开 SukiSU-Ultra
上面内核版本上面可以点击,进去后 LKM 修补/安装
修补 Download
内的 init_boot.img
,会在 Download 内生成 kernelsu_patched_20250901_155148.img
类似文件。该文件传到电脑上,手机连电脑:
手机开机同时按爪 电源键+音量减键进入 fastboot
模式后刷入
1 | fastboot flash init_boot kernelsu_patched_20250901_155148.img |
刷入手机后如果重启不了一般是下错 ROM 了,或者像我一样使用老的 fastboot flash boot
方式刷入了 init_boot 造成(后面 flash boot 和 flash init_boot 俩都刷才好)。
ak3
上面修补 init_boot 刷入后是 LKM 模式,要刷入 GKI 的 anykernel3 才是 GKI 模式,我是使用酷安的古晨,可以 他 github 下载,下载后打开 SukiSU-Ultra
上 刷写 AnyKernel3
选择下载的,刷入完成后重启。打开 SukiSU-Ultra
上面的菜单 - 基本设置 - 下拉 开启 开机自启动。
模块相关
https://github.com/Dr-TSNG/ZygiskNext
https://github.com/JingMatrix/LSPosed 安装后重启,点击它下面的启动后 momo 检测里显示的 bootloader 未锁定无了
TEE 损坏 https://github.com/5ec1cff/TrickyStore,其他几个开源的貌似不稳定,如果不打游戏可以尝试下 https://github.com/KOWX712/Tricky-Addon-Update-Target-List/releases https://github.com/beakthoven/TrickyStoreOSS
TEE key 查看 *#899#
- 手动测试
- 工程模式
- 其他 key
广告关闭和禁用内置 app
很多界面进去关闭,参照视频 https://www.bilibili.com/video/BV1fw7tziE1M/
1 | 儿童模式 |