apk去机型验证方法

适用场景

适用于部分出现错误的应用

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用于指定该应用程序必须链接的共享类库,删掉这行代码,利用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上,并且可以成功运行。另外解除限制的同时还可以对资源文件进行精简,减小安装包大小。

你可能感兴趣的:(apk去机型验证方法)