Android 修改隐藏设置项权限

在Android系统中,修改某些隐藏设置项或权限通常涉及到系统级别的操作,尤其是针对非标准的、未在常规用户界面显示的高级选项。这些隐藏设置往往与隐私保护、安全相关的特殊功能有关,或者涉及开发者选项、权限管理等。

对于普通用户来说,访问和修改这类隐藏设置项可能需要:

1. 开启开发者选项:o进入手机“设置”应用。o滚动到最下方找到“关于手机”或“关于设备”。o多次点击“版本号”,直到提示已进入开发者模式。o返回上一层菜单,现在你应该能看到“开发者选项”。

2. 在开发者选项中调整设置:o开启USB调试、OEM解锁等选项。o部分更深入的隐藏设置项可能在此处提供,例如允许安装未知来源的应用程序(即侧载应用程序)。

3. 使用ADB命令行工具:o对于部分更加隐藏且不能通过UI直接更改的权限,可能需要通过电脑连接手机并使用adb(Android Debug Bridge)来执行命令进行修改。o例如,可以使用adb命令来启用或禁用特定应用的权限。

4. 第三方权限管理应用:o在某些情况下,可能会有第三方应用如App Ops或其他权限管理器能够帮助你管理那些不容易在系统设置中找到的权限。

5. 自定义ROM/Root权限:o如果你的设备已经root,并且运行的是支持自定义设置的ROM,那么可能可以直接修改系统文件或使用专用工具来调整隐藏权限。

如果adb shell进入终端后,可以执行如下指令修改隐藏设置项权限:

adb shell settings put global hidden_api_policy 1

在全志代码中,相关路径:

a133/android/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
a133/android/system/core/libcutils/fs_config.cpp
a133/android/cts/hostsidetests/jvmti/base/host/src/android/jvmti/cts/JvmtiHostTest.java

在SettingsProvider.java中添加判断是否有root权限代码

在fs_config.cpp中对settings设置权限

if (Binder.getCallingUid() != Process.ROOT_UID) {
Slog.w(TAG, "Only the root user can set hidden_api_policy");
return;
}

修改以下路径代码不生效:

a133/android/frameworks/base/core/java/android/content/pm/ApplicationInfo.java
public void setHiddenApiPolicy(int policy) {
if (hasRootPermission()) {
mHiddenApiPolicy = policy;
    }
}
if (Binder.getCallingUid() != Process.ROOT_UID) {
break;
}
原文链接:,转发请注明来源!