首先声明以下操作具有高度危险性(但不用担心手机会变砖),无非必要请勿轻易尝试!!!
我们都知道有很多软件都只任/sdcard和/mnt/sdcard目录,860的手机内存(即内置SD卡)就是挂载在/mnt/sdcard目录下,而外置sd卡者挂载到/mnt/sdcard-ext目录,导致很多软件都无法访问外置SD卡,如熊猫看书和很多导航软件。
其实解决办法是有的,就是把外置SD卡的所有目录和文件符号链接到/mnt/sdcard即可。
然而无论手机内存和外置SD卡都是格式化成FAT32文件系统的,FAT32是不支持符号链接的,那唯一办法就是把手机内存格式化成可以支持符号链接的文件系统,如EXT3了。
经过3个小时的努力和尝试,终于成功的把手机内存和外置SD卡都格式成EXT3文件系统,并自动把所有外置SD卡的文件都符号链接到手机内存了。
方法如下:
1. USB连上电脑并在手机上设置为USB大容量存储模式。
2. 在电脑上备份内部SD的所有内容。
3. 在手机上设置USB为"摩托罗拉手机门户"
4. 用 adb shell 进入 shell
5. 用 su 切换刀root用户
6. 用 mount -o remount,rw -t ext3 /dev/block/mmcblk0p12 /system 重新挂载system分区为读写模式,(也可以用root exploer来做)
7. 用 busybox vi /sysetm/etc/vold.fstab 修改文件,目的是暂时禁止内置sdcard自动mount,找到下面内容:
# internal eMMC
dev_mount sdcard /mnt/sdcard 18 /devices/platform/tegra-sdhci.3/mmc_host/mmc0
改为:
# internal eMMC
#dev_mount sdcard /mnt/sdcard 18 /devices/platform/tegra-sdhci.3/mmc_host/mmc0
8. 用 mount 命令查看所有文件系统挂载情况,搜索/mnt/sdcard,找到内置sdard的设备文件(如我的是/dev/block/vold/179:18,实际是/dev/block/mmcblk0p18的符号链接),并记下来,这步非常重要,否则后面格式错了分区就麻烦大了。
9. 用 busybox reboot重启手机。
10. 重启后你会发现手机内存已经无法访问了,重复第4,5,6步。
11. 用 mke2fs -t ext3 -L mot /dev/block/vold/179:18 (或用 mke2fs -t ext3 -L mot /dev/block/mmcblk0p18)格式化内部sdcard为ext3文件系统。
12. 用 vi /system/bin/mount_sdc_ext3.sh,内容如下:
#!/system/bin/sh
export PATH=/system/bin
PATH
device=$1
mount=$2
mount -t ext3 $device $mount
13. 用 vi /system/bin/check_sdc.sh,内容如下:
#!/system/bin/sh
export PATH=/system/bin
PATH
mount_sdc_ext3.sh /dev/block/mmcblk0p18 /mnt/sdcard
mount -t vfat /dev/block/mmcblk1p1 /mnt/sdcard-ext
ln -s /mnt/sdcard-ext/* /mnt/sdcard/
14. 用 busybox vi /sysetm/etc/vold.fstab,改回原来的值,即
dev_mount sdcard /mnt/sdcard 18 /devices/platform/tegra-sdhci.3/mmc_host/mmc0
15. 用 mount -t ext3 /dev/block/mmcblk0p1 /mnt/sdcard 重新挂载内部SD。
16. 重启手机,你会看到外置SD的所有内容都出现在内置SD上了设置USB为大容量存储模式。
17. 把备份的卡内容重新拷贝到内置存储上。