Android 13 彻底屏蔽定位

Android 13 彻底屏蔽定位

BUG描述:ZX上层修改软件,彻底屏蔽定位功能。

本文的修改前提条件是驱动层面已经关闭相应的定位信息功能,本文的主要目标是彻底屏蔽定位,即驱动层面关闭定位功能,上层修改有关位置信息的所有项。

修改文件:

//1.添加需要的字符串

packages/apps/Settings/res/values/strings.xml

packages/apps/Settings/res/values-zh-rCN/strings.xml

//2. app右上角全部权限项

packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java

//3.添加宏控

build/make/core/main.mk

//4.App相关的summary包含"位置信息"字样

packages/apps/Settings/src/com/android/settings/applications/appinfo/AppPermissionPreferenceController.java

//5.去除权限管理器中的位置信息项

packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManagePermissionsFragment.java

packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java

//6.设置隐私信息中心权限项

packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/model/v31/AppPermissionUsage.java

具体的修改项以及详细讲解

Android 10之后进行了一系列的调整原本驱动关闭定位信息服务,相关项全部消失,统一调控,但是在Android13进行相应的修改时,发现隐私保护得到了加强,位置信息加入了权限部分保护用户的隐私,本文即应对该情况进行CTA检测的修改。

修改记录如下:

四个步骤:

1.去除设置中权限管理器中的位置信息项

2.去除summary

3.去除应用权限框中的location项和右上角全部权限项

4.设置中隐私信息中心权限项

1.去除设置中权限管理器中的位置信息项

//ManagePermissionsActivity.java

//ManagePermissionsFragment.java

packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java

packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManagePermissionsFragment.java

--- a/sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java

+++ b/sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java

@@ -40,6 +40,8 @@ import android.os.UserHandle;

import android.permission.PermissionManager;

import android.util.Log;

import android.view.MenuItem;

+import android.content.Context;

+import android.os.SystemProperties;

import androidx.fragment.app.Fragment;

import androidx.navigation.NavGraph;

@@ -86,6 +88,12 @@ import com.android.permissioncontroller.cta.AppUsagesDetailsWrapperFragment;

public final class ManagePermissionsActivity extends SettingsActivity {

private static final String LOG_TAG = ManagePermissionsActivity.class.getSimpleName();

+ private Context mContext;

+

+ //wjj add

+ private static final boolean HX_YK691_BUG_70677 = SystemProperties.getBoolean("ro.hx_yk691_bug_70677", false);

+ //wjj end

+

/**

* Name of the extra parameter that indicates whether or not to show all app permissions

*/

@@ -353,10 +361,13 @@ public final class ManagePermissionsActivity extends SettingsActivity {

case Intent.ACTION_MANAGE_PERMISSION_APPS: {

permissionName = getIntent().getStringExtra(Intent.EXTRA_PERMISSION_NAME);

-

String permissionGroupName = getIntent().getStringExtra(

Intent.EXTRA_PERMISSION_GROUP_NAME);

-

+ //wjj add for miss location

+ if(HX_YK691_BUG_70677){

+ if (permissionGroupName.equals("android.permission-group.LOCATION"))return;

+ }

+ //wjj end

if (permissionGroupName == null) {

try {

PermissionInfo permInfo = getPackageManager().getPermissionInfo(

diff --git a/sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManagePermissionsFragment.java b/sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManagePermissionsFragment.java

old mode 100644 (file)

new mode 100755 (executable)

index 47f4a4c..cf79362

--- a/sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManagePermissionsFragment.java

+++ b/sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManagePermissionsFragment.java

@@ -19,6 +19,7 @@ import android.app.ActionBar;

import android.content.Context;

import android.os.Bundle;

import android.widget.ImageView;

+import android.os.SystemProperties;

import androidx.preference.Preference;

import androidx.preference.PreferenceScreen;

@@ -41,6 +42,9 @@ import java.util.Map;

abstract class ManagePermissionsFragment extends PermissionsFrameFragment

implements Preference.OnPreferenceClickListener {

private static final String LOG_TAG = "ManagePermissionsFragment";

+ //wjj add

+ private static final boolean HX_YK691_BUG_70677 = SystemProperties.getBoolean("ro.hx_yk691_bug_70677", false);

+ //wjj end

/**

* Map, representing the data about which

@@ -48,6 +52,7 @@ abstract class ManagePermissionsFragment extends PermissionsFrameFragment

*/

protected Map mPermissionGroups = new HashMap<>();

private Collator mCollator;

+ private Context mContext;

@Override

public void onCreate(Bundle icicle) {

@@ -70,7 +75,6 @@ abstract class ManagePermissionsFragment extends PermissionsFrameFragment

if (group == null) {

return false;

}

-

showPermissionApps(key);

return true;

@@ -114,8 +118,14 @@ abstract class ManagePermissionsFragment extends PermissionsFrameFragment

for (String groupName : mPermissionGroups.keySet()) {

PermGroupPackagesUiInfo group = mPermissionGroups.get(groupName);

-

Preference preference = findPreference(groupName);

+ //wjj add for miss

+ if(HX_YK691_BUG_70677){

+ if (groupName.equals("android.permission-group.LOCATION")){

+ continue;

+ }

+ }

+ //wjj end

if (preference == null) {

preference = new FixedSizeIconPreference(context);

2.去除summary

//AppPermissionPreferenceController.java

sprd/packages/apps/Settings/src/com/android/settings/applications/appinfo/AppPermissionPreferenceController.java

diff --git a/sprd/packages/apps/Settings/src/com/android/settings/applications/appinfo/AppPermissionPreferenceController.java b/sprd/packages/apps/Settings/src/com/android/settings/applications/appinfo/AppPermissionPreferenceController.java

old mode 100644 (file)

new mode 100755 (executable)

index ce2ff32..22d87c2

--- a/sprd/packages/apps/Settings/src/com/android/settings/applications/appinfo/AppPermissionPreferenceController.java

+++ b/sprd/packages/apps/Settings/src/com/android/settings/applications/appinfo/AppPermissionPreferenceController.java

@@ -24,6 +24,7 @@ import android.content.pm.PackageManager;

import android.content.res.Resources;

import android.icu.text.ListFormatter;

import android.util.Log;

+import android.os.SystemProperties;

import androidx.annotation.VisibleForTesting;

import androidx.preference.Preference;

@@ -47,7 +48,9 @@ public class AppPermissionPreferenceController extends AppInfoPreferenceControll

private static final String TAG = "PermissionPrefControl";

private static final String EXTRA_HIDE_INFO_BUTTON = "hideInfoButton";

private static final long INVALID_SESSION_ID = 0;

-

+ //wjj add

+ private static final boolean HX_YK691_BUG_70677 = SystemProperties.getBoolean("ro.hx_yk691_bug_70677", false);

+ //wjj end

private final PackageManager mPackageManager;

private String mPackageName;

@@ -67,6 +70,11 @@ public class AppPermissionPreferenceController extends AppInfoPreferenceControll

R.string.runtime_permissions_summary_no_permissions_requested);

mPreference.setEnabled(false);

} else {

+ //wjj add for miss location summary

+ if(HX_YK691_BUG_70677){

+ grantedGroupLabels.remove(res.getString(R.string.location_informaion));

+ }

+ //wjj end

final ArrayList list = new ArrayList<>(grantedGroupLabels);

if (additionalGrantedPermissionCount > 0) {

// N additional permissions.

3.去除应用权限框中的location项和右上角全部权限项

//AppPermissionGroupsFragment.java

sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java

--- a/sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java

+++ b/sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java

@@ -45,6 +45,7 @@ import android.os.Bundle;

import android.os.Handler;

import android.os.Looper;

import android.os.UserHandle;

+import android.os.SystemProperties;

import android.provider.Settings;

import android.util.Log;

import android.view.LayoutInflater;

@@ -119,7 +120,9 @@ public final class AppPermissionGroupsFragment extends SettingsWithLargeHeader i

private UserHandle mUser;

private PermissionUsages mPermissionUsages;

private List mAppPermissionUsages = new ArrayList<>();

-

+ //wjj add

+ private static final boolean HX_YK691_BUG_70677 = SystemProperties.getBoolean("ro.hx_yk691_bug_70677", false);

+ //wjj end

private Collator mCollator;

/**

@@ -264,12 +267,14 @@ public final class AppPermissionGroupsFragment extends SettingsWithLargeHeader i

super.onCreateOptionsMenu(menu, inflater);

if (mIsSystemPermsScreen) {

// CTA Feature: If cta supported, the menu will always be shown. @{

- if (CtaUtils.CTA_FEATURE_SUPPORTED) {

- menu.add(Menu.NONE, MENU_ALL_PERMS, Menu.NONE,

- R.string.all_permissions).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

- } else {

- menu.add(Menu.NONE, MENU_ALL_PERMS, Menu.NONE, R.string.all_permissions);

- }

+ //wjj add for miss all_perssion

+ //if (CtaUtils.CTA_FEATURE_SUPPORTED) {

+ // menu.add(Menu.NONE, MENU_ALL_PERMS, Menu.NONE,

+ // R.string.all_permissions).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

+ //} else {

+ // menu.add(Menu.NONE, MENU_ALL_PERMS, Menu.NONE, R.string.all_permissions);

+ //}

+ //wjj end

// @}

if (!SdkLevel.isAtLeastS()) {

HelpUtils.prepareHelpMenuItem(getActivity(), menu, R.string.help_app_permissions,

@@ -354,6 +359,14 @@ public final class AppPermissionGroupsFragment extends SettingsWithLargeHeader i

for (GroupUiInfo groupInfo : groupMap.get(grantCategory)) {

String groupName = groupInfo.getGroupName();

+ //wjj add for miss Location

+ if(HX_YK691_BUG_70677){

+ Log.d("wjj+groupName"+LOG_TAG,"groupName :"+groupName);

+ if(groupName.equals("android.permission-group.LOCATION")){

+ continue;

+ }

+ }

+ //wjj end

/* CTA Feature */

if (CtaUtils.CTA_FEATURE_SUPPORTED && CtaUtils.isCtaGroups(groupName)

&& CtaUtils.isSystemApp(requireActivity().getPackageManager(), mPackageName)) {

4.设置中隐私信息中心权限项

//AppPermissionUsage.java

sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/model/v31/AppPermissionUsage.java

diff --git a/sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/model/v31/AppPermissionUsage.java b/sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/model/v31/AppPermissionUsage.java

old mode 100644 (file)

new mode 100755 (executable)

index 8309eab..4ae0bc9

--- a/sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/model/v31/AppPermissionUsage.java

+++ b/sprd/packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/permission/model/v31/AppPermissionUsage.java

@@ -35,7 +35,9 @@ import android.content.pm.Attribution;

import android.content.res.Resources;

import android.media.AudioRecordingConfiguration;

import android.os.Build;

+import android.os.SystemProperties;

import android.util.Log;

+import android.content.Context;

import androidx.annotation.NonNull;

import androidx.annotation.Nullable;

import androidx.annotation.RequiresApi;

@@ -68,6 +70,10 @@ public final class AppPermissionUsage {

private final @NonNull List mGroupUsages = new ArrayList<>();

private final @NonNull PermissionApp mPermissionApp;

private static final String TAG ="AppPermissionUsage";

+ private Context mContext;

+ //wjj add

+ private static final boolean HX_YK691_BUG_70677 = SystemProperties.getBoolean("ro.hx_yk691_bug_70677", false);

+ //wjj end

private static final int PRIVACY_HUB_FLAGS = AppOpsManager.OP_FLAG_SELF

| AppOpsManager.OP_FLAG_TRUSTED_PROXIED | AppOpsManager.OP_FLAG_TRUSTED_PROXY;

@@ -80,6 +86,14 @@ public final class AppPermissionUsage {

final int groupCount = groups.size();

for (int i = 0; i < groupCount; i++) {

final AppPermissionGroup group = groups.get(i);

+ //wjj add for miss android.permission-group.LOCATION

+ if(HX_YK691_BUG_70677){

+ Log.d("wjj-1"+TAG,"group.getName() : "+group.getName());

+ if(group.getName().equals("android.permission-group.LOCATION")){

+ continue;

+ }

+ }

+ //wjj end

/**

* TODO: HACK HACK HACK.

@@ -543,9 +557,19 @@ public final class AppPermissionUsage {

for (int permissionNum = 0; permissionNum < permissionCount; permissionNum++) {

final Permission permission = permissions.get(permissionNum);

final String opName = permission.getAppOp();

- if (opName != null) {

- allOps.add(opName);

- }

+

+ //wjj add for miss location

+ if(HX_YK691_BUG_70677){

+ Log.d("wjj-2"+TAG,"opName : "+opName);

+ if (opName != null && opName != "android:fine_location" && opName != "android:coarse_location" && opName != "android:access_media_location") {

+ allOps.add(opName);

+ }

+ }else{

+ if (opName != null){

+ allOps.add(opName);

+ }

+ }

+ //wjj end

}

if (appPermissionGroup.getName().equals(Manifest.permission_group.MICROPHONE)) {

相关阅读

COS发布2022春夏系列
365名品汇个人注册推荐码

COS发布2022春夏系列

⌚ 07-13 👁️ 2970
车视杰导航质量怎么?
365bet足球现金

车视杰导航质量怎么?

⌚ 10-17 👁️ 1300
陈忠和、张蓉芳寄语中国排球
365名品汇个人注册推荐码

陈忠和、张蓉芳寄语中国排球

⌚ 10-01 👁️ 6253