隐藏Settings的一级菜单
\packages\apps\Settings\AndroidManifest.xml
Settings就是根据控制是否在一级菜单显示,以及定义优先级,值越大优先级越高,菜单越靠前
<intent-filter android:priority="2">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
隐藏安全菜单
<activity
android:name=".Settings$SecurityDashboardActivity"
android:label="@string/security_settings_title"
android:icon="@drawable/ic_homepage_security"
android:configChanges="orientation|keyboardHidden|screenSize"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.SECURITY_SETTINGS" />
<action android:name="android.credentials.UNLOCK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.VOICE_LAUNCH" />
</intent-filter>
<!-- <intent-filter android:priority="4">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter> -->
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.homepage" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.security.SecuritySettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity>
隐藏无障碍菜单
<activity
android:name="Settings$AccessibilitySettingsActivity"
android:label="@string/accessibility_settings"
android:icon="@drawable/ic_homepage_accessibility"
android:configChanges="orientation|keyboardHidden|screenSize"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.ACCESSIBILITY_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.VOICE_LAUNCH" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
<!-- <intent-filter android:priority="2">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter> -->
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.homepage" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.accessibility.AccessibilitySettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
<meta-data android:name="com.android.settings.summary"
android:resource="@string/accessibility_settings_summary" />
</activity>
隐藏电池菜单
<activity
android:name="Settings$PowerUsageSummaryActivity"
android:label="@string/power_usage_summary_title"
android:icon="@drawable/ic_homepage_battery"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.intent.action.POWER_USAGE_SUMMARY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
<!--
<intent-filter android:priority="8">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter> -->
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.homepage" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.fuelgauge.PowerUsageSummary" />
</activity>
隐藏Settings的二级菜单
以Settings一级菜单系统二级手势为例
\packages\apps\Settings\res\xml\system_dashboard_fragment.xml
注释掉以下就可以了
<!--
<Preference
android:key="gesture_settings"
android:title="@string/gesture_preference_title"
android:icon="@drawable/ic_settings_gestures"
android:order="-250"
android:fragment="com.android.settings.gestures.GestureSettings"
settings:controller="com.android.settings.gestures.GesturesSettingPreferenceController"/>
-->
隐藏Settings的提示栏的Suggestion
\packages\apps\Settings\src\com\android\settings\dashboard\suggestions\SuggestionFeatureProviderImpl.java
@Override
public boolean isSuggestionEnabled(Context context) {
final ActivityManager am =
(ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
// return !am.isLowRamDevice();
return false;
}
编译Settings
用adb 推包
adb push \out\target\product\msm8953_64\system\priv-app\Settings\. /system/priv-app/Settings/
然后adb reboot 后,就可以看见效果了
参考:
https://blog.csdn.net/li864804994/article/details/79472234
https://blog.csdn.net/jydzm/article/details/88129877