diff options
author | Svetoslav <svetoslavganov@google.com> | 2015-03-02 16:21:35 -0800 |
---|---|---|
committer | Svetoslav <svetoslavganov@google.com> | 2015-03-02 16:24:18 -0800 |
commit | a8c6111a88df157240ea40e61f46df8366b1b945 (patch) | |
tree | 41fb40d840fdc125217fb8de2d993c2b14c8525c /cmds/content | |
parent | 7b91c55b3ff4857e904a11a0a67fcc86a32868b4 (diff) | |
download | frameworks_base-a8c6111a88df157240ea40e61f46df8366b1b945.zip frameworks_base-a8c6111a88df157240ea40e61f46df8366b1b945.tar.gz frameworks_base-a8c6111a88df157240ea40e61f46df8366b1b945.tar.bz2 |
Content and settings shell commands passing invalid calling package.
Change-Id: Ia80099ba0afba054b70511c0d95265ec303446e0
Diffstat (limited to 'cmds/content')
-rw-r--r-- | cmds/content/src/com/android/commands/content/Content.java | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/cmds/content/src/com/android/commands/content/Content.java b/cmds/content/src/com/android/commands/content/Content.java index bd34a9c..c0ed893 100644 --- a/cmds/content/src/com/android/commands/content/Content.java +++ b/cmds/content/src/com/android/commands/content/Content.java @@ -27,6 +27,7 @@ import android.os.Binder; import android.os.Bundle; import android.os.IBinder; import android.os.ParcelFileDescriptor; +import android.os.Process; import android.os.UserHandle; import android.text.TextUtils; @@ -426,6 +427,22 @@ public class Content { } } + public static String resolveCallingPackage() { + switch (Process.myUid()) { + case Process.ROOT_UID: { + return "root"; + } + + case Process.SHELL_UID: { + return "com.android.shell"; + } + + default: { + return null; + } + } + } + protected abstract void onExecute(IContentProvider provider) throws Exception; } @@ -439,7 +456,7 @@ public class Content { @Override public void onExecute(IContentProvider provider) throws Exception { - provider.insert(null, mUri, mContentValues); + provider.insert(resolveCallingPackage(), mUri, mContentValues); } } @@ -453,7 +470,7 @@ public class Content { @Override public void onExecute(IContentProvider provider) throws Exception { - provider.delete(null, mUri, mWhere, null); + provider.delete(resolveCallingPackage(), mUri, mWhere, null); } } @@ -532,7 +549,8 @@ public class Content { @Override public void onExecute(IContentProvider provider) throws Exception { - Cursor cursor = provider.query(null, mUri, mProjection, mWhere, null, mSortOrder, null); + Cursor cursor = provider.query(resolveCallingPackage(), mUri, mProjection, mWhere, + null, mSortOrder, null); if (cursor == null) { System.out.println("No result found."); return; @@ -594,7 +612,7 @@ public class Content { @Override public void onExecute(IContentProvider provider) throws Exception { - provider.update(null, mUri, mContentValues, mWhere, null); + provider.update(resolveCallingPackage(), mUri, mContentValues, mWhere, null); } } |