需求

最近有个需求,为了兼容之前的固件,需要把tf卡映射到指定路径.然后通过查询资料,最简单的方法就是在挂载的时候进行一个链接操作.实际只需要修改vold可执行文件就可以了.

修改方法

只需要修改如下文件

PublicVolume.cpp中修改如下:

status_t PublicVolume::doMount() {// TODO: expand to support mounting other filesystemsreadMetadata();LOG(ERROR) << getId() << "  filesystem " << mFsType;....../* Modify by arunboy 20191128 *//*在return前面添加一个链接函数*/linkExternal();return OK;
}/* Modify by arunboy 20191128 */
void PublicVolume::linkExternal() {std::string source(getPath());std::string target("/mnt/media");//自定义的链接路径if (TEMP_FAILURE_RETRY(unlink(target.c_str()))) {if (errno != ENOENT) {LOG(VERBOSE) << "Failed to unlink " << target.c_str() << strerror(errno);}}LOG(DEBUG) << "Linking " << source << " to " << target;if (TEMP_FAILURE_RETRY(symlink(source.c_str(), target.c_str()))) {LOG(ERROR) << "Failed to link " << source.c_str() << " to "<< target.c_str() <<  strerror(errno);}
}

编译会报错 需要在PublicVolume.h中声明一下这个函数.然后push到机器里面就可以,每次插入的时候会链接到指定的路径下面.如果文件存在,则会链接失败.

笔记

有一个切换tf卡和内部存储的顺序的地方记录一下.
framework/base/core/java/android/os/Environment.java

@@ -83,10 +85,25 @@ public class Environment {final StorageVolume[] volumes = StorageManager.getVolumeList(mUserId,StorageManager.FLAG_FOR_WRITE);final File[] files = new File[volumes.length];
+                       /* Modify by arunboy 20191128 */
+                       //final File[] files_changer = new File[1];
+for (int i = 0; i < volumes.length; i++) {files[i] = volumes[i].getPathFile();}
-            return files;
+
+                       /* Modify by arunboy 20191128 */
+                       /*if (PropertiesStringParser.checkMatch(
+                             SystemProperties.get("custom.exchange.storage", "dummy"),
+                             SystemProperties.get("custom.client.id", "YMYG"))) {
+                  if(volumes.length == 2) {
+                                       files_changer[0] = files[0];
+                                       files[0] = files[1];
+                                       files[1] = files_changer[0];
+                               }
+                   }*/
+
+                       return files;}

安卓挂载tf卡到自定义目录相关推荐

  1. 【Luat-esp32c3】4.2 文件系统——sdmmc挂载tf卡

    文章目录 1 前言 2 硬件 3 固件 4 官方示例 5 结果 1 前言 esp32挂载tf卡. 2 硬件 3 固件 https://gitee.com/dreamcmi/LuatOS-ESP32/r ...

  2. linux u盘分区 mdev 卸载问题,迅为开发板最小Linux自动挂载TF卡/U盘等存储设备

    原标题:迅为开发板最小Linux自动挂载TF卡/U盘等存储设备 本文转自迅为论坛:http://www.topeetboard.com 通过 mdev 工具实现 U 盘和 SD/TF 卡的自动挂载步骤 ...

  3. ubuntu挂载sd卡到分区目录+修改docker镜像存储位置

    ubuntu挂载sd卡到分区目录+修改docker镜像存储位置 一. 挂载SD卡到/data 1.查看Linux硬盘信息 lsblk 或 fdisk -l lsblk 新的硬盘,最好删除之前的分区,再 ...

  4. Jetson-Nano挂载TF卡/挂载磁盘

    Nano挂在TF卡有两种方式 .一种是使用nano自带的DISK工具,第二种是使用命令. 第一种方式请参考答主制作TF启动文章文章,在这里就不复述 第二种:使用指令 第一步:查看有哪些数据盘可以挂载: ...

  5. 【无标题】STM32F407VGT6文件系统挂载TF卡学习笔记CUBEMXKEIL5

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.CUBEMX配置 二.添加代码main.c文件 1.main函数定义变量 2.文件系统函数 三.调试结果 总结 前言 ...

  6. 玩客云刷armbian安装php环境_玩客云刷机为armbian后,挂载SD卡到www目录的脚本

    摘要: 这个脚本是我买了一个刷好armbian系统的玩客云,然后自己安装好了宝塔,最后发现磁... 这个脚本是我买了一个刷好armbian系统的玩客云,然后自己安装好了宝塔,最后发现磁盘根本不够用,才 ...

  7. 安卓设备TF卡概率性无法识别问题

    现象 使用t卡的设备出货前检测是正常的,放在仓库中或出货后再开机,有概率的机器无法识别,重新插拔或重启无效,拔下来放pc电脑上识别后再插回设备则恢复正常能识别. 设备信息 系统: Android 8. ...

  8. 挂载SD卡到mnt目录

    df命令 df -h root@TinaLinux:/# df -h Filesystem Size Used Available Use% Mounted on /dev/root 16.3M 16 ...

  9. tf卡传输可执行程序至linux开发板

    本人小白,使用的是MYB-Y335X开发板,基于TI推出的Cortex A8内核的AM3352b处理器芯片. 开发板自带的开发手册写的异常简单,对于初学者来说上手比较困难,但是也间接的提高了自己解决问 ...

最新文章

  1. 论文笔记:Deep Residual Learning
  2. 基于注解进行bean的装配
  3. [python opencv 计算机视觉零基础到实战] 十八、用鼠标进行画画
  4. js技术要点---JS 获取网页源代码
  5. 在鼠标点击的位置 ,添加一个div ,类似手表右键菜单
  6. [CareerCup] 17.1 Swap Number In Place 互换位置
  7. 深度学习GPU最全对比,到底谁才是性价比之王?
  8. Threejs实现酷炫3D地球技术点汇总
  9. MADlib——基于SQL的数据挖掘解决方案(7)——数据转换之其它转换
  10. 在iOS微信里如何自动播放
  11. Go语言的流程结构简单介绍
  12. 数据结构 插入排序(InsertionSort Sort) 详解 附C++代码实现:
  13. 华为离职副总徐家骏给任正非的辞职信,振聋发聩
  14. 英国脱欧 光伏人怎么看?
  15. Java_控制流程(if、switch、while、for、continue、break、结束外部循环)
  16. python智慧树判断题_智慧树知到_大数据分析的python基础_判断题答案
  17. hpdl380g9没有f10_惠普Hp DL380 GEN9 UEFI模式安装win2008 r2的方法
  18. windows 控制linux,windows远程控制linux的最佳方案
  19. 【181008】VC++ 妙手连珠五子棋源码
  20. C语言经典算法 - 因式分解的代码

热门文章

  1. python-小知识点 ---f字符串小数位和对齐
  2. 算法分析与设计——2.5 循环赛日程表
  3. oen /var/run/nginx.pid failed
  4. 春晚将采用4K超高清转播;雄安上线区块链租房平台;亚马逊全球范围内裁员丨价值早报
  5. 什么led灯性价比高?家用led灯选哪种最好
  6. Js与Jq实战:第四讲:BOM编程
  7. 设计模式的意图和适用性
  8. java利用io流读取文件发生了乱码以及java解析vcf文件
  9. 一个不可估量的流量池!
  10. 转贴:Friends 第一季英文学习整理:101