安卓挂载tf卡到自定义目录
需求
最近有个需求,为了兼容之前的固件,需要把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卡到自定义目录相关推荐
- 【Luat-esp32c3】4.2 文件系统——sdmmc挂载tf卡
文章目录 1 前言 2 硬件 3 固件 4 官方示例 5 结果 1 前言 esp32挂载tf卡. 2 硬件 3 固件 https://gitee.com/dreamcmi/LuatOS-ESP32/r ...
- linux u盘分区 mdev 卸载问题,迅为开发板最小Linux自动挂载TF卡/U盘等存储设备
原标题:迅为开发板最小Linux自动挂载TF卡/U盘等存储设备 本文转自迅为论坛:http://www.topeetboard.com 通过 mdev 工具实现 U 盘和 SD/TF 卡的自动挂载步骤 ...
- ubuntu挂载sd卡到分区目录+修改docker镜像存储位置
ubuntu挂载sd卡到分区目录+修改docker镜像存储位置 一. 挂载SD卡到/data 1.查看Linux硬盘信息 lsblk 或 fdisk -l lsblk 新的硬盘,最好删除之前的分区,再 ...
- Jetson-Nano挂载TF卡/挂载磁盘
Nano挂在TF卡有两种方式 .一种是使用nano自带的DISK工具,第二种是使用命令. 第一种方式请参考答主制作TF启动文章文章,在这里就不复述 第二种:使用指令 第一步:查看有哪些数据盘可以挂载: ...
- 【无标题】STM32F407VGT6文件系统挂载TF卡学习笔记CUBEMXKEIL5
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.CUBEMX配置 二.添加代码main.c文件 1.main函数定义变量 2.文件系统函数 三.调试结果 总结 前言 ...
- 玩客云刷armbian安装php环境_玩客云刷机为armbian后,挂载SD卡到www目录的脚本
摘要: 这个脚本是我买了一个刷好armbian系统的玩客云,然后自己安装好了宝塔,最后发现磁... 这个脚本是我买了一个刷好armbian系统的玩客云,然后自己安装好了宝塔,最后发现磁盘根本不够用,才 ...
- 安卓设备TF卡概率性无法识别问题
现象 使用t卡的设备出货前检测是正常的,放在仓库中或出货后再开机,有概率的机器无法识别,重新插拔或重启无效,拔下来放pc电脑上识别后再插回设备则恢复正常能识别. 设备信息 系统: Android 8. ...
- 挂载SD卡到mnt目录
df命令 df -h root@TinaLinux:/# df -h Filesystem Size Used Available Use% Mounted on /dev/root 16.3M 16 ...
- tf卡传输可执行程序至linux开发板
本人小白,使用的是MYB-Y335X开发板,基于TI推出的Cortex A8内核的AM3352b处理器芯片. 开发板自带的开发手册写的异常简单,对于初学者来说上手比较困难,但是也间接的提高了自己解决问 ...
最新文章
- 论文笔记:Deep Residual Learning
- 基于注解进行bean的装配
- [python opencv 计算机视觉零基础到实战] 十八、用鼠标进行画画
- js技术要点---JS 获取网页源代码
- 在鼠标点击的位置 ,添加一个div ,类似手表右键菜单
- [CareerCup] 17.1 Swap Number In Place 互换位置
- 深度学习GPU最全对比,到底谁才是性价比之王?
- Threejs实现酷炫3D地球技术点汇总
- MADlib——基于SQL的数据挖掘解决方案(7)——数据转换之其它转换
- 在iOS微信里如何自动播放
- Go语言的流程结构简单介绍
- 数据结构 插入排序(InsertionSort Sort) 详解 附C++代码实现:
- 华为离职副总徐家骏给任正非的辞职信,振聋发聩
- 英国脱欧 光伏人怎么看?
- Java_控制流程(if、switch、while、for、continue、break、结束外部循环)
- python智慧树判断题_智慧树知到_大数据分析的python基础_判断题答案
- hpdl380g9没有f10_惠普Hp DL380 GEN9 UEFI模式安装win2008 r2的方法
- windows 控制linux,windows远程控制linux的最佳方案
- 【181008】VC++ 妙手连珠五子棋源码
- C语言经典算法 - 因式分解的代码