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 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 pkgList = mCSDKManager.getInstallPackageWhiteList(); Set 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); } }