Root版crDroid9.5+Gcam:DCIM硬链接及SD卡自动存储问题咨询
解决crDroid+Gcam无法自动存照片到SD卡的问题
为什么硬链接不行?
硬链接要求源文件/目录和目标路径在同一文件系统上,而Android的内部存储和可移除SD卡是两个独立的块设备,属于不同文件系统,所以ln命令会报错"跨设备链接"。
方案1:用软链接实现自动存储(推荐)
通过软链接让Gcam写入内部存储路径时,实际数据存储到SD卡,步骤如下:
- 先备份内部
/sdcard/DCIM/Camera下的所有文件(防止数据丢失) - 执行命令移动内部相机目录到SD卡:
注意:如果SD卡路径不是mv /sdcard/DCIM/Camera /external_sd/DCIM//external_sd,可以通过mount命令查看实际挂载路径,通常是/storage/XXXX-XXXX格式(XXXX为SD卡UUID) - 在原内部路径创建软链接指向SD卡的相机目录:
ln -s /external_sd/DCIM/Camera /sdcard/DCIM/Camera - 设置链接的权限(适配Android媒体存储权限):
chown -R media_rw:media_rw /sdcard/DCIM/Camera
完成后,Gcam拍摄的照片会自动保存到SD卡的对应目录。
方案2:自动移动文件的脚本
如果软链接不兼容Gcam,可以写一个定时执行的脚本,将内部存储的照片/视频自动移到SD卡:
- 创建脚本文件
/data/local/tmp/move_media.sh,内容如下:#!/system/bin/sh SOURCE="/sdcard/DCIM/Camera/" DEST="/external_sd/DCIM/Camera/" # 确保目标目录存在 mkdir -p "$DEST" # 移动1小时内新增的文件(避免重复移动已处理的文件) find "$SOURCE" -type f -mmin -60 -exec mv {} "$DEST" \; # 清理源目录的空文件夹 find "$SOURCE" -type d -empty -delete - 给脚本添加执行权限:
chmod +x /data/local/tmp/move_media.sh - 定时执行:
- 如果ROM支持
cron,可以添加定时任务(比如每小时执行一次):echo "0 * * * * /data/local/tmp/move_media.sh" >> /var/spool/cron/crontabs/root - 也可以用Tasker(需Root权限)创建定时任务,执行该脚本。
- 如果ROM支持
内容的提问来源于stack exchange,提问作者Dob
相关产品推荐
相关产品推荐

