private boolean isSystemApp() {
int binderCallingUid = getBinderCallingUid();
if (isSdkSandboxUidInternal(binderCallingUid)) {
loge("isSystemApp: rejected call from SDK sandbox with uid=" + binderCallingUid);
return false;
}
String[] packagesForUid = this.mContext.getPackageManager().getPackagesForUid(binderCallingUid);
if (packagesForUid != null) {
for (String str : packagesForUid) {
try {
ApplicationInfo applicationInfo = this.mContext.getPackageManager().getApplicationInfo(str, 0);
if (applicationInfo != null) {
int i = applicationInfo.flags;
if ((i & 1) != 0 || (i & 128) != 0) {
return true;
}
} else {
continue;
}
} catch (Exception e) {
loge("isSystemApp: failed to get application info for " + str + ": " + e);
}
}
}
return false;
}
2026.4.1补丁彻底修好运营商配置覆盖持久化啦,检测了提权沙箱,也正确支持了共享UID。
int binderCallingUid = getBinderCallingUid();
if (isSdkSandboxUidInternal(binderCallingUid)) {
loge("isSystemApp: rejected call from SDK sandbox with uid=" + binderCallingUid);
return false;
}
String[] packagesForUid = this.mContext.getPackageManager().getPackagesForUid(binderCallingUid);
if (packagesForUid != null) {
for (String str : packagesForUid) {
try {
ApplicationInfo applicationInfo = this.mContext.getPackageManager().getApplicationInfo(str, 0);
if (applicationInfo != null) {
int i = applicationInfo.flags;
if ((i & 1) != 0 || (i & 128) != 0) {
return true;
}
} else {
continue;
}
} catch (Exception e) {
loge("isSystemApp: failed to get application info for " + str + ": " + e);
}
}
}
return false;
}
2026.4.1补丁彻底修好运营商配置覆盖持久化啦,检测了提权沙箱,也正确支持了共享UID。