V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zinwalin
V2EX  ›  Android

全志 A133 Android 10 系统启动后,如何把 /dev/block/mmcblk0p2 自动挂载到某个目录里

  •  
  •   zinwalin · 2022-06-20 18:07:19 +08:00 · 8604 次点击
    这是一个创建于 872 天前的主题,其中的信息可能已经有所发展或是发生改变。

    /dev/block/mmcblk0p2 是 boot logo 的存储位置,当安卓系统启动后,想动态的替换开机图片,目前 /dev/block/mmcblk0p2 存在,但是 mount 时失败。这方面的解决办法在哪里可以查到?

    13 条回复    2022-06-28 11:06:15 +08:00
    FranzKafka95
        1
    FranzKafka95  
       2022-06-20 18:28:44 +08:00 via Android
    试试在 rc 文件里操作一下?
    ysc3839
        2
    ysc3839  
       2022-06-20 18:55:25 +08:00 via Android
    mount 时失败是怎么个失败?你是怎么 mount 的? mmcblk0p2 内容是个文件系统吗?确定是能 mount 的吗?
    Gwzlchn
        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 看一下和那个设备相关的信息,挂载 /解除挂载时候操作内核会有输出的
    acess
        4
    acess  
       2022-06-21 19:54:50 +08:00
    改 init.rc 之类我记得需要改 boot.img ,有 abootimg 之类工具
    SupperMary
        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 会清楚的写明这个分区的类型的。
    zinwalin
        6
    zinwalin  
    OP
       2022-06-21 23:23:00 +08:00
    @SupperMary 多谢回复。
    zinwalin
        7
    zinwalin  
    OP
       2022-06-21 23:24:02 +08:00
    @acess 这样操作无法满足客户的需求,需要支持动态修改。 想到一个方案是安卓启动后,通过 mount 分区后再覆盖相应的 bmp 文件。
    zinwalin
        8
    zinwalin  
    OP
       2022-06-23 10:08:20 +08:00
    @SupperMary 通过 adb shell , 手动可以挂载。 现在的问题是,不清楚全志的挂载配置在哪,打算在编译时就配置好挂载的目录,这样系统一启动就已经可以访问挂载目录下的文件。
    rev1si0n
        9
    rev1si0n  
       2022-06-27 17:31:28 +08:00
    你都用开发板了,正常开发板应该都会提供系统源码的,直接操作源码改比较靠谱。如果不想,那就去改 fstab ,安卓 10 的 fstab 可能在 vendor 但也有可能在 system ,直接搜索文件 '*fstab*',加一行就是了。不过实际情况你还得考虑分区校验这些东西,可能不会有说的那么容易,所以能改源码最合适。推一下,这是我写的专门处理类似工作的工具: https://github.com/rev1si0n/bxxt
    rev1si0n
        10
    rev1si0n  
       2022-06-27 17:34:08 +08:00
    动态挂载的话,建议写个 native 服务(用 golang 或者 c/c++),暴露出接口,加入自启动的底层服务里。
    zinwalin
        11
    zinwalin  
    OP
       2022-06-27 22:47:55 +08:00
    @rev1si0n 感谢分享,厉害啊。
    zinwalin
        12
    zinwalin  
    OP
       2022-06-27 22:51:47 +08:00
    @rev1si0n bxxt 运行在安卓设备上,是需要先 root 后再拷贝 bxxt 到机器上吗? 用 adb 可以吧?
    rev1si0n
        13
    rev1si0n  
       2022-06-28 11:06:15 +08:00
    @zinwalin 使用不需要 root ,但是需要在安卓设备上运行,也就是在 adb shell 里面
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2959 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 102ms · UTC 02:48 · PVG 10:48 · LAX 18:48 · JFK 21:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.