android 4.0 某些APK程序无法安装的解决记录
来源:互联网 发布:java程序监听端口 编辑:程序博客网 时间:2024/05/17 20:29
问题描述:
某些APK程序无法安装,比如愤怒的小鸟,武士2,把程序拷贝到内部存储上安装,在线安装,adb install都不行。
调试记录:
使用adb install安装时的logcat信息如下:
E/Vold ( 1040): Sucess allocating memory[ 145.485462] device-mapper: table: 254:0: crypt: Error allocating crypto tfm[ 145.486817] device-mapper: ioctl: error adding target to tableE/Vold ( 1040): Error loading mapping table (No such file or directory)E/Vold ( 1040): ASEC device mapping failed (No such file or directory)
发现是kernel先出错了,然后导致vold出错,查找出错的地方,就到了kernel/drivers/dm这里,发现代码并没有什么问题。因为是某些APK无法安装,有些可以安装,所以比较两者的logcat差异,发现可以安装的APK不会走vold/devmapper这里,安装失败的就会走devmapper,devmapper在vold里是一个设备映射机制,这种机制的作用简单来说就是给用户提供简单方便而又丰富的存储管理接口,在这种机制以及相关工具的帮助下,用户能够方便的自定义存储资源管理策略。所以初步怀疑是APK安装路径的问题,找到一个简单的APK源码,修改AndroidManifest.xml:
<manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.android.Drawing"android:installLocation="preferExternal"
安装位置为auto,internalOnly,用adb install均成功安装。安装位置设置为preferExternal,安装不成功。问题出在preferExternal这里,可能是要安装到外部TF卡,那插上TF卡,安装依旧失败,无从下手了。判断和APK安装路径无关。因为V310是仿照TC4添加的代码,找来TC4的机器验证没有此问题,OK,比较代码,device/init.smdkv310.rc有个地方不同,修改,试验,依旧失败,那就不是device和framework层的问题,OK,比较kernel代码,dm的代码并没有特别的不同,怀疑可能是某些modules没有编译进来,google此方面的问题,发现如下信息:
It looks like your kernel is missing device mapper support: CONFIG_BLK_DEV_DM, (depends on CONFIG_MD) Also enable DM_CRYPT, DM_UEVENT and CRYPTO_TWOFISH (needed by asec).在kernel的config中加上一些项目CONFIG_MD=yCONFIG_BLK_DEV_DM=yCONFIG_DM_DEBUG=yCONFIG_DM_CRYPT=yCONFIG_DM_UEVENT=yCONFIG_CRYPTO_AEAD=yCONFIG_CRYPTO_AUTHENC=yCONFIG_CRYPTO_CBC=yCONFIG_CRYPTO_PCBC=yCONFIG_CRYPTO_HMAC=yCONFIG_CRYPTO_MD5=yCONFIG_CRYPTO_DES=yCONFIG_CRYPTO_TWOFISH=yCONFIG_CRYPTO_TWOFISH_COMMON=y
比较TC4和V310的.config后,发现关于CONFIG_CRYPTO的几个选项不同,对照TC4,make menuconfig -> Cryptographic API ->打开ECB support, 打开AES cipher algorithms,打开Twofish cipher algorithm,重新编译kernel,OK,问题解决。
- android 4.0 某些APK程序无法安装的解决记录
- 某些APK程序无法安装
- 解决使用 JDK 1.7 对 Android apk 签名后程序无法安装的问题
- 解决Android studio编译的APK无法安装的问题
- Android Studio编译出来的APK无法安装如何解决?
- Android Studio编译出来的APK无法安装如何解决?
- Android apk 签名后程序无法安装的问题
- android apk无法覆盖安装解决
- 解决android studio 无法更新插件的问题(某些)
- 解决Android Studio编译出来的APK无法安装的问题?
- 增加Add-on属性支持的方法,解决某些apk不能安装的问题
- 某些无法调试的情况的解决
- 解决android某些应用开发某些类无法解析/找到的问题--使用android隐藏类的方法
- 解决android某些应用开发某些类无法解析/找到的问题--使用android隐藏类的方法
- 解决 Genymotion下无法安装apk的问题
- 解决 Genymotion 下无法安装apk的问题
- Android程序中实现APK的安装
- Android程序安装包APK的制作
- map的三种遍历方法!
- java web 开发中的乱码解决方案自我总结
- chrpath工具使用
- 思考OO
- 自定义的view里面ondraw(canvas canvas)幕布上的东西怎么重新弄到imageview上面
- android 4.0 某些APK程序无法安装的解决记录
- 浅谈动态SQL---转载学习
- [JavaScript]避免console错误
- VB常用的内部控件
- NDK R4 在Ubuntu 10上配置环境
- google Gson学习笔记
- 彩信拦截之突破360的小篱笆
- ICML2007两篇文章---迁移学习
- 有效创建oracle dblink 的两种方式