When the "Allow modifying system settings" permission (android.permission.WRITE_SECURE_SETTINGS) is granted on an Android device (typically via ADB or root access), apps can interact with system-level settings that are normally restricted. Here are some practical examples of what can be done with this permission:
javaSettings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 255);
javaSettings.System.putInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 1);
javaSettings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 30000); // 30 seconds
javaAudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE); audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 15, 0);
javaNotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_NONE);
javaWifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); wifiManager.setWifiEnabled(true);
javaConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); connectivityManager.setMobileDataEnabled(true);
javaSettings.Global.putInt(getContentResolver(), "force_fsg_nav_bar", 0);
javagetWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
javaSettings.Global.putString(getContentResolver(), Settings.Global.DEVICE_NAME, "NewHostname");
javaSettings.Global.putInt(getContentResolver(), Settings.Global.ADB_ENABLED, 1);
javaSettings.Global.putInt(getContentResolver(), Settings.Global.STAY_ON_WHILE_PLUGGED_IN, BatteryManager.BATTERY_PLUGGED_AC);
javaSettings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.example/.MyAccessibilityService");
javaSettings.Secure.putInt(getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_HIGH_ACCURACY);
javaPowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); powerManager.setIgnoringBatteryOptimizations("com.example.app", true);
javaSettings.Secure.putString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD, "com.example.keyboard/.MyIME");