Merge "resolve merge conflicts of 718f321 to nyc-mr1-dev" into nyc-mr1-dev

This commit is contained in:
TreeHugger Robot
2016-06-08 20:03:50 +00:00
committed by Android (Google) Code Review
3 changed files with 22 additions and 6 deletions

View File

@@ -169,6 +169,7 @@ package android {
field public static final java.lang.String READ_INSTALL_SESSIONS = "android.permission.READ_INSTALL_SESSIONS"; field public static final java.lang.String READ_INSTALL_SESSIONS = "android.permission.READ_INSTALL_SESSIONS";
field public static final java.lang.String READ_LOGS = "android.permission.READ_LOGS"; field public static final java.lang.String READ_LOGS = "android.permission.READ_LOGS";
field public static final java.lang.String READ_NETWORK_USAGE_HISTORY = "android.permission.READ_NETWORK_USAGE_HISTORY"; field public static final java.lang.String READ_NETWORK_USAGE_HISTORY = "android.permission.READ_NETWORK_USAGE_HISTORY";
field public static final java.lang.String READ_OEM_UNLOCK_STATE = "android.permission.READ_OEM_UNLOCK_STATE";
field public static final java.lang.String READ_PHONE_STATE = "android.permission.READ_PHONE_STATE"; field public static final java.lang.String READ_PHONE_STATE = "android.permission.READ_PHONE_STATE";
field public static final java.lang.String READ_PRIVILEGED_PHONE_STATE = "android.permission.READ_PRIVILEGED_PHONE_STATE"; field public static final java.lang.String READ_PRIVILEGED_PHONE_STATE = "android.permission.READ_PRIVILEGED_PHONE_STATE";
field public static final java.lang.String READ_SEARCH_INDEXABLES = "android.permission.READ_SEARCH_INDEXABLES"; field public static final java.lang.String READ_SEARCH_INDEXABLES = "android.permission.READ_SEARCH_INDEXABLES";

View File

@@ -1418,6 +1418,11 @@
<permission android:name="android.permission.DVB_DEVICE" <permission android:name="android.permission.DVB_DEVICE"
android:protectionLevel="signature|privileged" /> android:protectionLevel="signature|privileged" />
<!-- @SystemApi Allows reading the OEM unlock state
@hide <p>Not for use by third-party applications. -->
<permission android:name="android.permission.READ_OEM_UNLOCK_STATE"
android:protectionLevel="signature|privileged" />
<!-- @hide Allows enabling/disabling OEM unlock <!-- @hide Allows enabling/disabling OEM unlock
<p>Not for use by third-party applications. --> <p>Not for use by third-party applications. -->
<permission android:name="android.permission.OEM_UNLOCK_STATE" <permission android:name="android.permission.OEM_UNLOCK_STATE"

View File

@@ -126,10 +126,20 @@ public class PersistentDataBlockService extends SystemService {
SystemProperties.set(OEM_UNLOCK_PROP, enabled ? "1" : "0"); SystemProperties.set(OEM_UNLOCK_PROP, enabled ? "1" : "0");
} }
private void enforceOemUnlockPermission() { private void enforceOemUnlockReadPermission() {
if (mContext.checkCallingOrSelfPermission(Manifest.permission.READ_OEM_UNLOCK_STATE)
== PackageManager.PERMISSION_DENIED
&& mContext.checkCallingOrSelfPermission(Manifest.permission.OEM_UNLOCK_STATE)
== PackageManager.PERMISSION_DENIED) {
throw new SecurityException("Can't access OEM unlock state. Requires "
+ "READ_OEM_UNLOCK_STATE or OEM_UNLOCK_STATE permission.");
}
}
private void enforceOemUnlockWritePermission() {
mContext.enforceCallingOrSelfPermission( mContext.enforceCallingOrSelfPermission(
Manifest.permission.OEM_UNLOCK_STATE, Manifest.permission.OEM_UNLOCK_STATE,
"Can't access OEM unlock state"); "Can't modify OEM unlock state");
} }
private void enforceUid(int callingUid) { private void enforceUid(int callingUid) {
@@ -435,7 +445,7 @@ public class PersistentDataBlockService extends SystemService {
@Override @Override
public void wipe() { public void wipe() {
enforceOemUnlockPermission(); enforceOemUnlockWritePermission();
synchronized (mLock) { synchronized (mLock) {
int ret = nativeWipe(mDataBlockFile); int ret = nativeWipe(mDataBlockFile);
@@ -453,7 +463,7 @@ public class PersistentDataBlockService extends SystemService {
return; return;
} }
enforceOemUnlockPermission(); enforceOemUnlockWritePermission();
enforceIsAdmin(); enforceIsAdmin();
// Do not allow oem unlock modification if it has been disallowed. // Do not allow oem unlock modification if it has been disallowed.
@@ -472,13 +482,13 @@ public class PersistentDataBlockService extends SystemService {
@Override @Override
public boolean getOemUnlockEnabled() { public boolean getOemUnlockEnabled() {
enforceOemUnlockPermission(); enforceOemUnlockReadPermission();
return doGetOemUnlockEnabled(); return doGetOemUnlockEnabled();
} }
@Override @Override
public int getFlashLockState() { public int getFlashLockState() {
enforceOemUnlockPermission(); enforceOemUnlockReadPermission();
String locked = SystemProperties.get(FLASH_LOCK_PROP); String locked = SystemProperties.get(FLASH_LOCK_PROP);
switch (locked) { switch (locked) {
case FLASH_LOCK_LOCKED: case FLASH_LOCK_LOCKED: