Java 检查包名是否已更改

Java 检查包名是否已更改,java,android,apk,reverse-engineering,Java,Android,Apk,Reverse Engineering,我想通过显示Toast,保护我的APK不受反向工程的影响,或者在包名更改时做些什么,现在如果包更改,应用程序将停止工作 if (getPackageName().compareTo("com.apk.example") != 0) { String error = null; error.getBytes(); } 您需要检查软件包名称和应用程序id,以确保您的应用程序未被篡改: String yourPackageName = "com.apk.example"; //

我想通过显示
Toast
,保护我的APK不受反向工程的影响,或者在包名更改时做些什么,现在如果包更改,应用程序将停止工作

if (getPackageName().compareTo("com.apk.example") != 0) {

    String error = null; 
    error.getBytes();
}

您需要检查软件包名称和应用程序id,以确保您的应用程序未被篡改:

String yourPackageName = "com.apk.example"; // android package name
String packageName = getApplicationContext().getPackageName();

// can be different from your package name if you're using flavor
// in app.build.gradle, 
String yourApplicationId = "com.apk.example"; 

if(packageName.equals(yourPackageName) && BuildConfig.APPLICATION_ID.equals(yourApplicationId)) {
   // no problem here
} else {
   // app is tampered, do something
}

问题是什么,你需要更具体一点我想检查我的应用程序包名称是否等于我上面给出的名称,以避免从play store中窃取我的APK。如您所见,如果我的应用程序的程序包名称发生更改,它将阻止应用程序启动!我希望你能理解。我不推荐这种方法,因为逆向工程师可以看到应用程序崩溃的地方,并且可以简单地删除这个if语句。相反,修改应用程序,使其在其他地方崩溃。另外,确保你混淆了软件包name@ZUNJAE真正地他怎么能看出这个错误??我正在使用APK工具。@zomba那个东西叫做logcat。我试了一下你的代码,发现了错误:
无法解析symbol'BuildConfig
@zomba:对不起,有输入错误:
Build.BuildConfig.APPLICATION\u ID
应该是
BuildConfig.APPLICATION\u ID