最近在捣鼓一个 RK3288
和 RK3568
的板子,运行的系统有 Android 5.1
、Android 7.1
和 Android 11
。
倒腾半天发现有许多地方不同,记录一下。
挂载文件系统可读写
# 切换为 ROOT Shell 环境
adb root
# 挂载文件系统为读写
adb remount
开启 Busybox
支持
这板子系统内默认没有 Busybox
,由于经常系统修改系统配置,所有下载一个放进去。
- 从
Busybox
官网下载适用的二进制文件
https://www.busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/我这下载的是
busybox-armv8l
这个文件。 - 推入设备
adb push busybox-armv8l /data/local/tmp/busybox adb shell chmod +x /data/local/tmp/busybox
必要时可以调用
busybox --install
进行安装。
默认开启 ADB 网络调试
不同的 Android
系统操作略有不同,都记录一下供参考。
- 5.1 系统
echo "service.adb.tcp.port=5555" >> /system/build.prop
- 7.1 系统
adb shell setprop persist.adb.tcp.port 5555 adb shell setprop persist.internet.adb.enable 1
- 11 系统
adb shell setprop persist.adb.tcp.port 5555 adb shell setprop persist.internet_adb_enable 1
按分辨率适配
屏幕部分使用了不同分辨率的屏幕,且安装方向不同。为了适配,使用完整的限定资源名来区分:
├─layout
├─layout-240dpi-1848x1080
├─layout-land-240dpi-952x768
├─values
├─values-240dpi-1848x1080
└─values-land-240dpi-952x768
其中的分辨率发现不是使用屏幕物理分辨率,得用使用命令查询:
RK3288 7.1.1 1920x1080
rk3288:/ $ dumpsys window displays | grep init=
init=1920x1080 240dpi cur=1080x1920 app=1080x1848 rng=1080x970-1920x1810
RK3288 7.1.1 1024x768
rk3288:/ $ dumpsys window displays | grep init=
init=1024x768 240dpi cur=1024x768 app=952x768 rng=768x732-952x916
RK3288 5.1.1 1024x768
rk3288:/ $ dumpsys window displays | grep init=
init=1024x768 240dpi cur=1024x768 app=1024x696 rng=768x658-1024x914
结果中的 app=
就是资源目录的分辨率。