Loading core/java/android/content/pm/PackageParser.java +9 −5 Original line number Diff line number Diff line Loading @@ -1487,7 +1487,11 @@ public class PackageParser { return null; } } else if (tagName.equals("uses-permission")) { if (!parseUsesPermission(pkg, res, parser, attrs, outError)) { if (!parseUsesPermission(pkg, res, parser, attrs)) { return null; } } else if (tagName.equals("uses-permission-sdk-m")) { if (!parseUsesPermission(pkg, res, parser, attrs)) { return null; } } else if (tagName.equals("uses-configuration")) { Loading Loading @@ -1887,8 +1891,7 @@ public class PackageParser { } private boolean parseUsesPermission(Package pkg, Resources res, XmlResourceParser parser, AttributeSet attrs, String[] outError) throws XmlPullParserException, IOException { AttributeSet attrs) throws XmlPullParserException, IOException { TypedArray sa = res.obtainAttributes(attrs, com.android.internal.R.styleable.AndroidManifestUsesPermission); Loading @@ -1914,8 +1917,9 @@ public class PackageParser { if (index == -1) { pkg.requestedPermissions.add(name.intern()); } else { Slog.w(TAG, "Ignoring duplicate uses-permission: " + name + " in package: " + pkg.packageName + " at: " + parser.getPositionDescription()); Slog.w(TAG, "Ignoring duplicate uses-permissions/uses-permissions-sdk-m: " + name + " in package: " + pkg.packageName + " at: " + parser.getPositionDescription()); } } } Loading core/res/res/values/attrs_manifest.xml +7 −10 Original line number Diff line number Diff line Loading @@ -1269,8 +1269,13 @@ <!-- The <code>uses-permission</code> tag requests a {@link #AndroidManifestPermission <permission>} that the containing package must be granted in order for it to operate correctly. See the <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a> package must be granted in order for it to operate correctly. For runtime permissions, i.e. ones with <code>dangerous</code> protection level, on a platform that supports runtime permissions, the permission will not be granted until the app explicitly requests it at runtime and the user approves the grant. You cannot request at runtime permissions that are not declared as used in the manifest. See the <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a> document for more information on permissions. Also available is a {@link android.Manifest.permission list of permissions} included with the base platform. Loading @@ -1289,14 +1294,6 @@ of Android higher than the number given here, the permission will not be requested. --> <attr name="maxSdkVersion" format="integer" /> <!-- Specify whether this permission is required for the application. The default is true, meaning the application requires the permission, and it must always be granted when it is installed. If you set this to false, then in some cases the application may be installed with it being granted the permission, and it will need to request the permission later if it needs it. <attr name="required" format="boolean" /> --> </declare-styleable> <!-- The <code>uses-configuration</code> tag specifies Loading Loading
core/java/android/content/pm/PackageParser.java +9 −5 Original line number Diff line number Diff line Loading @@ -1487,7 +1487,11 @@ public class PackageParser { return null; } } else if (tagName.equals("uses-permission")) { if (!parseUsesPermission(pkg, res, parser, attrs, outError)) { if (!parseUsesPermission(pkg, res, parser, attrs)) { return null; } } else if (tagName.equals("uses-permission-sdk-m")) { if (!parseUsesPermission(pkg, res, parser, attrs)) { return null; } } else if (tagName.equals("uses-configuration")) { Loading Loading @@ -1887,8 +1891,7 @@ public class PackageParser { } private boolean parseUsesPermission(Package pkg, Resources res, XmlResourceParser parser, AttributeSet attrs, String[] outError) throws XmlPullParserException, IOException { AttributeSet attrs) throws XmlPullParserException, IOException { TypedArray sa = res.obtainAttributes(attrs, com.android.internal.R.styleable.AndroidManifestUsesPermission); Loading @@ -1914,8 +1917,9 @@ public class PackageParser { if (index == -1) { pkg.requestedPermissions.add(name.intern()); } else { Slog.w(TAG, "Ignoring duplicate uses-permission: " + name + " in package: " + pkg.packageName + " at: " + parser.getPositionDescription()); Slog.w(TAG, "Ignoring duplicate uses-permissions/uses-permissions-sdk-m: " + name + " in package: " + pkg.packageName + " at: " + parser.getPositionDescription()); } } } Loading
core/res/res/values/attrs_manifest.xml +7 −10 Original line number Diff line number Diff line Loading @@ -1269,8 +1269,13 @@ <!-- The <code>uses-permission</code> tag requests a {@link #AndroidManifestPermission <permission>} that the containing package must be granted in order for it to operate correctly. See the <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a> package must be granted in order for it to operate correctly. For runtime permissions, i.e. ones with <code>dangerous</code> protection level, on a platform that supports runtime permissions, the permission will not be granted until the app explicitly requests it at runtime and the user approves the grant. You cannot request at runtime permissions that are not declared as used in the manifest. See the <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a> document for more information on permissions. Also available is a {@link android.Manifest.permission list of permissions} included with the base platform. Loading @@ -1289,14 +1294,6 @@ of Android higher than the number given here, the permission will not be requested. --> <attr name="maxSdkVersion" format="integer" /> <!-- Specify whether this permission is required for the application. The default is true, meaning the application requires the permission, and it must always be granted when it is installed. If you set this to false, then in some cases the application may be installed with it being granted the permission, and it will need to request the permission later if it needs it. <attr name="required" format="boolean" /> --> </declare-styleable> <!-- The <code>uses-configuration</code> tag specifies Loading