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

1.在AndroidManifest中添加

android:sharedUserId="android.uid.system"

2.获取系统签名

把以下所有文件放入同一个文件夹命名为sign

  • 在Android系统源码中的\build\target\product\security目录下找到platform.x509.pem 和platform.pk8两个文件;

  • 找到signapk.jar文件
    若是mac系统拷贝
    out/host/darwin-x86/framework/signapk.jar
    若是Linux系统拷贝
    out/host/Linux-x86/framework/signapk.jar

  • 找到 conscrypt_openjdk_jni库
    若是mac系统拷贝
    prebuilts/sdk/tools/darwin/lib64/libconscrypt_openjdk_jni.dylib
    若是Linux系统拷贝
    prebuilts/sdk/tools/linux/lib64/libconscrypt_openjdk_jni.so

  • 需要进行系统签名的app.apk

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'
        }
    }

补充

由于文章是两三年前写的,之前写的prebuilts/sdk/tools目录下拷贝的 conscrypt_openjdk_jni库会报
FATAL ERROR in native method: RegisterNatives failed for 'org/conscrypt/NativeCrypto'; aborting...
错,应该从一下目录拷贝
若是mac系统拷贝
out/soong/host/darwin-x86/lib64/libconscrypt_openjdk_jni.dylib
若是Linux系统拷贝
out/soong/host/Linux-x86/lib64/libconscrypt_openjdk_jni.so

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容