LOCAL_MODULE_TAGS := optional
LOCAL_USE_AAPT2 := true
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
+LOCAL_SRC_FILES := $(call all-java-files-under, src) \
+ $(call all-java-files-under,../../../external/koush/Widgets/Widgets/src) \
+ $(call all-java-files-under,../../../external/koush/Superuser/Superuser/src)
LOCAL_STATIC_ANDROID_LIBRARIES := \
android-slices-builders \
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res \
+ external/koush/Widgets/Widgets/res \
+ external/koush/Superuser/Superuser/res
+
+LOCAL_AAPT_INCLUDE_ALL_RESOURCES := true
+
+LOCAL_AAPT_FLAGS := --auto-add-overlay \
+ --extra-packages com.koushikdutta.superuser:com.koushikdutta.widgets
+
ifneq ($(INCREMENTAL_BUILDS),)
LOCAL_PROGUARD_ENABLED := disabled
LOCAL_JACK_ENABLED := incremental
<uses-permission android:name="android.permission.USE_RESERVED_DISK" />
<uses-permission android:name="android.permission.MANAGE_SCOPED_ACCESS_DIRECTORY_PERMISSIONS" />
+ <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="@drawable/ic_launcher_settings"
android:taskAffinity=""
android:appComponentFactory="android.support.v4.app.CoreComponentFactory">
<uses-library android:name="org.apache.http.legacy" />
+
+ <!-- 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"
android:value="com.android.settings.print.PrintJobSettingsFragment" />
</activity>
+ <activity android:name="Settings$SuperuserActivity"
+ android:label="@string/superuser"
+ android:icon="@drawable/ic_action_permission"
+ android:taskAffinity="com.android.settings"
+ android:parentActivityName="Settings$UserAndAccountDashboardActivity">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <intent-filter android:priority="3">
+ <action android:name="com.android.settings.action.SETTINGS" />
+ </intent-filter>
+ <meta-data android:name="com.android.settings.summary"
+ android:resource="@string/superuser_description"/>
+ <meta-data android:name="com.android.settings.category"
+ android:value="com.android.settings.category.ia.accounts" />
+ <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+ android:value="com.android.settings.cyanogenmod.superuser.PolicyNativeFragment" />
+ <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+ android:value="true" />
+ </activity>
+
<activity android:name=".development.AppPicker"
android:label="@string/select_application"
android:theme="@android:style/Theme.DeviceDefault.Light.Dialog" />
import com.android.settings.core.gateway.SettingsGateway;
import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.dashboard.DashboardSummary;
+import com.android.settings.development.RootAccessPreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.DeviceIndexFeatureProvider;
import com.android.settings.wfd.WifiDisplaySettings;
!UserManager.isDeviceInDemoMode(this), isAdmin)
|| somethingChanged;
+ somethingChanged = setTileEnabled(changedList, new ComponentName(packageName,
+ Settings.SuperuserActivity.class.getName()),
+ RootAccessPreferenceController.isRootForAppsEnabled(), isAdmin)
+ || somethingChanged;
+
final boolean showDev = DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(this)
&& !Utils.isMonkeyRunning();
final boolean isAdminOrDemo = um.isAdminUser() || um.isDemoUser();
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
import com.android.settings.connecteddevice.PreviouslyConnectedDeviceDashboardFragment;
import com.android.settings.connecteddevice.usb.UsbDetailsFragment;
+import com.android.settings.cyanogenmod.superuser.PolicyNativeFragment;
import com.android.settings.datausage.DataUsageList;
import com.android.settings.datausage.DataUsageSummary;
import com.android.settings.datausage.DataUsageSummaryLegacy;
NotificationAccessSettings.class.getName(),
ZenAccessSettings.class.getName(),
ZenModeAutomationSettings.class.getName(),
+ PolicyNativeFragment.class.getName(),
PrintSettingsFragment.class.getName(),
PrintJobSettingsFragment.class.getName(),
TrustedCredentialsSettings.class.getName(),