gpt4 book ai didi

android - 购买应用时 Google Play 未经许可的响应

转载 作者:行者123 更新时间:2023-11-29 02:37:46 29 4
gpt4 key购买 nike

我的 Android 应用实现了 LVL,并在启动时检查有效许可证。我正在使用 ServerManagedPolicy。每当我使用测试帐户或从 Play 商店购买应用程序时,都会给出未经许可的响应,这让我的用户非常恼火。

相关代码:

final Random r = new SecureRandom();
byte[] SALT = new byte[20];
r.nextBytes(SALT);

lkey = "MyGooglePlayKey(hidden)";

android_id = Settings.Secure.getString(getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID);

mLicenseCheckerCallback = new MyLicenseCheckerCallback();
mChecker = new LicenseChecker(
this, new ServerManagedPolicy(this,
new AESObfuscator(SALT, getPackageName(), android_id)), lkey);

这是 Settings.Secure.getString(getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID) 的问题吗?自然地,许可 Android 文档对如何获取设备 ID 没有任何帮助,使用不同的方法需要另一个权限。我的方法导致 Android Studio 提示“不推荐使用 getString 获取设备标识符”。

由于非常古老的 Lollipop 错误,我的 LicenseChecker 类必须更改为使用显式 Intent :

if (mService == null) {
Log.i(TAG, "Binding to licensing service.");
try {
Intent serviceIntent = new Intent(new String(Base64.decode("Y29tLmFuZHJvaWQudmVuZGluZy5saWNlbnNpbmcuSUxpY2Vuc2luZ1NlcnZpY2U=")))
.setPackage("com.android.vending");

boolean bindResult = mContext.bindService(serviceIntent,
this, // ServiceConnection.
Context.BIND_AUTO_CREATE);

我的 LVL 库使用与我的应用相同的 targetSDK/compile/minSDK:

android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
useLibrary 'org.apache.http.legacy'

defaultConfig {
minSdkVersion 17
targetSdkVersion 26
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}

dependencies {
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
}

由于 NamePairValueURLEncodedUtils 方法被弃用,我不得不使用这些 Apache 替代品。

最佳答案

我不是这方面的专家,但我认为盐只是随机的,因为它对您的应用程序来说是随机的。您不会即时生成它。参见 documentation .

To use AESObfuscator, first import it to your Activity. Declare a private static final array to hold the salt bytes and initialize it to 20 randomly generated bytes.

...
// Generate 20 random bytes, and put them here.
private static final byte[] SALT = new byte[] {
-46, 65, 30, -128, -103, -57, 74, -64, 51, 88, -95,
-45, 77, -117, -36, -113, -11, 32, -64, 89
};
...

关于android - 购买应用时 Google Play 未经许可的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46023248/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com