私のアプリケーションでは、IMEIコードでアプリケーションをロックしていました。起動時にアプリケーションIMEIをチェックし、許可されたデバイスのリストと比較します。デバイスがリストユーザーである場合には作業を続けることができ、それ以外の場合は、アウトベイル:テレフォニーサービスを備えていないAndroidタブレットとタブレット用のデバイスIMEIロック
public boolean checkIMEI(Activity activity)
{
TelephonyManager tm=(TelephonyManager)activity.getSystemService(Context.TELEPHONY_SERVICE);
if(tm==null)
{
Log.v(TAG, "Can't get telephony service");
new MessageBox(activity, "Can't get telephony service. Forcing shut down!");
return false;
}
//encrypted IMEIs list
String[] vals=activity.getResources().getStringArray(R.array.imeis);
//real device IMEI
String deviceId=tm.getDeviceId();
if(deviceId==null || deviceId.length() < 2)
{
Log.v(TAG, "Looks like emulator - bail out!");
Toast.makeText(activity, "This special version not intended to run in this device!", 5000).show();
return false;
}
boolean valid=false;
for(String val:vals)
{
String imei=Checker.decryptTemp(val); //decrypt IMEIs
if(imei.equalsIgnoreCase(deviceId))
{
valid=true;
break;
}
}
if(!valid)
{
Log.v(TAG, "Invalid device IMEI!");
return false;
}
return true;
}
問題。したがって、これらのデバイスにはIMEIがありません。私はどちらのIDに依存すべきですか? Macアドレスなど何か?また、私は将来のユーザーに自分のデバイスIDを送ってもらう必要があるたびに...どのように彼らがそれを行うことができますか?
私に署名したアプリケーションを再コンパイルして再コンパイルする方法を教えてください – barmaley
シミュレータで実行するためにコードを署名する必要はありません@barmaley ... – Kheldar
http://stackoverflow.com/questions/3122635/is- it-possible-to-decompile-an-android-apk-fileとhttp://stackoverflow.com/questions/4336637/is-it-really-impossible-to-protect-android-apps-from-reverse-engineeringについて逆コンパイル。私はそれが効率的ではないとは言いませんが、あなたは合法的なユーザーを挫折させ、自分自身を完全に保護することはありません。それはまだ賢明なビジネス上の決定かもしれませんが、リスクを認識しておく必要があります。 – Kheldar