Hack programları ile yapanlar yeni APK oluşturur genelde. Bu sebeple çok kolay root'lu telefonlarda hack yapılabiliyor. Bunu şu şekilde aşabilirsiniz.
//App Verify Boolean
boolean checkInstaller(Context context) {
List<String> validInstallers = new ArrayList<>(Arrays.asList("com.android.vending", "com.google.android.feedback"));
final String installer = context.getPackageManager().getInstallerPackageName(context.getPackageName());
return installer != null && validInstallers.contains(installer);
}Yukarıdaki kod, uygulamanın nereden yüklendiğini kontrol eder. Eğer Play Store dışı ise, hata çekebilirsiniz.
if(!checkInstaller(getApplicationContext())){
finalandroid.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder(MainActivity.this);
builder.setTitle(getString(R.string.app_name));
builder.setMessage(getString(R.string.installer_failed));
builder.setCancelable(false);
builder.setNegativeButton(getString(R.string.installer_failed_btn), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String url = "https://play.google.com/store/apps/details?id=" + getApplicationContext().getPackageName();
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
if (intent.resolveActivity(getPackageManager()) == null) {
Toast.makeText(MainActivity.this, getString(R.string.no_activity_found), Toast.LENGTH_LONG).show();
} else{
startActivity(intent);
}
System.exit(0);
}
});
android.support.v7.app.AlertDialog dialog = builder.create();
dialog.show();
}Bu kod ise, eğer Google Play'den indirilmemiş ise uyarı çıkarmanızı sağlar ve kişiyi Play Store'dan indirmeye zorlar. Gerekli Activity'lerde onCreate altına yerleştirin. Burada önemli nokta,
setCancelable(false);
setCancelable false kalmasıdır. True yaparsanız uyarıyı kişi rahatlıkla kapatabilir. Bu yöntem ile büyük derecede bu saldırıları engellersiniz. İşine yarayan herkes kullanabilir.
İyi forumlar.