0

LVLを使用したアプリがあります。これは (簡単にするために) 2 つのアクティビティで構成されています。LVLActivity と呼ばれる最初のアクティビティは、ライセンスをチェックします。失敗した場合は単に終了し、それ以外の場合は MainActivity と呼ばれる 2 番目のアクティビティを明示的な意図で起動します。

マニフェストには、

<application android:icon="@drawable/icon" android:label="@string/app_name">
  <activity android:name=".LVLActivity">
    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
  </activity>
  <activity android:name=".MainActivity">
  </activity>
</application>

明示的な意図で MainActivity を起動する小さなアプリを他の誰かが作成することは可能ですか?
この種のセットアップは、合理的な保護に十分ですか?

4

2 に答える 2

1

MainActivity は、次の方法で別のアプリから開始できると思います。

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.package", "com.package.MainActivity"));
startActivity(intent);

したがって、いいえ、これは MainActivity 自体を保護しませんが、LVLActivity と MainActivity の間で必要な共有データをいくつか持つことができるため、このデータが存在しない場合に MainActivity が停止します。

ただし、これでもコードをリバース エンジニアリングできるユーザーを止めることはできないことに注意してください。これを防ぐには、デバイス上のアプリケーション内に機密データを含めないようにする必要があります。これは基本的に、サーバー上ですべてのビジネス ロジックを実行し、特定のユーザーにとって安全なデータのみをデバイスに送信する必要があることを意味します。もちろん、サーバー上で何らかのユーザー認証と承認が必要です。

于 2011-02-15T11:54:04.150 に答える
0

本業でライセンスチェックをしてみませんか?Googleが推奨する方法です。

それとは別に、いつでもライセンスチェックを実行できますが、@Peter Knegoは、誰かが本当にライセンスチェックを回避したい場合はそうするだろうと言っています.

于 2011-02-15T13:09:20.323 に答える