保护Android包名有以下几种方法:
android {
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
import android.os.Debug;
if (Debug.isDebuggerConnected()) {
// 反调试逻辑
// 退出应用或其他处理
}
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import android.util.Log;
try {
PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
Signature[] signatures = packageInfo.signatures;
// 验证签名
// 若签名不匹配,可能是应用被篡改或者重新打包
} catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "Package name not found", e);
}
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
public String encrypt(String data, String key) throws Exception {
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedData = cipher.doFinal(data.getBytes("UTF-8"));
return Base64.encodeToString(encryptedData, Base64.DEFAULT);
}
以上是一些常用的保护Android包名的方法,可以根据实际情况选择适合的方法进行使用。