Android 加密之 打包为arr 项目依赖或者为jar
1.
修改build.gradle
plugins {//id 'com.android.application'// 1. 修改为libraryid 'com.android.library'
}android {namespace 'com.dzq.iccid2'compileSdk 33defaultConfig {//applicationId "com.dzq.iccid2"// 2. 注释minSdk 16targetSdk 33versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled true //3. 设置为trueproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}
}
2.
proguard-rules.pro
添加类如何加密事件
# 混淆所有类成员,但保留公共API接口
-keep public class com.dzq.iccid2.RootCmd {public <methods>;
}
# 混淆所有类成员,但保留公共API接口
-keep public class com.dzq.iccid2.SimUtils {public <methods>;
}# 混淆所有其他类和方法
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontoptimize
-dontpreverify
3.
在Terminal 中输入 【报错检查Java版本】
.\gradlew assembleRelease
可以指定版本
在文件gradle.properties
#指定版本
org.gradle.java.home=C:\\Program Files (x86)\\Java\\corretto-17.0.10#解决方案:开启混淆,但不启用R8 --可以不用看下面两行
android.enableR8=false
android.enableR8.libraries=false
4.
接口可以被使用,代码被加密,打包成功
5.使用
加入到需要用的项目 的 libs 文件夹中
build.gradle
dependencies {//..implementation(files("libs\\app-release.aar"))}
成功使用打包后的文件