Android Studio配置反混淆

Android Studio如何混淆

爲何要混淆

瞭解安卓程序編譯的會知道 其實咱們的apk並非很安全,從apk從能夠解包出,步驟:java

  1. 將apk文件改爲zip結尾 而後解壓zip 而後就會發現裏面有一個classes.dexandroid

  2. dex2jar 這個工具將dex文件轉成jar
    下載地址:http://sourceforge.net/projects/dex2jar/files/
    用這個工具的命令 轉jarios

d2j-dex2jar classes.dex
  1. jd-gui 這個工具用於將jar轉成java代碼
    下載地址:http://jd.benow.ca/
    用這個工具打開classes-dex2jar.jar
    20201028220024

所以最簡單的就是把java混淆了,讓別人看不懂git

AS裏面配置混淆

配置混淆

在build.gradle裏面配置github

release {
    minifyEnabled true //用於設置是否啓用混淆 
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

打包後解出來的jar:
20201028221119android-studio

20201028221154

配置混淆規則

-dontusemixedcaseclassnames 表示混淆時不使用大小寫混合類名。

-dontskipnonpubliclibraryclasses 表示不跳過library中的非public的類。

-verbose 表示打印混淆的詳細信息。

-dontoptimize 表示不進行優化,建議使用此選項,由於根據proguard-android-optimize.txt中的描述,優化可能會形成一些潛在風險,不能保證在全部版本的Dalvik上都正常運行。

-dontpreverify 表示不進行預校驗。這個預校驗是做用在Java平臺上的,Android平臺上不須要這項功能,去掉以後還能夠加快混淆速度。

-keepattributes *Annotation* 表示對註解中的參數進行保留。


-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
上面兩行表示不混淆上述兩個類

-keep class com.tencent.wns.config.ConfigManager {*;}
上面一行表示不混淆這整個類

我的簡介:高級開發工程師,興趣和領域(Unity、Unreal、cocos creator、安卓終端開發、ios終端開發、音視頻開發、圖形學),歡迎加W:wlxklyh 探討問題。(歡迎star:https://github.com/wlxklyh/SoftRenderer)安全

相關文章
相關標籤/搜索