apk去机型验证方法
2017-02-19 本文已影响817人
小吵闹123
适用场景
适用于部分出现错误的应用
Package requires unavailable shared library xxx; failing!
步骤
以索尼相册为例,直接安装apk安装会失败,用爱adb安装会出现如下错误
Failure [INSTALL_FAILED_MISSING_SHARED_LIBRARY: Package couldn't be installed in /data/app/com.sonyericsson.album-1: Package com.sonyericsson.album requires unavailable shared library com.sony.device; failing!]
无法找到com.sony.device
,安装时报错,一定是在AndroidManifest中做了手脚,顺着这个思路,首先利用apktool或其它反编译apk
java -jar apktool_2.2.2.jar d com.sonyericsson.album_8.0.A.1.18_16778258.apk -o out
找到AndroidManifest.xml,果然发现在Application标签中发现了下面代码
<uses-library android:name="com.sony.device" android:required="true"/>
uses-library用于指定该应用程序必须链接的共享类库,删掉这行代码,利用apktool进行回编译,
java -jar apktool_2.2.2.jar b out out.apk
之后再利用jarsigner进行签名(注意参数之间的空格),
jarsigner -verbose -keystore debug.keystore -signedjar out_signed.apk out.apk debug.keystore
用adb进行安装,成功安装在了nexus5x上,并且可以成功运行。另外解除限制的同时还可以对资源文件进行精简,减小安装包大小。