diff options
| -rw-r--r-- | core/java/android/webkit/WebViewFactory.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/core/java/android/webkit/WebViewFactory.java b/core/java/android/webkit/WebViewFactory.java index 10344792eee2..c53a0e158dea 100644 --- a/core/java/android/webkit/WebViewFactory.java +++ b/core/java/android/webkit/WebViewFactory.java @@ -36,6 +36,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemClock; import android.os.Trace; +import android.os.UserHandle; import android.text.TextUtils; import android.util.AndroidRuntimeException; import android.util.ArraySet; @@ -339,10 +340,10 @@ public final class WebViewFactory { if (sProviderInstance != null) return sProviderInstance; sTimestamps.mWebViewLoadStart = SystemClock.uptimeMillis(); - final int uid = android.os.Process.myUid(); - if (uid == android.os.Process.ROOT_UID || uid == android.os.Process.SYSTEM_UID - || uid == android.os.Process.PHONE_UID || uid == android.os.Process.NFC_UID - || uid == android.os.Process.BLUETOOTH_UID) { + final int appId = UserHandle.getAppId(android.os.Process.myUid()); + if (appId == android.os.Process.ROOT_UID || appId == android.os.Process.SYSTEM_UID + || appId == android.os.Process.PHONE_UID || appId == android.os.Process.NFC_UID + || appId == android.os.Process.BLUETOOTH_UID) { throw new UnsupportedOperationException( "For security reasons, WebView is not allowed in privileged processes"); } |