Merhabalar android mobil uygulamam mevcut, Uygulama içerisinde bulunan ürünler uygulama satın alma yöntemiyle satılmaktadır. Bazı kişiler Hack uygulamalarıyla veye bir çok yazılım sanki ücret vermiş gibi gösterip uygulama içerisinde ürünleri alıyorlar google bunu farketmediği için kullanıcıya direk ürünü vermektedir. Bunun önüne çeşitli yöntemlerle önüne geçmeyi denedim ama başaramadım bu sorunumu ücretli şekilde çözebilecek işinde ehli kişiler PM atabilirse çok iyi olur.
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.