Android 加密之 打包为arr 项目依赖或者为jar
1.
修改build.gradle
plugins {
//id 'com.android.application'// 1. 修改为library
id 'com.android.library'
}
android {
namespace 'com.dzq.iccid2'
compileSdk 33
defaultConfig {
//applicationId "com.dzq.iccid2"// 2. 注释
minSdk 16
targetSdk 33
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true //3. 设置为true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility 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"))
}
成功使用打包后的文件