/dev/block/mmcblk0p2 是 boot logo 的存储位置,当安卓系统启动后,想动态的替换开机图片,目前 /dev/block/mmcblk0p2 存在,但是 mount 时失败。这方面的解决办法在哪里可以查到?
1
FranzKafka95 2022-06-20 18:28:44 +08:00 via Android
试试在 rc 文件里操作一下?
|
2
ysc3839 2022-06-20 18:55:25 +08:00 via Android
mount 时失败是怎么个失败?你是怎么 mount 的? mmcblk0p2 内容是个文件系统吗?确定是能 mount 的吗?
|
3
Gwzlchn 2022-06-20 20:40:44 +08:00
1. 启动时挂载:编辑 /etc/fstab 文件,详细参考: https://wiki.archlinux.org/title/Fstab_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
2. 失败看一下 dmesg 看一下和那个设备相关的信息,挂载 /解除挂载时候操作内核会有输出的 |
4
acess 2022-06-21 19:54:50 +08:00
改 init.rc 之类我记得需要改 boot.img ,有 abootimg 之类工具
|
5
SupperMary 2022-06-21 22:06:56 +08:00
看看这个分区是不是 ext4 或者 f2fs 之类的有文件系统的分区,裸 emmc 是挂不上的,你这个分区有可能是这种情况。
可以看下 recovery.fstab 或者 /vendor/etc/init/ 或者 /vendor/etc/init/hw 里面,有没有和 fstab 相关的文件,拖出来看看有没有这个分区的信息。通常 recovery fstab 会清楚的写明这个分区的类型的。 |
6
zinwalin OP @SupperMary 多谢回复。
|
7
zinwalin OP @acess 这样操作无法满足客户的需求,需要支持动态修改。 想到一个方案是安卓启动后,通过 mount 分区后再覆盖相应的 bmp 文件。
|
8
zinwalin OP @SupperMary 通过 adb shell , 手动可以挂载。 现在的问题是,不清楚全志的挂载配置在哪,打算在编译时就配置好挂载的目录,这样系统一启动就已经可以访问挂载目录下的文件。
|
9
rev1si0n 2022-06-27 17:31:28 +08:00
你都用开发板了,正常开发板应该都会提供系统源码的,直接操作源码改比较靠谱。如果不想,那就去改 fstab ,安卓 10 的 fstab 可能在 vendor 但也有可能在 system ,直接搜索文件 '*fstab*',加一行就是了。不过实际情况你还得考虑分区校验这些东西,可能不会有说的那么容易,所以能改源码最合适。推一下,这是我写的专门处理类似工作的工具: https://github.com/rev1si0n/bxxt
|
10
rev1si0n 2022-06-27 17:34:08 +08:00
动态挂载的话,建议写个 native 服务(用 golang 或者 c/c++),暴露出接口,加入自启动的底层服务里。
|