阅读:6466回复:1

如何获得系统权限--解决no conscrypt_openjdk_jni in java.library.path错误

楼主#
更多 发布于:2019-11-29 13:53
1.在AndroidManifest中添加

android:sharedUserId="android.uid.system"

2.获取系统签名
把以下所有文件放入同一个文件夹命名为sign
  • 在Android系统源码中的\build\target\product\security目录下找到platform.x509.pemplatform.pk8两个文件;
  • out/host/Linux-x86/framework目录下找到signapk.jar文件
  • 找到 libconscrypt_openjdk_jni
    若是mac系统拷贝
    prebuilts/sdk/tools/darwin/lib64/libconscrypt_openjdk_jni.dylib
    若是Linux系统拷贝
    prebuilts/sdk/tools/linux/lib64/libconscrypt_openjdk_jni.so
  • 需要进行系统签名的app.apk
PS:有的系统在android源代码里是编译产生的,
在out/host/linux-x86/lib/ 或者 out/host/linux-x86/lib64/目录下面
3.进入sign目录执行以下命令即可完成签名即可

java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 app.apk app_sign.apk

以上即可完成普通app获得系统权限
若是需要在Android Studio使用要完成以下步骤

4.通过platform.x509.pem platform.pk8 生成签名keystore,可在github上下载脚本

https://github.com/getfatday/keytool-importkeypair
放入platform.x509.pem platform.pk8所在目录
执行以下命令



./keytool-importkeypair -k ~/.android/debug.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform

5.在Android studio中使用

   signingConfigs {
       sginconfig {
           keyAlias 'platform'
           keyPassword 'android'
           storeFile file('/Users/macbook/.android/debug.keystore')
           storePassword 'android'
       }
   }
   buildTypes {
       release {
           signingConfig signingConfigs.sginconfig
           minifyEnabled false
           proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
       }
       debug {
           signingConfig signingConfigs.sginconfig
           minifyEnabled false
           proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
       }
   }


最新喜欢:

VastStarGamesVastSt...
[url]http://190.lsal.cn/195/1329.gif?0728100424873[/url]
沙发#
发布于:2019-11-29 15:20
[url]http://190.lsal.cn/195/1329.gif?0728100424873[/url]
游客

返回顶部