Android2.2移植----之SD卡

本文详细介绍了从Android2.1到Android2.2的SD卡移植过程,包括配置vold.fstab文件、调整init.rc文件及创建必要的挂载点等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近我们从Android2.1转到Android2.2上,在移植过程中,SD卡的移植费了我好大一阵功夫,特地写出来给需要的朋友们参考,以少走弯路。

 

首先,代码方面的移植没有什么特别注意的地方,主要是在Android中,如何将SD卡Mount出来。

 

我刚开始移植完后,发现在kernel中,SD卡正确识别了,设备节点也存在了。在/dev/block下有mmcblk0和mmcblk0p1,在/sys/devices/platform/mxsdhci.0/mmc_host/mmc0目录下也有mmc0:e624, 当拔出SD卡后,这些内容就消失了,验证了SD卡确实被识别了。但是/sdcard目录下看不到Sd卡上的文件,Android也没有识别到SD插入。

 

在Android2.1和Android2.2中,都是用vold来处理SD卡的mount的,Android2.1中处理代码在/system/core/vold中,Android2.2中,处理代码在/system/vold中。经过查看代码,发现,Android2.1需要/system/etc/vold.conf文件;而Android2.2需要/etc/vold.fstab文件。因此,要将这个文件(vold.conf或者vold.fstab)打包到系统的/syste,etc目录或者/etc目录下。

 

vold.fstab的内容只有主要的1行:

dev_mount sdcard /mnt/sdcard 1 /devices/platform/mxsdhci.0/mmc_host/mmc0

 

 

另外,在init.rc中,还要执行vold服务:

 

service vold /system/bin/vold
    socket vold stream 0660 root mount
    ioprio be 2

 

经过上述处理,发现还是不能成功mount SD Card,无奈之下,在vold代码中加trace,用Logcat查看,发现在mount的过程中,需要下面这些目录:

/mnt/sdcard

/mnt/secure

/mnt/secure/staging

/mnt/secure/asec

/mnt/asec

 

所以要在init.rc中,分别建立这些目录,并用“symlink /mnt/sdcard /sdcard”映射一个/sdcard的连接。

 

经过上面的处理,系统系统后,就能进入/sdcard目录,看到SD卡中的文件,在Android的Setting->SD Card & Phone storage中看到SD被mount起来了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值