Android 9.0 应用权限屏蔽位置信息

Android 9.0 应用权限屏蔽位置信息

近来接到项目需求反馈,想要屏蔽掉设置--应用和通知中所有与位置相关的权限,屏蔽掉设置--应用和通知中所有与位置相关权限主要需要屏蔽两个地方,一处是设置--应用和通知--应用权限中的位置信息,另一处是设置--应用和通知--查看全部应用--权限--位置信息,具体修改参照如下:

首先,在屏蔽设置--应用和通知--应用权限中的位置信息之前,我们需要先屏蔽掉设置--应用和通知--应用权限--位置信息--位置信息权限页面的有关位置的详细权限,具体修改参照如下:

/vendor/mediatek/proprietary/packages/apps/PackageInstaller/src/com/android/packageinstaller/permission/ui/ManagePermissionsActivity.java

            case Intent.ACTION_MANAGE_PERMISSION_APPS: {
                String permissionName = getIntent().getStringExtra(Intent.EXTRA_PERMISSION_NAME);
+                if (permissionName.equals("android.permission-group.LOCATION"))return;
                if (permissionName == null) {
                    Log.i(LOG_TAG, "Missing mandatory argument EXTRA_PERMISSION_NAME");
                    finish();
                    return;
                }
                if (DeviceUtils.isTelevision(this)) {
                    fragment = com.android.packageinstaller.permission.ui.television
                            .PermissionAppsFragment.newInstance(permissionName);
                } else {
                    fragment = com.android.packageinstaller.permission.ui.handheld
                            .PermissionAppsFragment.newInstance(permissionName);
                }
            } break;

其次,我们屏蔽掉设置--应用和通知--应用权限中的位置信息,具体修改参照如下:
/vendor/mediatek/proprietary/packages/apps/PackageInstaller/src/com/android/packageinstaller/permission/ui/handheld/ManagePermissionsFragment.java

        PmCache cache = new PmCache(getContext().getPackageManager());
        for (PermissionGroup group : groups) {
+	    if (group.getName().equals("android.permission-group.LOCATION")) continue;
            // / M: CTA requirement - permission control @{
            CtaManager manager = CtaManagerFactory.getInstance().makeCtaManager();
            boolean isSystemPermission =
                    manager.isPlatformPermissionGroup(
                    group.getDeclaringPackage(), group.getName());

之后,我们需要屏蔽掉设置--应用和通知--应用权限summary中的位置信息,具体修改参照如下:

/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/applications/AppPermissionsPreferenceController.java

public class AppPermissionsPreferenceController extends BasePreferenceController {

    private static final String TAG = "AppPermissionPrefCtrl";
    private static final String KEY_APP_PERMISSION_GROUPS = "manage_perms";
    private static final String[] PERMISSION_GROUPS = new String[] {
-            "android.permission-group.LOCATION",
            "android.permission-group.MICROPHONE",
            "android.permission-group.CAMERA",
            "android.permission-group.SMS",
            "android.permission-group.CONTACTS",
            "android.permission-group.PHONE"};

接着,我们屏蔽设置--应用和通知--查看全部应用--权限--位置信息,在屏蔽设置--应用和通知--查看全部应用--权限--位置信息之前,同样我们也先要屏蔽掉设置--应用和通知--查看全部应用--权限--位置信息--位置信息页面的有关位置的详细权限,另外设置--应用和通知--查看全部应用--权限--设置所有权限--位置信息以及长按应用--应用信息--权限--位置信息--位置信息,这三个地方引用之处相同,具体修改参照如下:

/vendor/mediatek/proprietary/packages/apps/PackageInstaller/src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java

            if (info.requestedPermissions != null) {
                for (int i = 0; i < info.requestedPermissions.length; i++) {
                    PermissionInfo perm;
                    try {
+			if (info.requestedPermissions[i].equals("android.permission.ACCESS_COARSE_LOCATION")
+			 || info.requestedPermissions[i].equals("android.permission.ACCESS_FINE_LOCATION")) {
+			    continue;
+			}

最后,我们屏蔽设置--应用和通知--查看全部应用--权限--位置信息,与上面同理,具体修改参照如下:
/vendor/mediatek/proprietary/packages/apps/PackageInstaller/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java

        for (AppPermissionGroup group : mAppPermissions.getPermissionGroups()) {
+	    if (group.getName().equals("android.permission-group.LOCATION")) continue;
            if (!Utils.shouldShowPermission(group, mAppPermissions.getPackageInfo().packageName)) {
                continue;
            }

相关推荐

  1. Android 9.0 应用权限屏蔽位置信息

    2023-12-22 07:54:04       44 阅读
  2. 鸿蒙原生应用元服务开发-Web管理位置权限

    2023-12-22 07:54:04       33 阅读
  3. Android 默认打开应用权限

    2023-12-22 07:54:04       56 阅读
  4. Android 8.1 默认赋予应用权限

    2023-12-22 07:54:04       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-22 07:54:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-22 07:54:04       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-22 07:54:04       87 阅读
  4. Python语言-面向对象

    2023-12-22 07:54:04       96 阅读

热门阅读

  1. MongoDB的面试题与答案

    2023-12-22 07:54:04       56 阅读
  2. GBASE南大通用集群负载均衡

    2023-12-22 07:54:04       54 阅读
  3. hive中map相关函数总结

    2023-12-22 07:54:04       72 阅读
  4. unity中Android各版本对应的SDK版本

    2023-12-22 07:54:04       60 阅读
  5. caffe模型的python前向测试

    2023-12-22 07:54:04       71 阅读
  6. [网络安全]用户与组管理

    2023-12-22 07:54:04       62 阅读