2011-06-24 14 views
1

私のアプリケーションでは、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を送ってもらう必要があるたびに...どのように彼らがそれを行うことができますか?

答えて

0

ユーザがシミュレータでAPKを実行するのに十分な知識を持っている場合、彼はそれを逆コンパイルして小切手を削除するほど精通しています。

さらに、もし私があなただったら、登録されていないユーザーがアプリケーションを起動できないようにするより、多くの機能を登録ユーザーやログインユーザーに提供するつもりです。このようなセキュリティ機能(SteamやWindows LiveやUbisoftの有名な有料ユーザー拒否のユーザーだと思う)に起因する機能不全のアプリケーションよりも迷惑なものはありません。あなたのアプリケーションを海賊行為させるだけです。

+0

私に署名したアプリケーションを再コンパイルして再コンパイルする方法を教えてください – barmaley

+0

シミュレータで実行するためにコードを署名する必要はありません@barmaley ... – Kheldar

+0

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

0

私はhereを書いていたので、特定のデバイスを識別するためにIMEIを使用することはお勧めできません。

0

IMEIチェックは、電話機能を使用して電話専用に提供されていれば良い考えですが、国の規制に依存しています。モバイルネットワーク内にEIR(機器識別レジスタ)レジストリが実装されている国はほとんどありません。それは盗まれた偽のIMEIを灰色と黒色でチェックします。黒でマークされたimeiは電話機能を使用できません。灰色のマークは疑わしいものであり、法的な必要性に応じて追跡されます。この場合、imei checkを使用することは貴重です。

関連する問題