summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2012-04-18 19:16:15 -0700
committerJeff Sharkey <jsharkey@android.com>2012-04-19 11:54:34 -0700
commit35be7560300a97fc3675bdd325910f28827d9508 (patch)
tree03b5e5fe2e4236661e55f46d24c2e388e7a98e07 /core
parent1b965941713a395dc8003cf8ee29a40f92dd77aa (diff)
downloadframeworks_base-35be7560300a97fc3675bdd325910f28827d9508.zip
frameworks_base-35be7560300a97fc3675bdd325910f28827d9508.tar.gz
frameworks_base-35be7560300a97fc3675bdd325910f28827d9508.tar.bz2
Move SystemUI out of system UID.
Add permissions for various things it pokes. Create new permission to control launching non-exported activities from recents. Hidden API to relax WallpaperService checks. Change-Id: I547fdcd7c213dd153ae101533ce7c56cd8f86a0d
Diffstat (limited to 'core')
-rw-r--r--core/java/android/service/wallpaper/WallpaperService.java10
-rw-r--r--core/res/AndroidManifest.xml8
-rwxr-xr-xcore/res/res/values/strings.xml5
3 files changed, 21 insertions, 2 deletions
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java
index 7ce96c0..6917fb2 100644
--- a/core/java/android/service/wallpaper/WallpaperService.java
+++ b/core/java/android/service/wallpaper/WallpaperService.java
@@ -140,6 +140,7 @@ public abstract class WallpaperService extends Service {
boolean mIsCreating;
boolean mDrawingAllowed;
boolean mOffsetsChanged;
+ boolean mFixedSizeAllowed;
int mWidth;
int mHeight;
int mFormat;
@@ -211,7 +212,7 @@ public abstract class WallpaperService extends Service {
@Override
public void setFixedSize(int width, int height) {
- if (Process.myUid() != Process.SYSTEM_UID) {
+ if (!mFixedSizeAllowed) {
// Regular apps can't do this. It can only work for
// certain designs of window animations, so you can't
// rely on it.
@@ -385,7 +386,12 @@ public abstract class WallpaperService extends Service {
updateSurface(false, false, false);
}
}
-
+
+ /** {@hide} */
+ public void setFixedSizeAllowed(boolean allowed) {
+ mFixedSizeAllowed = allowed;
+ }
+
/**
* Called once to initialize the engine. After returning, the
* engine's surface will be created by the framework.
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index f5c0f8f..b7ee2ec 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -737,6 +737,14 @@
android:label="@string/permlab_removeTasks"
android:description="@string/permdesc_removeTasks" />
+ <!-- Allows an application to start any activity, regardless of permission
+ protection or exported state. @hide -->
+ <permission android:name="android.permission.START_ANY_ACTIVITY"
+ android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
+ android:protectionLevel="signature"
+ android:label="@string/permlab_startAnyActivity"
+ android:description="@string/permdesc_startAnyActivity" />
+
<!-- @hide Change the screen compatibility mode of applications -->
<permission android:name="android.permission.SET_SCREEN_COMPATIBILITY"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index e00986c..7df24a2 100755
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -538,6 +538,11 @@
tasks and kill their apps. Malicious apps may disrupt
the behavior of other apps.</string>
+ <!-- Title of an application permission, allowing an application to start any activity, regardless of permission protection or exported state. -->
+ <string name="permlab_startAnyActivity">start any activity</string>
+ <!-- Description of an application permission, allowing an application to start any activity, regardless of permission protection or exported state. -->
+ <string name="permdesc_startAnyActivity">Allows the app to start any activity, regardless of permission protection or exported state.</string>
+
<!-- Title of an application permission, allowing control of app screen compatibility mode -->
<string name="permlab_setScreenCompatibility">set screen compatibility</string>
<!-- Description of an application permission, allowing control of app screen compatibility mode -->