启动事件添加应用安装来源信息

This commit is contained in:
juntao
2021-08-16 11:19:04 +08:00
parent 2e5d445d65
commit 5c02d37852
2 changed files with 46 additions and 0 deletions

View File

@ -45,7 +45,9 @@ import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
@ -158,6 +160,42 @@ public class PackageUtils {
return getMetaData(HaloApp.getInstance().getApplication(), packageName, "gh_id");
}
@Nullable
public static Map<String, String> getSideLoadedInfo() {
Context context = HaloApp.getInstance().getApplicationContext();
String packageName = null;
try {
final PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
final PackageManager packageManager = context.getPackageManager();
if (packageInfo != null && packageManager != null) {
packageName = packageInfo.packageName;
// getInstallSourceInfo requires INSTALL_PACKAGES permission which is only given to system
// apps.
final String installerPackageName = packageManager.getInstallerPackageName(packageName);
final Map<String, String> sideLoadedInfo = new HashMap<>();
if (installerPackageName != null) {
sideLoadedInfo.put("is_side_loaded", "false");
// could be amazon, google play etc
sideLoadedInfo.put("installer_store", installerPackageName);
} else {
// if it's installed via adb, system apps or untrusted sources
sideLoadedInfo.put("is_side_loaded", "true");
}
return sideLoadedInfo;
}
} catch (Exception e) {
Utils.log(e.getLocalizedMessage());
}
return null;
}
/*
* 判断是否是插件包