diff options
-rw-r--r-- | Android.mk | 6 | ||||
-rw-r--r-- | AndroidManifest.xml | 65 | ||||
-rw-r--r-- | proguard.flags | 2 | ||||
-rw-r--r-- | res/xml/settings_headers.xml | 7 | ||||
-rw-r--r-- | src/com/android/settings/cyanogenmod/superuser/MultitaskSuRequestActivity.java | 4 | ||||
-rw-r--r-- | src/com/android/settings/cyanogenmod/superuser/NotifyActivity.java | 4 | ||||
-rw-r--r-- | src/com/android/settings/cyanogenmod/superuser/PolicyNativeFragment.java | 4 | ||||
-rw-r--r-- | src/com/android/settings/cyanogenmod/superuser/RequestActivity.java | 4 | ||||
-rw-r--r-- | src/com/android/settings/cyanogenmod/superuser/SuReceiver.java | 4 |
9 files changed, 100 insertions, 0 deletions
@@ -13,6 +13,12 @@ LOCAL_CERTIFICATE := platform LOCAL_PROGUARD_FLAG_FILES := proguard.flags +LOCAL_AAPT_INCLUDE_ALL_RESOURCES := true +LOCAL_AAPT_FLAGS := --extra-packages com.koushikdutta.superuser:com.koushikdutta.widgets --auto-add-overlay + +LOCAL_SRC_FILES += $(call all-java-files-under,../../../external/koush/Superuser/Superuser/src) $(call all-java-files-under,../../../external/koush/Widgets/Widgets/src) +LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res $(LOCAL_PATH)/../../../external/koush/Widgets/Widgets/res $(LOCAL_PATH)/../../../external/koush/Superuser/Superuser/res + include $(BUILD_PACKAGE) # Use the folloing include to make our test apk. diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 72be71b..976bc6b 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -64,6 +64,29 @@ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.SET_TIME" /> + <permission + android:name="android.permission.REQUEST_SUPERUSER" + android:protectionLevel="signature" /> + <permission + android:name="android.permission.REPORT_SUPERUSER" + android:protectionLevel="signature" /> + + <permission-group + android:name="android.permission-group.SUPERUSER" + android:description="@string/superuser_description_more" + android:icon="@drawable/ic_action_permission" + android:label="@string/superuser" + android:priority="10000" /> + + <permission + android:name="android.permission.ACCESS_SUPERUSER" + android:description="@string/superuser_description_more" + android:icon="@drawable/ic_action_permission" + android:label="@string/superuser_description" + android:logo="@drawable/ic_action_permission" + android:permissionGroup="android.permission-group.SUPERUSER" + android:protectionLevel="dangerous" /> + <application android:label="@string/settings_label" android:icon="@mipmap/ic_launcher_settings" android:taskAffinity="" @@ -72,6 +95,48 @@ android:hardwareAccelerated="true" android:supportsRtl="true"> + <!-- Only system/su can open this activity --> + <!-- This activity will then call the MultitaskSuRequestActivity to create a new task stack --> + <activity + android:name=".cyanogenmod.superuser.RequestActivity" + android:configChanges="keyboardHidden|orientation|screenSize" + android:label="@string/superuser" + android:launchMode="singleTask" + android:excludeFromRecents="true" + android:permission="android.permission.REQUEST_SUPERUSER" + android:process=":superuser" + android:taskAffinity="com.android.settings.superuser" + android:theme="@style/RequestThemeDark" /> + <!-- Only system/su can open this activity --> + <!-- This is activity is started in multiuser mode when the user invoking su --> + <!-- is not the device owner (user id 0). --> + <activity + android:name=".cyanogenmod.superuser.NotifyActivity" + android:configChanges="keyboardHidden|orientation|screenSize" + android:label="@string/superuser" + android:launchMode="singleTask" + android:excludeFromRecents="true" + android:permission="android.permission.REQUEST_SUPERUSER" + android:process=":superuser" + android:taskAffinity="com.android.settings.superuser" + android:theme="@style/RequestThemeDark" /> + + <!-- Multiple instances of this activity can be running for multiple su requests --> + <activity + android:name=".cyanogenmod.superuser.MultitaskSuRequestActivity" + android:configChanges="keyboardHidden|orientation|screenSize" + android:excludeFromRecents="true" + android:exported="false" + android:label="@string/request" + android:process=":superuser" + android:taskAffinity="com.android.settings.superuser" + android:theme="@style/RequestThemeDark" /> + + <receiver + android:name=".cyanogenmod.superuser.SuReceiver" + android:permission="android.permission.REPORT_SUPERUSER" /> + + <!-- Settings --> <activity android:name="Settings" diff --git a/proguard.flags b/proguard.flags index 0805d68..2022452 100644 --- a/proguard.flags +++ b/proguard.flags @@ -12,6 +12,8 @@ -keep class com.android.settings.accounts.* -keep class com.android.settings.fuelgauge.* -keep class com.android.settings.users.* +-keep class com.koushikdutta.** +-keep class com.android.settings.cyanogenmod.superuser.** # Keep click responders -keepclassmembers class com.android.settings.inputmethod.UserDictionaryAddWordActivity { diff --git a/res/xml/settings_headers.xml b/res/xml/settings_headers.xml index 156d63f..3b3e0c1 100644 --- a/res/xml/settings_headers.xml +++ b/res/xml/settings_headers.xml @@ -213,6 +213,13 @@ <header android:id="@+id/system_section" android:title="@string/header_category_system" /> + <!-- Superuser --> + <header + android:id="@+id/superuser" + android:fragment="com.android.settings.cyanogenmod.superuser.PolicyNativeFragment" + android:icon="@drawable/ic_action_permission" + android:title="@string/superuser" /> + <!-- Date & Time --> <header android:id="@+id/date_time_settings" diff --git a/src/com/android/settings/cyanogenmod/superuser/MultitaskSuRequestActivity.java b/src/com/android/settings/cyanogenmod/superuser/MultitaskSuRequestActivity.java new file mode 100644 index 0000000..0103076 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/superuser/MultitaskSuRequestActivity.java @@ -0,0 +1,4 @@ +package com.android.settings.cyanogenmod.superuser; + +public class MultitaskSuRequestActivity extends com.koushikdutta.superuser.MultitaskSuRequestActivity { +}
\ No newline at end of file diff --git a/src/com/android/settings/cyanogenmod/superuser/NotifyActivity.java b/src/com/android/settings/cyanogenmod/superuser/NotifyActivity.java new file mode 100644 index 0000000..23aa6a7 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/superuser/NotifyActivity.java @@ -0,0 +1,4 @@ +package com.android.settings.cyanogenmod.superuser; + +public class NotifyActivity extends com.koushikdutta.superuser.NotifyActivity { +}
\ No newline at end of file diff --git a/src/com/android/settings/cyanogenmod/superuser/PolicyNativeFragment.java b/src/com/android/settings/cyanogenmod/superuser/PolicyNativeFragment.java new file mode 100644 index 0000000..1c74543 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/superuser/PolicyNativeFragment.java @@ -0,0 +1,4 @@ +package com.android.settings.cyanogenmod.superuser; + +public class PolicyNativeFragment extends com.koushikdutta.superuser.PolicyNativeFragment { +}
\ No newline at end of file diff --git a/src/com/android/settings/cyanogenmod/superuser/RequestActivity.java b/src/com/android/settings/cyanogenmod/superuser/RequestActivity.java new file mode 100644 index 0000000..e6deca4 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/superuser/RequestActivity.java @@ -0,0 +1,4 @@ +package com.android.settings.cyanogenmod.superuser; + +public class RequestActivity extends com.koushikdutta.superuser.RequestActivity { +}
\ No newline at end of file diff --git a/src/com/android/settings/cyanogenmod/superuser/SuReceiver.java b/src/com/android/settings/cyanogenmod/superuser/SuReceiver.java new file mode 100644 index 0000000..c4f9174 --- /dev/null +++ b/src/com/android/settings/cyanogenmod/superuser/SuReceiver.java @@ -0,0 +1,4 @@ +package com.android.settings.cyanogenmod.superuser; + +public class SuReceiver extends com.koushikdutta.superuser.SuReceiver { +}
\ No newline at end of file |