修改路径:
frameworks\base\services\core\java\com\android\server\pm\PackageManagerService.java
修改内容:
private void handlePackagePostInstall(PackageInstalledInfo res, boolean grantPermissions,
...
// Now that we successfully installed the package, grant runtime
// permissions if requested before broadcasting the install. Also
// for legacy apps in permission review mode we clear the permission
// review flag which is used to emulate runtime permissions for
// legacy apps.
- //if (grantPermissions) {
+ Log.i(TAG, "handlePackagePostInstall==>>" + res.name);
if (grantPermissions || res.name.equals("com.iflytek.inputmethod")) {
final int callingUid = Binder.getCallingUid();
mPermissionManager.grantRequestedRuntimePermissions(
res.pkg, res.newUsers, grantedPermissions, callingUid,
mPermissionCallback);
}
...
}
对于预装软件,据说是在DefaultPermissionGrantPolicy里面改的,不过我没测试
frameworks\base\services\core\java\com\android\server\pm\permission\DefaultPermissionGrantPolicy.java
函数:
private void grantDefaultSystemHandlerPermissions(int userId)
参考: