Files
HaiNaOSLenovo/app/src/main/java/com/hainaos/vc/utils/LenovoCsdkUtil.java
tongtongstudio fb3d2553b3 version:1.0.6
bugfixes:
update:切换到联想csdk,增加检查更新页面,增加密码登录
2026-02-04 18:07:20 +08:00

138 lines
4.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.hainaos.vc.utils;
import android.annotation.SuppressLint;
import android.app.csdk.CSDKManager;
import android.content.Context;
import android.util.Log;
import com.hainaos.vc.BuildConfig;
import com.hainaos.vc.config.CommonConfig;
import com.tencent.mmkv.MMKV;
import java.io.File;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class LenovoCsdkUtil {
private static final String TAG = "LenovoCsdkUtil";
@SuppressLint("StaticFieldLeak")
private static LenovoCsdkUtil sInstance;
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private Context mContext;
private CSDKManager mCSDKManager;
private LenovoCsdkUtil(Context context) {
if (context == null) {
throw new RuntimeException("Context is NULL");
}
this.mContext = context;
try {
this.mCSDKManager = new CSDKManager(context);
} catch (Exception e) {
Log.e(TAG, "LenovoCsdkUtil: " + e.getMessage());
}
if (mCSDKManager.isLicenseKeyEnabled(BuildConfig.APPLICATION_ID)) {
Log.e(TAG, "LenovoCsdkUtil: devices activated");
} else {
Log.e(TAG, "LenovoCsdkUtil: devices not activated");
}
List<String> packages = mCSDKManager.getRuntimePermissionWhiteList();
if (!packages.contains(BuildConfig.APPLICATION_ID)) {
packages.add(BuildConfig.APPLICATION_ID);
}
mCSDKManager.addRuntimePermissionWhiteList(packages);
Log.e(TAG, "setDefaultSetting: getRuntimePermissionWhiteList = " + mCSDKManager.getRuntimePermissionWhiteList());
}
public static void init(Context context) {
if (sInstance == null) {
Log.e(TAG, "init: ");
sInstance = new LenovoCsdkUtil(context);
}
}
public static LenovoCsdkUtil getInstance() {
if (sInstance == null) {
throw new IllegalStateException("You must be init LenovoCsdkUtil first");
}
return sInstance;
}
/**
* int: 1 MAC
* int 2 SN
* int: 3 Model
* int: 4 IMEI
*/
public String getDeviceMac() {
String mac = mCSDKManager.getDeviceInfo(1);
return mac;
}
public String getSerial() {
if (BuildConfig.DEBUG) {
return "T98005H1024GB32GB";
}
String sn = mCSDKManager.getDeviceInfo(2);
return sn;
}
public String getDeviceModel() {
String model = mCSDKManager.getDeviceInfo(3);
return model;
}
public String getDeviceIMEI() {
String imei = mCSDKManager.getDeviceInfo(4);
return imei;
}
public void setCustomLauncher(String launcherPackageName, String launcherActivity) {
Log.e(TAG, "setDefaultLauncher: " + launcherPackageName);
mCSDKManager.setCustomLauncher(launcherPackageName, launcherActivity);
}
public void addInstallPackageWhiteList(String pkg) {
List<String> pkgList = mCSDKManager.getInstallPackageWhiteList();
Set<String> pkgSet;
if (pkgList == null) {
pkgSet = new HashSet<>();
} else {
pkgSet = new HashSet<>(pkgList);
}
pkgSet.add(pkg);
// pkgSet.addAll(ApkUtils.aoleyunAPP);
Log.e(TAG, "addInstallPackageWhiteList: " + pkgSet);
mCSDKManager.addInstallPackageWhiteList(new ArrayList<>(pkgSet));
}
public void installPackage(String path) {
String pkg = ApkUtils.getPackageName(mContext, path);
addInstallPackageWhiteList(pkg);
Log.e(TAG, "installPackage: " + path);
mCSDKManager.setPersistValue("persist.sys.csdk.installpackage.verification", "true");
mCSDKManager.installPackage(path);
}
public void installPackage(File file) {
String path = file.getAbsolutePath();
String pkg = ApkUtils.getPackageName(mContext, path);
addInstallPackageWhiteList(pkg);
Log.e(TAG, "installPackage: " + path);
mCSDKManager.setPersistValue("persist.sys.csdk.installpackage.verification", "true");
mCSDKManager.installPackage(path);
}
public void killApplicationProcess(String packageName) {
Log.e(TAG, "killApplicationProcess: " + packageName);
mCSDKManager.killApplicationProcess(packageName);
}
}