如何在android上挂载一个外部驱动器的ext4分区,并使其对所有应用程序都可用

我写了下面的shell脚本:

alias mount='/system/xbin/busybox mount' set -e set -x MNT=sda1 function mkdir_ext() { if [ ! -d $1 ]; then mkdir -p $1 fi chown $2 $1 chmod $3 $1 } mkdir_ext /storage/emulated/$MNT root:media_rw 777 mount -t ext4 /dev/block/$MNT /storage/emulated/$MNT mkdir_ext /data/media/$MNT root:media_rw 777 sdcard -u 1023 -g 1023 /storage/emulated/$MNT /data/media/$MNT 

执行上述命令后,挂载报告:

 root@NEO-X8:/sdcard # mount|grep sda /dev/block/sda1 /storage/emulated/sda1 ext4 rw,seclabel,relatime,data=ordered 0 0 /dev/fuse /data/media/sda1 fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0 

我正在通过ssh远程工作,使用带有根的ssh / sftp守护进程 ,并以root身份login,我可以列出/storage/emulated/sda1中的文件。

据我所知,android在devise上对文件系统是不区分大小写的,所以文件系统必须融合。

问题是,我在/data/media/sda1看到一个空目录。 更奇怪的是,如果我使用bash shell X以root身份从设备导航到/storage/emulated/sda1 ,我还会看到一个空目录。

我试过不同的其他应用程序,我也尝试使用sdcard_rw而不是media_rw (与uid / gid 1015而不是1023),没有任何工作。

如何获得ext4为所有应用程序在根Minix NEO X8-H上工作? 使用除ext4以外的任何东西都不是一种select,4TB驱动器已经包含重要数据。 作为一个侧面说明, sda1只是一个小的1GB的分区。

我会假设你的设备是根植于迄今为止所做的,所以不会涉及到这一点。 虽然我不能确定这是你的问题,但我会解释我是如何解决类似的问题的。

意图提高设备安全性的Android新版本现在正在使用大部分进程执行坐骑的功能(某种程度上是半角),而其他进程不可见。 解决这个问题是令人沮丧的设备特定的,但它看起来Minix NEO X8-H使用的是“香草”风格的源代码构建的Android。 因此,使用StickMount来安装USB 存储器的机会很大 ,它应该能够全局挂载运行由您的ROM支持的任何文件系统的USB设备(其中包括ext4,因为您之前已经安装了它)。

我没有在你的设备上亲自测试过,所以不能保证它可以正常工作,但是已经和其他一些Android设备一起使用,所以这当然值得一试。

我使用mkfs -t ext4 /dev/sdf2格式mkfs -t ext4 /dev/sdf2并插入到samsung s4 anrdoid手机中。

 adb shell su mount /dev/block/mmcblk1p2 /root 

我不能挂载这个SD卡,我已经使用了它,但没有解决方案。

最后,我发现这可以成功:)))

 mk2fs -t ext4 /dev/sdf2 and ...