【问题标题】:[Android System]How to create folder in storage/emulated/0 before/during the boot phase?[Android系统]如何在启动前/启动过程中在storage/emulated/0中创建文件夹?
【发布时间】:2022-01-03 09:36:15
【问题描述】:

我需要在 storage/emulated/0 中创建一个文件夹,然后执行挂载操作。

首先我尝试在 /system/core/rootdir/init.rc 中执行此操作

mkdir /storage/emulated/0/avtmp
mount tmpfs tmpfs /storage/emulated/0/avtmp size=10m

但它在“on init”或“on post-fs-data”时不起作用,并且mkdir通过使用其他路径工作,例如

mkdir /system/test

所以我认为问题是 /storage/emulated/0 创建的时间 我也尝试在 /system/core/rootdir/Android.mk 中这样做

LOCAL_POST_INSTALL_CMD += ; mkdir /storage/emulated/0/avtmp
LOCAL_POST_INSTALL_CMD += ; mount -t tmpfs -o size=10m tmpfs /storage/emulated/0/avtmp

它也不起作用。

我通过谷歌或其他方式寻求帮助,但我得到的所有答案都是关于应用程序开发而不是系统。有人可以帮助我吗?

【问题讨论】:

    标签: android operating-system filesystems


    【解决方案1】:

    现在这个问题已经解决了。 storage/emulated/0 由“vold”进程而不是“init”进程挂载,所以我们应该在 VolumeManager 中执行 mkdir 和挂载。

    /system/vold/VolumeManager.cpp 中的代码

    int VolumeManager::linkPrimary(userid_t userId) {
        std::string source(mPrimary->getPath());
        if (mPrimary->getType() == android::vold::VolumeBase::Type::kEmulated) {
            source = StringPrintf("%s/%d", source.c_str(), userId);
            fs_prepare_dir(source.c_str(), 0755, AID_ROOT, AID_ROOT);
            //MYCODE BEGIN
            std::string mountPath = StringPrintf("%s/avtmp", source.c_str());
            fs_prepare_dir(mountPath.c_str(), 0755, AID_ROOT, AID_SDCARD_RW);
            std::vector<std::string> cmd;
            cmd.push_back("mount");
            cmd.push_back("-t");
            cmd.push_back("tmpfs");
            cmd.push_back("-o");
            cmd.push_back("size=10m");
            cmd.push_back("tmpfs");
            cmd.push_back(mountPath.c_str());
            android::vold::ForkExecvp(cmd);
            //MYCODE END
    
            .......//other codes
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多