平台:IMX6
OS:安卓4.2和安卓4.4
查看挂载log信息: logcat -s Vold MountService
手动挂载: mount -t ntfs /dev/block... /mnt/...
mount -t v /dev/block... /mnt/...
4.2系统:
+++ b/imx6/etc/init.rc
mkdir /mnt/udisk 0000 system system
symlink /mnt/udisk /udisk
+ mkdir /mnt/sata 0000 system system
+ symlink /mnt/sata /sata
+
mkdir /system
mkdir /data 0771 system system
mkdir /cache 0770 system cache
+++ b/qiyang_6dq/overlay/frameworks/base/core/res/res/xml/storage_list.xml
@@ -45,5 +45,9 @@
android:storageDescription="@string/storage_usb"
android:primary="false"
android:removable="true" />
+ <storage android:mountPoint="/mnt/sata"
+ android:storageDescription="@string/storage_sata"
+ android:primary="false"
+ android:removable="true" />
</StorageList>
+++ b/qiyang_6dq/vold.fstab
@@ -27,6 +27,7 @@
dev_mount udisk /mnt/udisk auto /devices/platform/fsl-ehci
#mount SDHC4 SD card /mnt/sdcard as primary storage forMX6Q SABER_LITE RevC
dev_mount extsd /mnt/extsd auto /devices/platform/sdhci-esdhc-imx.2/mmc_host/mmc1
+dev_mount sata /mnt/sata auto /devices/platform/ahci.0
#mount SDHC3 TF card to /mnt/extsd as external storage forMX6Q SABER_LITE RevC
vi frameworks/base/core/res/res/values/strings.xml
<string name="storage_sata">SATA</string>
4.4.2:
diff --git a/imx6/etc/init.rc b/imx6/etc/init.rc
index a4a73dc..b27eb22 100755
--- a/imx6/etc/init.rc
+++ b/imx6/etc/init.rc
@@ -78,6 +78,8 @@ loglevel 3
symlink /mnt/media_rw/extsd /storage/extsd
mkdir /mnt/media_rw/udisk 0755 system systems
symlink /mnt/media_rw/udisk /storage/udisk
+ mkdir /mnt/media_rw/sata 0755 system system
+ symlink /mnt/media_rw/sata /storage/sata
/qiyang_6dq/overlay/frameworks/base/core/res/res/xml/storage_list.xml
index 3639bdc..dc18f6d 100644
--- a/qiyang_6dq/overlay/frameworks/base/core/res/res/xml/storage_list.xml
+++ b/qiyang_6dq/overlay/frameworks/base/core/res/res/xml/storage_list.xml
@@ -45,5 +45,9 @@
android:storageDescription="@string/storage_usb"
android:primary="false"
android:removable="true" />
+ <storage android:mountPoint="/storage/sata"
+ android:storageDescription="@string/storage_sata"
+ android:primary="false"
+ android:removable="true" />
</StorageList>
// 挂载的点是在storage下。
在调试4.4系统的时候一直挂载不上,解决如下:
挂载ntfs的硬盘,只有获取root权限之后才可以手动挂载。
logcat -s Vold MountService
log部分:
/Vold ( 2478): /dev/block/vold/8:1 contain a NTFS filesystem
W/Vold ( 2478): The SD card is world-writable because the 'persist.sampling_profiler' system property is set to '1'.
D/Vold ( 2478): Mounting ntfs with options:utf8,uid=1023,gid=1023,fmask=0,dmask=0,shortname=mixed,nodev,nosuid,dirsync,noexec
E/Vold ( 2478): Unable to create LOST.DIR (Read-only file system)
W/Vold ( 2478): blkid failed to identify /dev/block/vold/8:1
通过log信息可知节点dev/block/vold/8:1不是对应硬盘的信息,对比4.2的安卓系统。是dev/block/vold/8:2。
也可用命令查看:
到vold目录下,通过doMount关键字找到相应操作挂载的地方,system/vold/Volume.cpp 的464行。
添加当获取到的主次设备号为8;1是,把他设置为8:2.
if (n > 1){
if ((MINOR(deviceNodes[i]) == 1) && (MAJOR(deviceNodes[i]) == 8)) {
sprintf(devicePath, "/dev/block/vold/%d:%d", MAJOR(deviceNodes[i]),
2);
}
}else {
sprintf(devicePath, "/dev/block/vold/%d:%d", MAJOR(deviceNodes[i]),
MINOR(deviceNodes[i]));
}