关于Android L软件安装问题的发现-基本解决5.0安装失败问题
2014-12-05 10:50
447 查看
自从google开放了Android
L的下载后,很多人为了尝鲜,刷入了这个并不完善的新系统.毕竟是预览版,难免存在各种各样的问题,如保留数据刷入导致通知栏无法下拉,按home键不能回到桌面,sdcard无法读取等等.但是相比程序安装来说这都不是问题,因为前面的可以通过wipe解决,一劳永逸,而后者却会一直存在.
刷了Android L之后,有一部分软件无法正常安装,多表现为
同一家公司开发的软件只能安装一个或者一部分,并且基本上安装的时候都可以在底部看到了非android自带的权限, 于是有人猜测是不是它们相互唤醒的原因,其实仔细一想好像也不对,看看谷歌的一堆app就知道了.
通过实验,发现这些apk有一个或多个相同的自定义权限,但是签名不一致,因而无法正常安装,
并不是什么防止相互唤醒之类的,这应该是Android
L的新规则,
碰到这类无法安装问题的解决办法有两个
1
(无需root)将所有冲突的apk用相同的签名文件重新签名即可正常安装.
2
(需要root,这应该是目前大多数人在用的办法)用rootexplorer或es文件管理器等将apk文件复制到/data/app/目录下,然后重启
顺便提一下,如果Android L单纯恢复efs电信3g无法正常使用的话,可以尝试讲efs和cache一起恢复.
=================================过程=====================================
下面以百度贴吧和百度输入法为例说明(这是推测的过程,不是什么严谨的证明,不用过分纠结,有些地方省略),看不懂也没关系,知道上面的解决办法就好了
1. 在手机端安装什么也看不到,只会显示安装失败,为了查找原因,我使用adb通过命令行安装,这样能知道问题出在哪.
首先安装贴吧,没什么问题, 然后安装输入法,问题来了,看绿色框,
提示安装失败因为权限重复(INSTALL_FAILED_DUPLICATE_PERMISSION), 具体的权限是"com.baidu.permission.SHARE",包名是"com.baidu.tieba",也就是已经安装的贴吧.
是不是安装顺序的问题呢,把贴吧卸载,先安装输入法,这次轮到贴吧装不上了,
2. 看看输入法里定义了什么权限,在底下的绿色框可以看到,输入法的确存在"com.baidu.permission.SHARE"这样的permission
再看贴吧,说明一下,因为贴吧要求的权限太多,没法一次完整截屏,只截取了开始和结束的部分,
这里同样存在"com.baidu.permission.SHARE"
3. 到底是不是因为permission相同的原因导致只能安装一个呢,还是弄两个程序验证下吧.
用android studio新建两个项目,在两个项目里都定义了相同的permission,神奇的事情来了,居然两个都安装成功了,难道不是permission相同造成的?
这两者的区别在哪,还有一个地方没注意到,看每个app的最后一行信息,那一长串字符代表的是证书指纹,这里用的是md5,
可以看到 贴吧和输入法的的证书指纹是不一样的,而我创建的两个app使用的是相同的签名文件,所以md5是一样的,在这里又可以推测: 证书指纹相同的情况下,定义了相同permission的程序可以共存
4. 最后来验证一下上面的猜测,给贴吧和输入法用同一个文件重新签名试试,这样两者就有了相同的签名.
用 rar 打开 apk文件, 删掉META-INF文件夹,通过命令行重新签名,两个都安装成功.
这也证实了前面的推测:如果两个apk定义了相同的permission,正常安装的条件之一是两者的签名相同
L的下载后,很多人为了尝鲜,刷入了这个并不完善的新系统.毕竟是预览版,难免存在各种各样的问题,如保留数据刷入导致通知栏无法下拉,按home键不能回到桌面,sdcard无法读取等等.但是相比程序安装来说这都不是问题,因为前面的可以通过wipe解决,一劳永逸,而后者却会一直存在.
刷了Android L之后,有一部分软件无法正常安装,多表现为
同一家公司开发的软件只能安装一个或者一部分,并且基本上安装的时候都可以在底部看到了非android自带的权限, 于是有人猜测是不是它们相互唤醒的原因,其实仔细一想好像也不对,看看谷歌的一堆app就知道了.
通过实验,发现这些apk有一个或多个相同的自定义权限,但是签名不一致,因而无法正常安装,
并不是什么防止相互唤醒之类的,这应该是Android
L的新规则,
碰到这类无法安装问题的解决办法有两个
1
(无需root)将所有冲突的apk用相同的签名文件重新签名即可正常安装.
2
(需要root,这应该是目前大多数人在用的办法)用rootexplorer或es文件管理器等将apk文件复制到/data/app/目录下,然后重启
顺便提一下,如果Android L单纯恢复efs电信3g无法正常使用的话,可以尝试讲efs和cache一起恢复.
=================================过程=====================================
下面以百度贴吧和百度输入法为例说明(这是推测的过程,不是什么严谨的证明,不用过分纠结,有些地方省略),看不懂也没关系,知道上面的解决办法就好了
1. 在手机端安装什么也看不到,只会显示安装失败,为了查找原因,我使用adb通过命令行安装,这样能知道问题出在哪.
首先安装贴吧,没什么问题, 然后安装输入法,问题来了,看绿色框,
提示安装失败因为权限重复(INSTALL_FAILED_DUPLICATE_PERMISSION), 具体的权限是"com.baidu.permission.SHARE",包名是"com.baidu.tieba",也就是已经安装的贴吧.
是不是安装顺序的问题呢,把贴吧卸载,先安装输入法,这次轮到贴吧装不上了,
2. 看看输入法里定义了什么权限,在底下的绿色框可以看到,输入法的确存在"com.baidu.permission.SHARE"这样的permission
再看贴吧,说明一下,因为贴吧要求的权限太多,没法一次完整截屏,只截取了开始和结束的部分,
这里同样存在"com.baidu.permission.SHARE"
3. 到底是不是因为permission相同的原因导致只能安装一个呢,还是弄两个程序验证下吧.
用android studio新建两个项目,在两个项目里都定义了相同的permission,神奇的事情来了,居然两个都安装成功了,难道不是permission相同造成的?
这两者的区别在哪,还有一个地方没注意到,看每个app的最后一行信息,那一长串字符代表的是证书指纹,这里用的是md5,
可以看到 贴吧和输入法的的证书指纹是不一样的,而我创建的两个app使用的是相同的签名文件,所以md5是一样的,在这里又可以推测: 证书指纹相同的情况下,定义了相同permission的程序可以共存
4. 最后来验证一下上面的猜测,给贴吧和输入法用同一个文件重新签名试试,这样两者就有了相同的签名.
用 rar 打开 apk文件, 删掉META-INF文件夹,通过命令行重新签名,两个都安装成功.
这也证实了前面的推测:如果两个apk定义了相同的permission,正常安装的条件之一是两者的签名相同
相关文章推荐
- 关于Android L软件安装问题的发现
- 关于update.inf问题安装失败的解决方法
- 关于“Web 创作组件” 解决MS Office 2007找不到Office.zh-cn问题以及VS2008 SP1 安装失败需指定visualwebdeveloperww.msi所在路径
- 树莓派 Learning 002 装机后的必要操作 --- 05 给树莓派搭建“x86 + pi”环境 -- 安装**32位运行库** -- 解决`E:未发现软件包 xxx` 问题
- 完全卸载Microsoft SQL Server 2005软件,解决多次安装软件失败问题
- 树莓派 Learning 002 装机后的必要操作 --- 05 给树莓派搭建“x86 + pi”环境 -- 安装**32位运行库** -- 解决`E:未发现软件包 xxx` 问题
- 【转啊转的啊】]关于“Web 创作组件” 解决MS Office 2007找不到Office.zh-cn问题以及VS2008 SP1 安装失败需指定visualwebdeveloperww.msi所在路径
- 完全卸载Microsoft SQL Server 2005软件,解决多次安装软件失败问题
- 关于vmware软件菜单栏点击【虚拟机】->【安装VMware Tools】没反应安装失败的问题及Linux命令使用问题
- 关于Win7系统安装XAMPP建站集成软件包80端口占用问题的解决方法
- 关于解决难倒一大片祖国花骨朵的caffe安装 error MSB4062 加载任务“NuGetPackageOverlay”失败问题
- 解决关于安装完《外语任我说》之后一些软件界面乱码的问题
- 解决 iOS 5.1.1 完美越狱后安装破解软件提示“认证失败,授权无效”的问题
- 完全卸载Microsoft SQL Server 2005软件,解决多次安装软件失败问题
- 解决端口被占用而导致软件运行失败,程序无法启动,无法安装开发工具等问题
- 关于python pyqt5安装失败问题的解决方法
- 关于ubuntu“下载软件仓库信息失败 检查您的网络连接“问题的解决办法
- 完全卸载Microsoft SQL Server 2005软件,解决多次安装软件失败问题
- 关于dnw驱动安装失败的问题解决
- 关于electron安装失败问题解决方法(node.js开发桌面应用)