问题原因及原理讲解:
由于android系统(这样叫可能不对应该叫android应用系统吧)在安装APK时,默认会使用在/sdcard或者/mnt/sdcard目录下设备,由于没有挂载那就不能对sd卡进行操作了。
下面我们来看一个特别的例子来更好地理解问题,假如你的板子是通过sd启动的(sd必须分成boot和android_fs两个分区),那么当你的os运行起来时,android应用系统会先挂载boot分区读取里面的MLO、u-boot.bin、uimage文件,然后再读取android_fs分区里面的文件系统,等os跑起来了以后,os会自动卸载boot分区。
我们先来看看android里面的dev/block下有哪些与sd卡相关的,ls你会发现有3个文件。前提是sd成功驱动成功加载,如果把sd卡插入设备,在 /dev/block/ 目录下面也会多出几个设备节点,就证明sd卡的驱动已经成功加载。 我自己测试的目录下面会形成 mmcblk0 和 mmcblk0p1 和mmcblk0p2节点,注意:这三个节点的意思,mmcblk0代表第一个SD卡设备,mmcblk0p1代表第一个SD卡设备的第一个分区,mmcblkp2代表第二个分区,真正挂载到系统中的是mmcblk0p1和mmcblk0p2而不是mmcblk0,这一点很重要。
但是为什么系统还是会提示sd damage或者sd umount呢?原因是android只会去/sdcard目录下寻找sd设备,你没有挂载sd的某一个分区在/sdcard目录,当然就会报前面的错,既然没有空间来容纳APK那么也就不能安装APK了,
解决方法:
通过是用android调试工具adb shell使pc连上板子,手动挂载mmcblk0p1到/sdcard下(这时只能挂载1分区,因为这时1分区是卸载状态可以挂载,2分区是文件系统正在被os调用,当你挂载2分区时会报出the devices busy的问题),这样操作的话,mmcblk0p1就挂载成功了,sdcard目录下就会自动多出Android目录,里面包含了一些文件如APP之类的等,查看权限如果权限不够时就使用chmod修改它,这时就退出adb
shell使用adb install安装apk ,adb pull从pc传入文件到板子,具体adb使用和adb安装及其相关操作请查看此我的目录(Android移植及调试)系列的adb命令详解等几篇文章,你可以在这些文章中学会adb的使用,接下来apk就可以成功在板子安装成功了,也可以通过板子从晚上下载apk进行安装了,这样就解决了sd无法挂载及无法安装apk的问题。
本文只是我自己在玩omap4430 pandaboard板子遇到问题的一些解决方法,本人很菜,希望大拿们不小心看到此文章后就当路过,要是能指点一下那就更好了!
分享到:
相关推荐
2SD挂载工具 可减少储存使用
ad卡双重挂载apk
1、先将sd卡插到电脑上,并格式化(fat32格式)。...4、sd卡插回手机,重启手机,执行Link2SD,挂载ext2分区 5、重启手机,以后再安装程序就会安装到ext2分区中 三星S5570手机测试通过,别的手机没测试。
主要包括了下载和安装APK、检查Apk更新、显示’已经是最新’或者’无法获取版本信息’对话框、获取当前客户端版本信息、显示版本更新通知对话框、显示下载对话框、判断是否挂载了SD卡、显示文件大小格式:2个小数点...
Link2SD是一款能让android 1.6系统的用户将应用程序移动到的SD卡上,需要root权限支持,其实就是Link2SD挂载的ext2为/ data/sdext2你的SD卡分区,使android系统在开机时挂载它,实现移动程序功能!最新版本,分享给G...
用于安卓手自我的一个好友偷摸搬运过来、刷机精灵、甜辣椒什么的有时对机型支持并不是那么完善的、关键时刻还的需要通用的adb命令自己动手、把adb...shell测试通过即可、当然了、在这些之前驱动安装什么的都是必须的哦~~...
由于不同厂商定制,挂载存储路径并不统一,并且VolumeInfo需要源码环境,这里提供一个类,通过反射机制轻松获取外挂磁盘的路径和类别(判断是否SD\OTG),并获取对硬盘的空间大小情况
RootExplorer需要ROOT权限,新建文件夹,查看/编辑文件,软件安装,RootExplorer具备普通文件管理器的各项基本功能,另外还 添加了搜索功能,在手机上找东西变得更加方便。此外,RootExplorer最大的特点在于它能够...
3.备份和恢复系统,可选择备份到内置SD卡或外置SD卡,并支持两种格式备份; 4.支持内置SD卡、外置SD卡刷机!不需要外置SD卡均可刷机; 5.支持USB模式同时连接内置卡和外置SD卡到电脑; 6.修复权限,清空电池信息,...
luks manager是一个真正意义上的android的手机加密软件,可以在手机sd卡中分出一个加密区块,存储用户的加密信息。不同于市面上的假隐藏的软件,该软件的加密是实时加密的,而且加密后的区块,可以挂载到一个特定...
2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器): android create avd --name 名称 --target 平台编号 4. 启动模拟器: emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800)...
一些工具类代码块的标准代码,包括但不限于: 获取手机系统版本号 获取手机型号 获取手机宽度 获取手机高度 获取手机imei串号 ,GSM手机的 IMEI 和 CDMA手机的 MEID. 获取手机sim卡号 ...判断一个apk是否安装