#完美解决android /system目录中无法写入文件的问题
##实验环境I.Mix8MP
首先system/:android系统镜像目录,用于生成system.img。
编译android镜像并烧录至I.Mix8MP板子之后。
##1.首先需要连接鼠标,进入system打开开发者模式,之后进入开发者选项后发现oem选项没有打开,说明手机是有锁的。
2. 解锁DM-verity
DM-verity 是Android 系统安全的重要部分,它能保证Android 的 vendor 和 system 镜像文件中的内容是真实可靠的。所以如果打开了DM-verity功能那么如果我们通过fastboot修改android系统的system分区或者vendor分区,那么DM-verity校验时就会出错,因此在fastboot之前需要先将DM-verity解锁。
adb-root
adb reboot bootloader
fastboot devices
fastboot flashing unlock
fastboot reboot(稍等系统重启完毕)
此时发现oem选项已经变灰色了。
adb-root
adb disable-verity
adb reboot
adb root
adb remount可以成功remount /system为读写模式
注意:fastboot 需要安装对应的驱动才可以使用。
2. 这一套命令完成之后之前的所有文件会被清空,所以需要重新拷贝。此外,需要重新操作开启管理员模式。
更新问题,新烧录的安卓系统,oem键位是灰色的。所以直接 执行adb disbale-verity 之后 adb remount 但是system还是显示只读,模式。所以导致模型运行不起来,报错:
C:\Users\nxf76091\Desktop\bitbucket>adb shell /data/local/tmp/benchmark_model-devinjiao --graph=/data/local/tmp/glint360k_cosface_r18_fp16_0_toco_quant.tflite --use_nnapi=true
/system/bin/sh: /data/local/tmp/benchmark_model-devinjiao: can’t execute: Permission denied
解决:尝试 fastboot解锁一下。
还是不行,
解决方法,不是这个问题。真正的原因是没有给benchmark_model-devinjiao相应的可执行权限。
但其实真正坑的地方在于,已经在链接板子的终端里面加了可执行权限,但是不行。
解决方法,删除benchmark_model-devinjiao文件,重新adb push。之后通过adb adb shell chmod +x /data/local/tmp/benchmark_model-devinjiao 来增加可执行权限。。。。。问题解决
所有命令尽量通过adb shll 解决,不然的话,各种奇怪的错误,深坑。。。。