├── .gitignore ├── Android.mk ├── LICENSE ├── README.md ├── Superuser ├── .classpath ├── .project ├── Android.mk ├── AndroidManifest.xml ├── Superuser-Superuser.iml ├── Superuser.iml ├── assets │ ├── armeabi │ ├── install-recovery.sh │ ├── mips │ ├── update-binary │ └── x86 ├── build.gradle ├── build.xml ├── jni │ ├── Android.mk │ ├── Application.mk │ ├── reboot │ │ └── reboot.c │ ├── sqlite3 │ │ ├── shell.c │ │ ├── sqlite3.c │ │ ├── sqlite3.h │ │ └── sqlite3ext.h │ └── su │ │ ├── activity.c │ │ ├── daemon.c │ │ ├── db.c │ │ ├── pts.c │ │ ├── pts.h │ │ ├── su.c │ │ ├── su.h │ │ ├── utils.c │ │ └── utils.h ├── lint.xml ├── proguard-project.txt ├── project.properties ├── res │ ├── drawable-hdpi-v11 │ │ └── ic_stat_notification.png │ ├── drawable-hdpi-v9 │ │ └── ic_stat_notification.png │ ├── drawable-hdpi │ │ ├── ic_action_about.png │ │ ├── ic_action_logs.png │ │ ├── ic_action_permission.png │ │ ├── ic_action_settings.png │ │ ├── ic_action_trash.png │ │ ├── ic_alert.png │ │ ├── ic_alert_dark.png │ │ ├── ic_allow.png │ │ ├── ic_declare.png │ │ ├── ic_declare_dark.png │ │ ├── ic_delete.png │ │ ├── ic_deny.png │ │ ├── ic_launcher.png │ │ ├── ic_logging.png │ │ ├── ic_logging_dark.png │ │ ├── ic_menu_about.png │ │ ├── ic_menu_logs.png │ │ ├── ic_menu_settings.png │ │ ├── ic_menu_trash.png │ │ ├── ic_notifications.png │ │ ├── ic_notifications_dark.png │ │ ├── ic_protected.png │ │ ├── ic_protected_dark.png │ │ ├── ic_stat_notification.png │ │ ├── ic_theme.png │ │ ├── ic_theme_dark.png │ │ ├── ic_timeout.png │ │ ├── ic_timeout_dark.png │ │ ├── ic_toggle.png │ │ ├── ic_toggle_dark.png │ │ ├── ic_users.png │ │ └── ic_users_dark.png │ ├── drawable-ldpi-v11 │ │ └── ic_stat_notification.png │ ├── drawable-ldpi-v9 │ │ └── ic_stat_notification.png │ ├── drawable-mdpi-v11 │ │ └── ic_stat_notification.png │ ├── drawable-mdpi-v9 │ │ └── ic_stat_notification.png │ ├── drawable-mdpi │ │ ├── ic_action_about.png │ │ ├── ic_action_logs.png │ │ ├── ic_action_permission.png │ │ ├── ic_action_settings.png │ │ ├── ic_action_trash.png │ │ ├── ic_alert.png │ │ ├── ic_alert_dark.png │ │ ├── ic_allow.png │ │ ├── ic_declare.png │ │ ├── ic_declare_dark.png │ │ ├── ic_delete.png │ │ ├── ic_deny.png │ │ ├── ic_launcher.png │ │ ├── ic_logging.png │ │ ├── ic_logging_dark.png │ │ ├── ic_menu_about.png │ │ ├── ic_menu_logs.png │ │ ├── ic_menu_settings.png │ │ ├── ic_menu_trash.png │ │ ├── ic_notifications.png │ │ ├── ic_notifications_dark.png │ │ ├── ic_protected.png │ │ ├── ic_protected_dark.png │ │ ├── ic_stat_notification.png │ │ ├── ic_theme.png │ │ ├── ic_theme_dark.png │ │ ├── ic_timeout.png │ │ ├── ic_timeout_dark.png │ │ ├── ic_toggle.png │ │ ├── ic_toggle_dark.png │ │ ├── ic_users.png │ │ └── ic_users_dark.png │ ├── drawable-xhdpi-v11 │ │ └── ic_stat_notification.png │ ├── drawable-xhdpi-v9 │ │ └── ic_stat_notification.png │ ├── drawable-xhdpi │ │ ├── ic_action_about.png │ │ ├── ic_action_logs.png │ │ ├── ic_action_permission.png │ │ ├── ic_action_settings.png │ │ ├── ic_action_trash.png │ │ ├── ic_alert.png │ │ ├── ic_alert_dark.png │ │ ├── ic_allow.png │ │ ├── ic_declare.png │ │ ├── ic_declare_dark.png │ │ ├── ic_delete.png │ │ ├── ic_deny.png │ │ ├── ic_launcher.png │ │ ├── ic_logging.png │ │ ├── ic_logging_dark.png │ │ ├── ic_menu_about.png │ │ ├── ic_menu_logs.png │ │ ├── ic_menu_settings.png │ │ ├── ic_menu_trash.png │ │ ├── ic_notifications.png │ │ ├── ic_notifications_dark.png │ │ ├── ic_protected.png │ │ ├── ic_protected_dark.png │ │ ├── ic_stat_notification.png │ │ ├── ic_theme.png │ │ ├── ic_theme_dark.png │ │ ├── ic_timeout.png │ │ ├── ic_timeout_dark.png │ │ ├── ic_toggle.png │ │ ├── ic_toggle_dark.png │ │ ├── ic_users.png │ │ └── ic_users_dark.png │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ ├── drawable │ │ ├── carbon.png │ │ ├── clockwork512.png │ │ ├── desksms.png │ │ ├── github.png │ │ ├── koush.png │ │ └── tether.png │ ├── layout-land │ │ ├── app_info.xml │ │ ├── app_request.xml │ │ └── log_item.xml │ ├── layout-large-land │ │ └── policy_list_content.xml │ ├── layout-large │ │ ├── app_info.xml │ │ ├── app_request.xml │ │ ├── policy_info.xml │ │ └── policy_list_content.xml │ ├── layout-normal-land │ │ └── policy_info.xml │ ├── layout-v14 │ │ ├── log_toggle.xml │ │ └── notification_toggle.xml │ ├── layout │ │ ├── app_info.xml │ │ ├── app_layout.xml │ │ ├── app_request.xml │ │ ├── empty.xml │ │ ├── log_item.xml │ │ ├── log_item_base.xml │ │ ├── log_toggle.xml │ │ ├── notification_toggle.xml │ │ ├── notify.xml │ │ ├── packageinfo.xml │ │ ├── pin.xml │ │ ├── policy_header.xml │ │ ├── policy_info.xml │ │ ├── policy_list_content.xml │ │ ├── request.xml │ │ ├── request_choices.xml │ │ ├── request_spinner.xml │ │ ├── request_spinner_choice.xml │ │ ├── settings.xml │ │ └── unknown_app.xml │ ├── menu-v11 │ │ ├── app.xml │ │ ├── main.xml │ │ └── policy.xml │ ├── menu │ │ ├── app.xml │ │ ├── main.xml │ │ └── policy.xml │ ├── values-af │ │ └── strings.xml │ ├── values-ar │ │ └── strings.xml │ ├── values-ca │ │ └── strings.xml │ ├── values-cs │ │ └── strings.xml │ ├── values-da │ │ └── strings.xml │ ├── values-de │ │ └── strings.xml │ ├── values-el │ │ └── strings.xml │ ├── values-es-rXA │ │ └── strings.xml │ ├── values-es │ │ └── strings.xml │ ├── values-fi │ │ └── strings.xml │ ├── values-fr │ │ └── strings.xml │ ├── values-gl │ │ └── strings.xml │ ├── values-hr │ │ └── strings.xml │ ├── values-hu │ │ └── strings.xml │ ├── values-it │ │ └── strings.xml │ ├── values-iw │ │ └── strings.xml │ ├── values-ja │ │ └── strings.xml │ ├── values-large-v14 │ │ └── styles.xml │ ├── values-lt │ │ └── strings.xml │ ├── values-nl │ │ └── strings.xml │ ├── values-pl │ │ └── strings.xml │ ├── values-pt-rBR │ │ └── strings.xml │ ├── values-pt-rPT │ │ └── strings.xml │ ├── values-pt │ │ └── strings.xml │ ├── values-ro │ │ └── strings.xml │ ├── values-ru │ │ └── strings.xml │ ├── values-sk │ │ └── strings.xml │ ├── values-sr │ │ └── strings.xml │ ├── values-sv │ │ └── strings.xml │ ├── values-sw600dp │ │ └── dimens.xml │ ├── values-sw720dp-land │ │ └── dimens.xml │ ├── values-tr │ │ └── strings.xml │ ├── values-v14 │ │ └── styles.xml │ ├── values-zh-rCN │ │ └── strings.xml │ ├── values-zh-rHK │ │ └── strings.xml │ ├── values-zh-rSG │ │ └── strings.xml │ ├── values-zh-rTW │ │ └── strings.xml │ ├── values-zh │ │ └── strings.xml │ └── values │ │ ├── attrs.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml └── src │ └── com │ └── koushikdutta │ └── superuser │ ├── AboutFragment.java │ ├── Helper.java │ ├── LogFragment.java │ ├── MainActivity.java │ ├── MultitaskSuRequestActivity.java │ ├── NotifyActivity.java │ ├── PackageChangeReceiver.java │ ├── PinViewHelper.java │ ├── PolicyFragment.java │ ├── RequestActivity.java │ ├── SettingsFragment.java │ ├── SuApplication.java │ ├── SuCheckerReceiver.java │ ├── SuReceiver.java │ ├── db │ ├── LogEntry.java │ ├── SuDatabaseHelper.java │ ├── SuperuserDatabaseHelper.java │ ├── UidCommand.java │ └── UidPolicy.java │ └── util │ ├── ImageCache.java │ ├── Settings.java │ ├── SoftReferenceHashTable.java │ ├── StreamUtility.java │ └── SuHelper.java ├── init.superuser.rc └── local_manifest.xml /.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | armeabi 3 | x86 4 | obj 5 | local.properties 6 | gen 7 | .DS_Store 8 | .settings 9 | libs 10 | build 11 | -------------------------------------------------------------------------------- /Android.mk: -------------------------------------------------------------------------------- 1 | # Root AOSP source makefile 2 | # su is built here, and 3 | 4 | my_path := $(call my-dir) 5 | 6 | ifdef SUPERUSER_EMBEDDED 7 | SUPERUSER_PACKAGE := com.android.settings 8 | else 9 | ifeq ($(SUPERUSER_PACKAGE),) 10 | SUPERUSER_PACKAGE := com.thirdparty.superuser 11 | endif 12 | include $(my_path)/Superuser/Android.mk 13 | endif 14 | 15 | 16 | LOCAL_PATH := $(my_path) 17 | include $(CLEAR_VARS) 18 | 19 | LOCAL_MODULE := su 20 | LOCAL_MODULE_TAGS := eng debug optional 21 | LOCAL_FORCE_STATIC_EXECUTABLE := true 22 | LOCAL_STATIC_LIBRARIES := libc libcutils 23 | LOCAL_C_INCLUDES := external/sqlite/dist 24 | LOCAL_SRC_FILES := Superuser/jni/su/su.c Superuser/jni/su/daemon.c Superuser/jni/su/activity.c Superuser/jni/su/db.c Superuser/jni/su/utils.c Superuser/jni/su/pts.c ../../sqlite/dist/sqlite3.c 25 | LOCAL_CFLAGS := -DSQLITE_OMIT_LOAD_EXTENSION -DREQUESTOR=\"$(SUPERUSER_PACKAGE)\" 26 | 27 | ifdef SUPERUSER_PACKAGE_PREFIX 28 | LOCAL_CFLAGS += -DREQUESTOR_PREFIX=\"$(SUPERUSER_PACKAGE_PREFIX)\" 29 | endif 30 | 31 | ifdef SUPERUSER_EMBEDDED 32 | LOCAL_CFLAGS += -DSUPERUSER_EMBEDDED 33 | endif 34 | 35 | LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) 36 | include $(BUILD_EXECUTABLE) 37 | 38 | 39 | SYMLINKS := $(addprefix $(TARGET_OUT)/bin/,su) 40 | $(SYMLINKS): 41 | @echo "Symlink: $@ -> /system/xbin/su" 42 | @mkdir -p $(dir $@) 43 | @rm -rf $@ 44 | $(hide) ln -sf ../xbin/su $@ 45 | 46 | ALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS) 47 | 48 | # We need this so that the installed files could be picked up based on the 49 | # local module name 50 | ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \ 51 | $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS) 52 | 53 | ifdef SUPERUSER_EMBEDDED 54 | 55 | # make sure init.superuser.rc is imported from 56 | # init.rc or similar 57 | 58 | SUPERUSER_RC := $(TARGET_ROOT_OUT)/init.superuser.rc 59 | $(SUPERUSER_RC): $(LOCAL_PATH)/init.superuser.rc | $(ACP) 60 | $(copy-file-to-new-target) 61 | 62 | SUPERUSER_MARKER := $(TARGET_OUT_ETC)/.has_su_daemon 63 | $(SUPERUSER_MARKER): $(LOCAL_INSTALLED_MODULE) 64 | @mkdir -p $(dir $@) 65 | @rm -rf $@ 66 | $(hide) touch $@ 67 | 68 | ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \ 69 | $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SUPERUSER_RC) $(SUPERUSER_MARKER) 70 | 71 | endif 72 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2013 Koushik Dutta (2013) 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Why another Superuser? 2 | * Superuser should be open source. It's the gateway to root on your device. It must be open for independent security analysis. Obscurity (closed source) is not security. 3 | * Superuser should be NDK buildable. No internal Android references. 4 | * Superuser should also be AOSP buildable for those that want to embed it in their ROM. 5 | * Superuser should also be AOSP _embeddable_, meaning a ROM can easily embed it into their Settings app. 6 | * Maintenance and updates on both the market and source repositories should be timely. 7 | * I want to be able to point users of my app to a Superuser solution that I wrote, that I know works, and that I can fix if something is wrong. 8 | * Handle multiuser (4.2+) properly 9 | * Handle concurrent su requests properly 10 | 11 | ## Translations 12 | 13 | Translations are very much appreciated, but please do not submit translations on Github! Instead, use the review submission process on [CyanogenMod's gerrit instance](http://review.cyanogenmod.org/#/q/status:open,n,z). 14 | 15 | 16 | 17 | ## Checking out the source 18 | 19 | You'll need the "Widgets" dependency. 20 | 21 | * $ mkdir /path/to/src 22 | * $ cd /path/to/src 23 | * $ git clone git://github.com/koush/Superuser 24 | * $ git clone git://github.com/koush/Widgets 25 | 26 | These repositories do not keep the actual projects in the top level directory. 27 | This is because they contain tests, libs, and samples. 28 | 29 | Make sure the SDK Platform for API 19 is installed, through the Android SDK Manager. Install NDK Revision 9b from [here](http://developer.android.com/tools/sdk/ndk/index.html). 30 | 31 | ## Eclipse 32 | 33 | In Eclipse, import Widgets/Widgets and Superuser/Superuser. It should Just Work (TM). 34 | 35 | ## Ant 36 | 37 | * $ mkdir /path/to/src 38 | * $ cd /path/to/src 39 | * $ cd Superuser/Superuser 40 | 41 | In this directory, create a file called local.properties. This file is used by ant for custom properties. You need to specify the location of the ndk directory and your keystore parameters: 42 | 43 | ``` 44 | ndk.dir=/Users/koush/src/android-ndk 45 | key.store=/Users/koush/.keystore 46 | key.alias=mykey 47 | ``` 48 | 49 | If you do not have a release key yet, [create one using keytool](http://developer.android.com/tools/publishing/app-signing.html). 50 | 51 | Set up your SDK path (this is the directory containing platform-tools/, tools/, etc.): 52 | 53 | * $ export ANDROID_HOME=/Users/koush/src/sdk 54 | 55 | Then you can build: 56 | 57 | * $ ant release 58 | 59 | Outputs: 60 | * bin/update.zip - Recovery installable zip 61 | * bin/Superuser-release.apk - Superuser Android app 62 | * libs/armeabi/su - ARM su binary 63 | * libs/x86/su - x86 su binary 64 | * libs/mips/su - MIPS su binary 65 | 66 | ## Building the su binary 67 | 68 | You can use ant as shown above, to build the binary, but it can also be built without building the APK. 69 | 70 | Make sure you have the android-ndk downloaded with the tool "ndk-build" in your path. 71 | 72 | * $ cd /path/to/src/ 73 | * $ cd Superuser/Superuser 74 | * $ ndk-build 75 | 76 | The su binary will built into Superuser/Superuser/libs/armeabi/su. 77 | 78 | 79 | 80 | ## Building with AOSP, CyanogenMod, etc 81 | 82 | ROM developers are welcome to distribute the official Superuser APK and binary that I publish. That will 83 | allow them to receive updates with Google Play. However, you can also build Superuser as part of your 84 | build, if you choose to. 85 | 86 | There are two ways to include Superuser in your build. The easiest is to build the APK as a separate app. 87 | To do that, simply add the local_manifest.xml as described below. The second way is by embedding it 88 | into the native Android System Settings. 89 | 90 | #### Repo Setup 91 | Add the [local_manifest.xml](https://github.com/koush/Superuser/blob/master/local_manifest.xml) to your .repo/local_manifests 92 | 93 | #### Configuring the Package Name 94 | The Superuser distributed on Google Play is in the package name com.koushikdutta.superuser. 95 | To prevent conflicts with the Play store version, the build process changes the package 96 | name to com.thirdparty.superuser. You can configure this value by setting the following 97 | in your vendor makefile or BoardConfig: 98 | 99 | ``` 100 | SUPERUSER_PACKAGE := com.mypackagename.superuser 101 | ``` 102 | 103 | #### Advanced - Embedding Superuser into System Settings 104 | 105 | You will not need to change the package name as described above. Superuser will simply go 106 | into the com.android.settings package. 107 | 108 | First, in a product makefile (like vendor/cm/config/common.mk), specify the following: 109 | 110 | ``` 111 | SUPERUSER_EMBEDDED := true 112 | ``` 113 | 114 | To modify packages/apps/Settings, you will need this [patch](http://review.cyanogenmod.org/#/c/32957/2//COMMIT_MSG,unified). 115 | The patch simply references the sources checked out to external/koush and makes changes 116 | to XML preference files and the AndroidManifest.xml. It is a very minimal change. 117 | 118 | -------------------------------------------------------------------------------- /Superuser/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Superuser/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | Superuser 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /Superuser/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 5 | LOCAL_PACKAGE_NAME := Superuser 6 | LOCAL_SRC_FILES := $(call all-java-files-under,src) $(call all-java-files-under,../../Widgets/Widgets/src) 7 | 8 | LOCAL_AAPT_INCLUDE_ALL_RESOURCES := true 9 | LOCAL_AAPT_FLAGS := --extra-packages com.koushikdutta.widgets -S $(LOCAL_PATH)/../../Widgets/Widgets/res --auto-add-overlay --rename-manifest-package $(SUPERUSER_PACKAGE) 10 | 11 | include $(BUILD_PACKAGE) 12 | -------------------------------------------------------------------------------- /Superuser/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 13 | 14 | 20 | 21 | 29 | 30 | 31 | 32 | 33 | 40 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 62 | 63 | 64 | 65 | 75 | 76 | 77 | 86 | 87 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /Superuser/Superuser.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Superuser/assets/armeabi: -------------------------------------------------------------------------------- 1 | ../libs/armeabi/ -------------------------------------------------------------------------------- /Superuser/assets/install-recovery.sh: -------------------------------------------------------------------------------- 1 | #!/system/bin/sh 2 | /system/xbin/su --daemon & 3 | -------------------------------------------------------------------------------- /Superuser/assets/mips: -------------------------------------------------------------------------------- 1 | ../libs/mips -------------------------------------------------------------------------------- /Superuser/assets/update-binary: -------------------------------------------------------------------------------- 1 | #!/sbin/sh 2 | # arg 1 is recovery api version, generally 3. 3 | # arg 2 is the pipe fd, to the recovery binary. 4 | # communicate with it using the recovery api. 5 | # arg 3 is the zip file 6 | echo -n -e 'ui_print Installing Superuser...\n' > /proc/self/fd/$2 7 | echo -n -e 'ui_print\n' > /proc/self/fd/$2 8 | 9 | # detect binary versions to install 10 | ARCH=$(uname -m) 11 | 12 | # x86 needs to match: i486, i686, x86_64, ... 13 | if echo "$ARCH" | grep -q 86; then 14 | PLATFORM=x86 15 | elif [ "$ARCH" = "mips" -o "$ARCH" = "mips64" ]; then 16 | PLATFORM=mips 17 | else 18 | PLATFORM=armeabi 19 | fi 20 | 21 | cd /tmp 22 | mkdir superuser 23 | cd superuser 24 | unzip -o "$3" 25 | if [ "$?" -ne "0" ] 26 | then 27 | mkdir -p $PLATFORM 28 | cp /cache/su $PLATFORM/su 29 | cp /cache/Superuser.apk . 30 | cp /cache/install-recovery.sh . 31 | fi 32 | 33 | 34 | echo -n -e 'ui_print Installing '$PLATFORM' binaries...\n' > /proc/self/fd/$2 35 | echo -n -e 'ui_print\n' > /proc/self/fd/$2 36 | 37 | mount /system 38 | chattr -i /system/bin/su 39 | chattr -i /system/xbin/su 40 | rm -f /system/bin/su 41 | rm -f /system/xbin/su 42 | rm -f /system/app/Superuser.* 43 | rm -f /system/app/Supersu.* 44 | rm -f /system/app/superuser.* 45 | rm -f /system/app/supersu.* 46 | rm -f /system/app/SuperUser.* 47 | rm -f /system/app/SuperSU.* 48 | 49 | cp $PLATFORM/su /system/xbin/su 50 | chown 0:0 /system/xbin/su 51 | chmod 6755 /system/xbin/su 52 | ln -s /system/xbin/su /system/bin/su 53 | 54 | cp Superuser.apk /system/app 55 | chmod 644 /system/app/Superuser.apk 56 | 57 | # if the system is at least 4.3, and there is no su daemon built in, 58 | # let's try to install it using install-recovery.sh 59 | BUILD_VERSION_SDK="$(grep 'ro\.build\.version\.sdk' /system/build.prop)" 60 | BUILD_VERSION_SDK="${BUILD_VERSION_SDK##*=}" 61 | 62 | if [ "$BUILD_VERSION_SDK" -ge 18 ] 63 | then 64 | # check for rom su daemon before clobbering install-recovery.sh 65 | if [ ! -f "/system/etc/.has_su_daemon" ] 66 | then 67 | echo -n -e 'ui_print Installing Superuser daemon...\n' > /proc/self/fd/$2 68 | echo -n -e 'ui_print\n' > /proc/self/fd/$2 69 | chattr -i /system/etc/install-recovery.sh 70 | chattr -i /system/bin/install-recovery.sh 71 | cp install-recovery.sh /system/etc/install-recovery.sh 72 | cp install-recovery.sh /system/bin/install-recovery.sh 73 | chmod 755 /system/etc/install-recovery.sh 74 | chmod 755 /system/bin/install-recovery.sh 75 | # note that an post install su daemon was installed 76 | # so recovery doesn't freak out and recommend you disable 77 | # the install-recovery.sh execute bit. 78 | touch /system/etc/.installed_su_daemon 79 | fi 80 | fi 81 | 82 | umount /system -------------------------------------------------------------------------------- /Superuser/assets/x86: -------------------------------------------------------------------------------- 1 | ../libs/x86/ -------------------------------------------------------------------------------- /Superuser/build.gradle: -------------------------------------------------------------------------------- 1 | task wrapper(type: Wrapper) { 2 | gradleVersion = '1.6' 3 | } 4 | 5 | buildscript { 6 | repositories { 7 | mavenCentral() 8 | } 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:0.12.+' 11 | } 12 | } 13 | apply plugin: 'com.android.application' 14 | 15 | repositories { 16 | mavenCentral() 17 | } 18 | 19 | dependencies { 20 | compile project(':Widgets:Widgets') 21 | } 22 | 23 | android { 24 | packagingOptions { 25 | exclude 'META-INF/beans.xml' 26 | } 27 | 28 | sourceSets { 29 | main { 30 | manifest.srcFile 'AndroidManifest.xml' 31 | jniLibs.srcDirs = ['libs'] 32 | assets.srcDirs = ['assets/'] 33 | res.srcDirs = ['res/'] 34 | java.srcDirs = ['src/'] 35 | aidl.srcDirs = ['src/'] 36 | } 37 | } 38 | 39 | compileSdkVersion 21 40 | buildToolsVersion '20.0.0' 41 | 42 | defaultConfig { 43 | minSdkVersion 14 44 | targetSdkVersion 21 45 | } 46 | } 47 | 48 | // upload to maven task 49 | //if (System.getenv().I_AM_KOUSH == 'true') { 50 | // apply from: 'https://raw.github.com/koush/mvn-repo/master/maven.gradle' 51 | //} 52 | -------------------------------------------------------------------------------- /Superuser/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 29 | 30 | 31 | 35 | 36 | 37 | 38 | 39 | 40 | 49 | 50 | 51 | 52 | 56 | 57 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 124 | 125 | 126 | 127 | 128 | -------------------------------------------------------------------------------- /Superuser/jni/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | 5 | LOCAL_MODULE := su 6 | LOCAL_FORCE_STATIC_EXECUTABLE := true 7 | LOCAL_STATIC_LIBRARIES := sqlite3 libcutils libc 8 | LOCAL_C_INCLUDES := $(LOCAL_PATH)/sqlite3 9 | LOCAL_SRC_FILES := su/su.c su/activity.c su/db.c su/utils.c su/daemon.c su/pts.c 10 | include $(BUILD_EXECUTABLE) 11 | 12 | 13 | include $(CLEAR_VARS) 14 | 15 | LOCAL_MODULE := reboot 16 | LOCAL_LDFLAGS := -llog 17 | LOCAL_STATIC_LIBRARIES := sqlite3 18 | LOCAL_C_INCLUDES := $(LOCAL_PATH)/sqlite3 19 | LOCAL_SRC_FILES := reboot/reboot.c 20 | include $(BUILD_EXECUTABLE) 21 | 22 | 23 | include $(CLEAR_VARS) 24 | 25 | LOCAL_MODULE := sqlite3 26 | LOCAL_SRC_FILES := sqlite3/sqlite3.c 27 | LOCAL_CFLAGS := -DSQLITE_OMIT_LOAD_EXTENSION 28 | include $(BUILD_STATIC_LIBRARY) 29 | -------------------------------------------------------------------------------- /Superuser/jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_ABI := x86 armeabi mips 2 | # NDK_TOOLCHAIN_VERSION=4.8 3 | APP_PIE = true -------------------------------------------------------------------------------- /Superuser/jni/reboot/reboot.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2013, Kevin Cernekee 3 | ** 4 | ** This was reverse engineered from an HTC "reboot" binary and is an attempt 5 | ** to remain bug-compatible with the original. 6 | ** 7 | ** Licensed under the Apache License, Version 2.0 (the "License"); 8 | ** you may not use this file except in compliance with the License. 9 | ** You may obtain a copy of the License at 10 | ** 11 | ** http://www.apache.org/licenses/LICENSE-2.0 12 | ** 13 | ** Unless required by applicable law or agreed to in writing, software 14 | ** distributed under the License is distributed on an "AS IS" BASIS, 15 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | ** See the License for the specific language governing permissions and 17 | ** limitations under the License. 18 | */ 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | #include 25 | #include 26 | #include 27 | 28 | #define SETTINGS_DB "/data/data/com.android.providers.settings/databases/settings.db" 29 | #define SCREEN_LOCK_STATUS "/data/misc/screen_lock_status" 30 | 31 | int pattern_lock; 32 | 33 | int sqlcallback(void *private, int n_columns, char **col_values, char **col_names) 34 | { 35 | pattern_lock = 0; 36 | 37 | if (n_columns == 0 || !col_values[0]) 38 | return 0; 39 | 40 | if (!strcmp(col_values[0], "1")) 41 | pattern_lock = 1; 42 | 43 | __android_log_print(ANDROID_LOG_INFO, NULL, 44 | "sqlcallback %s = %s, pattern_locks= %d\n", 45 | col_names[0], col_values[0], pattern_lock); 46 | return 0; 47 | } 48 | 49 | int checkPatternLock(void) 50 | { 51 | sqlite3 *pDb = NULL; 52 | char *errmsg = NULL; 53 | 54 | if (sqlite3_open(SETTINGS_DB, &pDb) != 0) { 55 | __android_log_print(ANDROID_LOG_ERROR, NULL, 56 | "sqlite3_open error"); 57 | /* BUG? probably shouldn't call sqlite3_close() if open failed */ 58 | goto out; 59 | } 60 | 61 | if (sqlite3_exec(pDb, 62 | "select value from system where name= \"lock_pattern_autolock\"", 63 | sqlcallback, "checkPatternLock", &errmsg) != 0) { 64 | __android_log_print(ANDROID_LOG_ERROR, NULL, 65 | "SQL error: %s\n", errmsg); 66 | sqlite3_free(errmsg); 67 | goto out; 68 | } 69 | 70 | out: 71 | sqlite3_close(pDb); 72 | return 0; 73 | } 74 | 75 | int main(int argc, char **argv) 76 | { 77 | int no_sync = 0, power_off = 0; 78 | int ret; 79 | 80 | opterr = 0; 81 | while ((ret = getopt(argc, argv, "np")) != -1) { 82 | switch (ret) { 83 | case 'n': 84 | no_sync = 1; 85 | break; 86 | case 'p': 87 | power_off = 1; 88 | break; 89 | case '?': 90 | fprintf(stderr, "usage: %s [-n] [-p] [rebootcommand]\n", 91 | argv[0]); 92 | exit(1); 93 | break; 94 | } 95 | } 96 | 97 | if (argc > (optind + 1)) { 98 | fprintf(stderr, "%s: too many arguments\n", argv[0]); 99 | exit(1); 100 | } 101 | 102 | /* BUG: this should use optind */ 103 | if (argc > 1 && !strcmp(argv[1], "oem-78")) { 104 | /* HTC RUU mode: "reboot oem-78" */ 105 | 106 | FILE *f; 107 | char buf[5]; 108 | 109 | checkPatternLock(); 110 | f = fopen(SCREEN_LOCK_STATUS, "r"); 111 | if (!f) { 112 | fputs("5\n", stderr); 113 | exit(0); 114 | } 115 | fgets(buf, 5, f); 116 | if (atoi(buf) == 1) { 117 | if (pattern_lock != 0) { 118 | fputs("1\n", stderr); 119 | exit(0); 120 | } 121 | } 122 | fputs("0\n", stderr); 123 | } 124 | 125 | if (!no_sync) 126 | sync(); 127 | 128 | if (power_off) { 129 | ret = __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, 130 | LINUX_REBOOT_CMD_POWER_OFF, 0); 131 | } else if (optind >= argc) { 132 | ret = reboot(LINUX_REBOOT_CMD_RESTART); 133 | } else { 134 | ret = __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, 135 | LINUX_REBOOT_CMD_RESTART2, argv[optind]); 136 | } 137 | 138 | if (ret < 0) { 139 | perror("reboot"); 140 | exit(1); 141 | } else { 142 | fputs("reboot returned\n", stderr); 143 | exit(0); 144 | } 145 | } 146 | -------------------------------------------------------------------------------- /Superuser/jni/su/db.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2013, Koushik Dutta (@koush) 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | #include "su.h" 24 | 25 | struct callback_data_t { 26 | struct su_context *ctx; 27 | policy_t policy; 28 | }; 29 | 30 | static int database_callback(void *v, int argc, char **argv, char **azColName){ 31 | struct callback_data_t *data = (struct callback_data_t *)v; 32 | int command_match = 0; 33 | policy_t policy = DENY; 34 | int i; 35 | time_t until = 0; 36 | for(i = 0; i < argc; i++) { 37 | if (strcmp(azColName[i], "policy") == 0) { 38 | if (argv[i] == NULL) { 39 | policy = DENY; 40 | } 41 | if (strcmp(argv[i], "allow") == 0) { 42 | policy = ALLOW; 43 | } 44 | else if (strcmp(argv[i], "interactive") == 0) { 45 | policy = INTERACTIVE; 46 | } 47 | else { 48 | policy = DENY; 49 | } 50 | } 51 | else if (strcmp(azColName[i], "command") == 0) { 52 | // null or empty command means to match all commands (whitelist all from uid) 53 | command_match = argv[i] == NULL || strlen(argv[i]) == 0 || strcmp(argv[i], get_command(&(data->ctx->to))) == 0; 54 | } 55 | else if (strcmp(azColName[i], "until") == 0) { 56 | if (argv[i] != NULL) { 57 | until = atoi(argv[i]); 58 | } 59 | } 60 | } 61 | 62 | // check for command match 63 | if (command_match) { 64 | // also make sure this policy has not expired 65 | if (until == 0 || until > time(NULL)) { 66 | if (policy == DENY) { 67 | data->policy = DENY; 68 | return -1; 69 | } 70 | 71 | data->policy = ALLOW; 72 | // even though we allow, continue, so we can see if there's another policy 73 | // that denies... 74 | } 75 | } 76 | 77 | return 0; 78 | } 79 | 80 | policy_t database_check(struct su_context *ctx) { 81 | sqlite3 *db = NULL; 82 | 83 | char query[512]; 84 | snprintf(query, sizeof(query), "select policy, until, command from uid_policy where uid=%d", ctx->from.uid); 85 | int ret = sqlite3_open_v2(ctx->user.database_path, &db, SQLITE_OPEN_READONLY, NULL); 86 | if (ret) { 87 | LOGE("sqlite3 open failure: %d", ret); 88 | sqlite3_close(db); 89 | return INTERACTIVE; 90 | } 91 | 92 | int result; 93 | char *err = NULL; 94 | struct callback_data_t data; 95 | data.ctx = ctx; 96 | data.policy = INTERACTIVE; 97 | ret = sqlite3_exec(db, query, database_callback, &data, &err); 98 | sqlite3_close(db); 99 | if (err != NULL) { 100 | LOGE("sqlite3_exec: %s", err); 101 | return DENY; 102 | } 103 | 104 | return data.policy; 105 | } 106 | -------------------------------------------------------------------------------- /Superuser/jni/su/pts.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013, Tan Chee Eng (@tan-ce) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* 18 | * pts.h 19 | * 20 | * Manages the pseudo-terminal driver on Linux/Android and provides some 21 | * helper functions to handle raw input mode and terminal window resizing 22 | */ 23 | 24 | #ifndef _PTS_H_ 25 | #define _PTS_H_ 26 | 27 | /** 28 | * pts_open 29 | * 30 | * Opens a pts device and returns the name of the slave tty device. 31 | * 32 | * Arguments 33 | * slave_name the name of the slave device 34 | * slave_name_size the size of the buffer passed via slave_name 35 | * 36 | * Return Values 37 | * on failure either -2 or -1 (errno set) is returned. 38 | * on success, the file descriptor of the master device is returned. 39 | */ 40 | int pts_open(char *slave_name, size_t slave_name_size); 41 | 42 | /** 43 | * set_stdin_raw 44 | * 45 | * Changes stdin to raw unbuffered mode, disables echo, 46 | * auto carriage return, etc. 47 | * 48 | * Return Value 49 | * on failure -1, and errno is set 50 | * on success 0 51 | */ 52 | int set_stdin_raw(void); 53 | 54 | /** 55 | * restore_stdin 56 | * 57 | * Restore termios on stdin to the state it was before 58 | * set_stdin_raw() was called. If set_stdin_raw() was 59 | * never called, does nothing and doesn't return an error. 60 | * 61 | * This function is async-safe. 62 | * 63 | * Return Value 64 | * on failure, -1 and errno is set 65 | * on success, 0 66 | */ 67 | int restore_stdin(void); 68 | 69 | /** 70 | * watch_sigwinch_async 71 | * 72 | * After calling this function, if the application receives 73 | * SIGWINCH, the terminal window size will be read from 74 | * "input" and set on "output". 75 | * 76 | * NOTE: This function blocks SIGWINCH and spawns a thread. 77 | * 78 | * Arguments 79 | * master A file descriptor of the TTY window size to follow 80 | * slave A file descriptor of the TTY window size which is 81 | * to be set on SIGWINCH 82 | * 83 | * Return Value 84 | * on failure, -1 and errno will be set. In this case, no 85 | * thread has been spawned and SIGWINCH will not be 86 | * blocked. 87 | * on success, 0 88 | */ 89 | int watch_sigwinch_async(int master, int slave); 90 | 91 | /** 92 | * watch_sigwinch_cleanup 93 | * 94 | * Cause the SIGWINCH watcher thread to terminate 95 | */ 96 | void watch_sigwinch_cleanup(void); 97 | 98 | /** 99 | * pump_stdin_async 100 | * 101 | * Forward data from STDIN to the given FD 102 | * in a seperate thread 103 | */ 104 | void pump_stdin_async(int outfd); 105 | 106 | /** 107 | * pump_stdout_blocking 108 | * 109 | * Forward data from the FD to STDOUT. 110 | * Returns when the remote end of the FD closes. 111 | * 112 | * Before returning, restores stdin settings. 113 | */ 114 | void pump_stdout_blocking(int infd); 115 | 116 | #endif 117 | -------------------------------------------------------------------------------- /Superuser/jni/su/utils.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2012, The CyanogenMod Project 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | 28 | #include "utils.h" 29 | 30 | /* reads a file, making sure it is terminated with \n \0 */ 31 | char* read_file(const char *fn) 32 | { 33 | struct stat st; 34 | char *data = NULL; 35 | 36 | int fd = open(fn, O_RDONLY); 37 | if (fd < 0) return data; 38 | 39 | if (fstat(fd, &st)) goto oops; 40 | 41 | data = malloc(st.st_size + 2); 42 | if (!data) goto oops; 43 | 44 | if (read(fd, data, st.st_size) != st.st_size) goto oops; 45 | close(fd); 46 | data[st.st_size] = '\n'; 47 | data[st.st_size + 1] = 0; 48 | return data; 49 | 50 | oops: 51 | close(fd); 52 | if (data) free(data); 53 | return NULL; 54 | } 55 | 56 | int get_property(const char *data, char *found, const char *searchkey, const char *not_found) 57 | { 58 | char *key, *value, *eol, *sol, *tmp; 59 | if (data == NULL) goto defval; 60 | int matched = 0; 61 | sol = strdup(data); 62 | while((eol = strchr(sol, '\n'))) { 63 | key = sol; 64 | *eol++ = 0; 65 | sol = eol; 66 | 67 | value = strchr(key, '='); 68 | if(value == 0) continue; 69 | *value++ = 0; 70 | 71 | while(isspace(*key)) key++; 72 | if(*key == '#') continue; 73 | tmp = value - 2; 74 | while((tmp > key) && isspace(*tmp)) *tmp-- = 0; 75 | 76 | while(isspace(*value)) value++; 77 | tmp = eol - 2; 78 | while((tmp > value) && isspace(*tmp)) *tmp-- = 0; 79 | 80 | if (strncmp(searchkey, key, strlen(searchkey)) == 0) { 81 | matched = 1; 82 | break; 83 | } 84 | } 85 | int len; 86 | if (matched) { 87 | len = strlen(value); 88 | if (len >= PROPERTY_VALUE_MAX) 89 | return -1; 90 | memcpy(found, value, len + 1); 91 | } else goto defval; 92 | return len; 93 | 94 | defval: 95 | len = strlen(not_found); 96 | memcpy(found, not_found, len + 1); 97 | return len; 98 | } 99 | 100 | /* 101 | * Fast version of get_property which purpose is to check 102 | * whether the property with given prefix exists. 103 | * 104 | * Assume nobody is stupid enough to put a propery with prefix ro.cm.version 105 | * in his build.prop on a non-CM ROM and comment it out. 106 | */ 107 | int check_property(const char *data, const char *prefix) 108 | { 109 | if (!data) 110 | return 0; 111 | return strstr(data, prefix) != NULL; 112 | } 113 | -------------------------------------------------------------------------------- /Superuser/jni/su/utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright 2012, The CyanogenMod Project 3 | ** 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); 5 | ** you may not use this file except in compliance with the License. 6 | ** You may obtain a copy of the License at 7 | ** 8 | ** http://www.apache.org/licenses/LICENSE-2.0 9 | ** 10 | ** Unless required by applicable law or agreed to in writing, software 11 | ** distributed under the License is distributed on an "AS IS" BASIS, 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | ** See the License for the specific language governing permissions and 14 | ** limitations under the License. 15 | */ 16 | 17 | #ifndef _UTILS_H_ 18 | #define _UTILS_H_ 19 | 20 | #ifndef PROPERTY_VALUE_MAX 21 | #define PROPERTY_VALUE_MAX 92 22 | #endif 23 | 24 | /* reads a file, making sure it is terminated with \n \0 */ 25 | extern char* read_file(const char *fn); 26 | 27 | extern int get_property(const char *data, char *found, const char *searchkey, 28 | const char *not_found); 29 | extern int check_property(const char *data, const char *prefix); 30 | #endif 31 | -------------------------------------------------------------------------------- /Superuser/lint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Superuser/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /Superuser/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-21 15 | android.library.reference.1=../../Widgets/Widgets 16 | ndk.executable=ndk-build 17 | -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi-v11/ic_stat_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi-v11/ic_stat_notification.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi-v9/ic_stat_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi-v9/ic_stat_notification.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_action_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_action_about.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_action_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_action_logs.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_action_permission.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_action_permission.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_action_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_action_settings.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_action_trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_action_trash.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_alert.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_alert_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_alert_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_allow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_allow.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_declare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_declare.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_declare_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_declare_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_delete.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_deny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_deny.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_logging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_logging.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_logging_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_logging_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_menu_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_menu_about.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_menu_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_menu_logs.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_menu_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_menu_settings.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_menu_trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_menu_trash.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_notifications.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_notifications_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_notifications_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_protected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_protected.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_protected_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_protected_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_stat_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_stat_notification.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_theme.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_theme_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_theme_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_timeout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_timeout.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_timeout_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_timeout_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_toggle.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_toggle_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_toggle_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_users.png -------------------------------------------------------------------------------- /Superuser/res/drawable-hdpi/ic_users_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-hdpi/ic_users_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-ldpi-v11/ic_stat_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-ldpi-v11/ic_stat_notification.png -------------------------------------------------------------------------------- /Superuser/res/drawable-ldpi-v9/ic_stat_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-ldpi-v9/ic_stat_notification.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi-v11/ic_stat_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi-v11/ic_stat_notification.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi-v9/ic_stat_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi-v9/ic_stat_notification.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_action_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_action_about.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_action_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_action_logs.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_action_permission.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_action_permission.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_action_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_action_settings.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_action_trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_action_trash.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_alert.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_alert_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_alert_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_allow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_allow.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_declare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_declare.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_declare_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_declare_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_delete.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_deny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_deny.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_logging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_logging.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_logging_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_logging_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_menu_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_menu_about.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_menu_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_menu_logs.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_menu_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_menu_settings.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_menu_trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_menu_trash.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_notifications.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_notifications_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_notifications_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_protected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_protected.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_protected_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_protected_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_stat_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_stat_notification.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_theme.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_theme_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_theme_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_timeout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_timeout.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_timeout_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_timeout_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_toggle.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_toggle_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_toggle_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_users.png -------------------------------------------------------------------------------- /Superuser/res/drawable-mdpi/ic_users_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-mdpi/ic_users_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi-v11/ic_stat_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi-v11/ic_stat_notification.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi-v9/ic_stat_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi-v9/ic_stat_notification.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_action_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_action_about.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_action_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_action_logs.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_action_permission.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_action_permission.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_action_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_action_settings.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_action_trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_action_trash.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_alert.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_alert_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_alert_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_allow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_allow.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_declare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_declare.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_declare_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_declare_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_delete.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_deny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_deny.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_logging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_logging.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_logging_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_logging_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_menu_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_menu_about.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_menu_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_menu_logs.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_menu_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_menu_settings.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_menu_trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_menu_trash.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_notifications.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_notifications_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_notifications_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_protected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_protected.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_protected_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_protected_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_stat_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_stat_notification.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_theme.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_theme_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_theme_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_timeout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_timeout.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_timeout_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_timeout_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_toggle.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_toggle_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_toggle_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_users.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xhdpi/ic_users_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xhdpi/ic_users_dark.png -------------------------------------------------------------------------------- /Superuser/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Superuser/res/drawable/carbon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable/carbon.png -------------------------------------------------------------------------------- /Superuser/res/drawable/clockwork512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable/clockwork512.png -------------------------------------------------------------------------------- /Superuser/res/drawable/desksms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable/desksms.png -------------------------------------------------------------------------------- /Superuser/res/drawable/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable/github.png -------------------------------------------------------------------------------- /Superuser/res/drawable/koush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable/koush.png -------------------------------------------------------------------------------- /Superuser/res/drawable/tether.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koush/Superuser/2e5cf1978193997806df583285f6660702a8af79/Superuser/res/drawable/tether.png -------------------------------------------------------------------------------- /Superuser/res/layout-land/app_info.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 17 | 18 | 25 | 26 | 33 | 34 | 35 | 39 | 40 | 47 | 48 | 55 | 56 | 57 | 58 | 63 | 64 | 68 | 69 | 76 | 77 | 84 | 85 | 86 | 90 | 91 | 98 | 99 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /Superuser/res/layout-land/app_request.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 12 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Superuser/res/layout-land/log_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Superuser/res/layout-large-land/policy_list_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Superuser/res/layout-large/app_info.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 12 | 13 | 20 | 21 | 28 | 29 | 30 | 34 | 35 | 42 | 43 | 50 | 51 | 52 | 56 | 57 | 64 | 65 | 72 | 73 | 74 | 78 | 79 | 86 | 87 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /Superuser/res/layout-large/app_request.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Superuser/res/layout-large/policy_info.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 15 | 16 | 23 | 24 | 25 | 29 | 30 | 35 | 36 | 42 | 43 | 50 | 51 | 52 | 56 | 57 | 62 | 63 | 69 | 70 | 77 | 78 | 79 | 83 | 84 | 89 | 90 | 96 | 97 | 105 | 106 | 107 | 111 | 112 | -------------------------------------------------------------------------------- /Superuser/res/layout-large/policy_list_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Superuser/res/layout-normal-land/policy_info.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 17 | 18 | 25 | 26 | 32 | 33 | 34 | 38 | 39 | 46 | 47 | 53 | 54 | 55 | 56 | 61 | 62 | 66 | 67 | 74 | 75 | 81 | 82 | 83 | 87 | 88 | 95 | 96 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /Superuser/res/layout-v14/log_toggle.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Superuser/res/layout-v14/notification_toggle.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Superuser/res/layout/app_info.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 11 | 12 | 19 | 20 | 27 | 28 | 29 | 33 | 34 | 41 | 42 | 49 | 50 | 51 | 55 | 56 | 63 | 64 | 71 | 72 | 73 | 77 | 78 | 85 | 86 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /Superuser/res/layout/app_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 13 | 14 | 23 | 24 | -------------------------------------------------------------------------------- /Superuser/res/layout/app_request.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Superuser/res/layout/empty.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | -------------------------------------------------------------------------------- /Superuser/res/layout/log_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Superuser/res/layout/log_item_base.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 17 | 18 | 24 | 25 | 32 | 33 | 40 | 41 | 42 | 51 | 52 | -------------------------------------------------------------------------------- /Superuser/res/layout/log_toggle.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Superuser/res/layout/notification_toggle.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Superuser/res/layout/notify.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 18 | 19 | 26 | 27 | 35 | 36 | 45 | 46 | 53 | 54 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 69 | 70 | 75 | 76 | 77 | 78 | 82 | 83 |