diff options
author | Dianne Hackborn <hackbod@google.com> | 2013-02-11 10:52:46 -0800 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2013-02-11 15:33:48 -0800 |
commit | 514074fae81028937eda29e782c92e8ea78d85d2 (patch) | |
tree | 063f29c329837834d3f60400899ea883322fa02e /packages/Shell | |
parent | de1fadfb7f70d464382e518c7f3390faf82f81f2 (diff) | |
download | frameworks_base-514074fae81028937eda29e782c92e8ea78d85d2.zip frameworks_base-514074fae81028937eda29e782c92e8ea78d85d2.tar.gz frameworks_base-514074fae81028937eda29e782c92e8ea78d85d2.tar.bz2 |
App ops: cleanup, handle root and shell, perms.
Rework how the shell user is defined so that it is
associated with an actual apk, instead of being a free
roaming uid with special permissions assigned to it.
This allows us to correctly account for its operations
in app ops.
Implement a special case for the root user in app ops --
it is always allowed, always with the package name "root".
Add various code to take care of cleaning up package state
from app ops -- when packages are uninstalled, and during
boot if any packages currently being stored no longer exist.
Also fix a bug in the activity manager to correctly grant
permissions in all cases when onNewIntent() is being called.
Change-Id: Iae9f6d793ee48b93518c984ad957e46ae4582581
Diffstat (limited to 'packages/Shell')
-rw-r--r-- | packages/Shell/Android.mk | 11 | ||||
-rw-r--r-- | packages/Shell/AndroidManifest.xml | 74 | ||||
-rw-r--r-- | packages/Shell/res/values/strings.xml | 19 |
3 files changed, 104 insertions, 0 deletions
diff --git a/packages/Shell/Android.mk b/packages/Shell/Android.mk new file mode 100644 index 0000000..f993ab5 --- /dev/null +++ b/packages/Shell/Android.mk @@ -0,0 +1,11 @@ +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := optional + +LOCAL_SRC_FILES := $(call all-subdir-java-files) + +LOCAL_PACKAGE_NAME := Shell +LOCAL_CERTIFICATE := platform + +include $(BUILD_PACKAGE) diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml new file mode 100644 index 0000000..b42db45 --- /dev/null +++ b/packages/Shell/AndroidManifest.xml @@ -0,0 +1,74 @@ +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.android.shell" + coreApp="true" + android:sharedUserId="android.uid.shell" + > + + <!-- Standard permissions granted to the shell. --> + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> + <uses-permission android:name="android.permission.SEND_SMS" /> + <uses-permission android:name="android.permission.CALL_PHONE" /> + <uses-permission android:name="android.permission.READ_CONTACTS" /> + <uses-permission android:name="android.permission.WRITE_CONTACTS" /> + <uses-permission android:name="android.permission.READ_CALENDAR" /> + <uses-permission android:name="android.permission.WRITE_CALENDAR" /> + <uses-permission android:name="android.permission.READ_USER_DICTIONARY" /> + <uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" /> + <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> + <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> + <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> + <uses-permission android:name="android.permission.BLUETOOTH" /> + <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" /> + <!-- System tool permissions granted to the shell. --> + <uses-permission android:name="android.permission.GET_TASKS" /> + <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /> + <uses-permission android:name="android.permission.REORDER_TASKS" /> + <uses-permission android:name="android.permission.SET_ANIMATION_SCALE" /> + <uses-permission android:name="android.permission.SET_PREFERRED_APPLICATIONS" /> + <uses-permission android:name="android.permission.WRITE_SETTINGS" /> + <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> + <uses-permission android:name="android.permission.BROADCAST_STICKY" /> + <!-- Development tool permissions granted to the shell. --> + <uses-permission android:name="android.permission.SET_DEBUG_APP" /> + <uses-permission android:name="android.permission.SET_PROCESS_LIMIT" /> + <uses-permission android:name="android.permission.SET_ALWAYS_FINISH" /> + <uses-permission android:name="android.permission.DUMP" /> + <uses-permission android:name="android.permission.SIGNAL_PERSISTENT_PROCESSES" /> + <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" /> + <!-- Internal permissions granted to the shell. --> + <uses-permission android:name="android.permission.FORCE_BACK" /> + <uses-permission android:name="android.permission.BATTERY_STATS" /> + <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" /> + <uses-permission android:name="android.permission.INJECT_EVENTS" /> + <uses-permission android:name="android.permission.RETRIEVE_WINDOW_CONTENT" /> + <uses-permission android:name="android.permission.SET_ACTIVITY_WATCHER" /> + <uses-permission android:name="android.permission.READ_INPUT_STATE" /> + <uses-permission android:name="android.permission.SET_ORIENTATION" /> + <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> + <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" /> + <uses-permission android:name="android.permission.DELETE_CACHE_FILES" /> + <uses-permission android:name="android.permission.DELETE_PACKAGES" /> + <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" /> + <uses-permission android:name="android.permission.READ_FRAME_BUFFER" /> + <uses-permission android:name="android.permission.DEVICE_POWER" /> + <uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER" /> + <uses-permission android:name="android.permission.BACKUP" /> + <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES" /> + <uses-permission android:name="android.permission.STOP_APP_SWITCHES" /> + <uses-permission android:name="android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY" /> + <uses-permission android:name="android.permission.GRANT_REVOKE_PERMISSIONS" /> + <uses-permission android:name="android.permission.SET_KEYBOARD_LAYOUT" /> + <uses-permission android:name="android.permission.GET_DETAILED_TASKS" /> + <uses-permission android:name="android.permission.SET_SCREEN_COMPATIBILITY" /> + <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> + <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> + <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /> + <uses-permission android:name="android.permission.MANAGE_USERS" /> + <uses-permission android:name="android.permission.BLUETOOTH_STACK" /> + + <application android:hasCode="false" android:label="@string/app_label"> + </application> +</manifest> diff --git a/packages/Shell/res/values/strings.xml b/packages/Shell/res/values/strings.xml new file mode 100644 index 0000000..50610d5 --- /dev/null +++ b/packages/Shell/res/values/strings.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2013 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <string name="app_label">Shell</string> +</resources> |