如何屏蔽Android12系统中开发者选项


前言

在机顶盒领域,经常会碰到客户定制产品时,希望屏蔽开发者选项,所以记录一下新的设计思路,供大家参考,本文实例是Rockchip平台 Android12 AOSP系统


一、屏蔽开发者选项

1.如果你不想完全删除代码或者注释代码,可以这样做;

设置一个始终为真的条件
如果你不想完全删除代码,但想让它始终为假,你可以添加一个始终为真的条件来阻止相关代码的执行。例如,在if (mDevHitCountdown > 0)之前添加一个if (false)

代码路径:

/packages/apps/TvSettings/Settings/src/com/android/tv/settings/about/AboutFragment.java

代码如下(示例):

+ if (false) {   //增加一个false,阻止相关代码

--现有代码--

+ }

case KEY_BUILD_NUMBER:
                logEntrySelected(TvSettingsEnums.SYSTEM_ABOUT_BUILD);
                // Don't enable developer options for secondary users.
                if (!mUm.isAdminUser()) {
                    return true;
                }

                if (mUm.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)) {
                    final RestrictedLockUtils.EnforcedAdmin admin = RestrictedLockUtilsInternal
                            .checkIfRestrictionEnforced(getContext(),
                                    UserManager.DISALLOW_DEBUGGING_FEATURES, UserHandle.myUserId());
                    if (admin != null) {
                        RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(), admin);
                    }
                    return true;
                }
                if (false){ //add false, preventing the following code from executing
                if (mDevHitCountdown > 0) {
                    mDevHitCountdown--;
                    if (mDevHitCountdown == 0) {
                        DevelopmentSettingsEnabler
                                .setDevelopmentSettingsEnabled(getContext(), true);
                        if (mDevHitToast != null) {
                            mDevHitToast.cancel();
                        }
                        mDevHitToast = Toast.makeText(getActivity(), R.string.show_dev_on,
                                Toast.LENGTH_LONG);
                        mDevHitToast.show();
                        // This is good time to index the Developer Options
//                    Index.getInstance(
//                            getActivity().getApplicationContext()).updateFromClassNameResource(
//                            DevelopmentSettings.class.getName(), true, true);
                    } else if (mDevHitCountdown > 0
                            && mDevHitCountdown < (TAPS_TO_BE_A_DEVELOPER - 2)) {
                        if (mDevHitToast != null) {
                            mDevHitToast.cancel();
                        }
                        mDevHitToast = Toast
                                .makeText(getActivity(), getResources().getQuantityString(
                                        R.plurals.show_dev_countdown, mDevHitCountdown,
                                        mDevHitCountdown),
                                        Toast.LENGTH_SHORT);
                        mDevHitToast.show();
                    }
                } else if (mDevHitCountdown < 0) {
                    if (mDevHitToast != null) {
                        mDevHitToast.cancel();
                    }
                    mDevHitToast = Toast.makeText(getActivity(), R.string.show_dev_already,
                            Toast.LENGTH_LONG);
                    mDevHitToast.show();
                }
              }
                break;

2.如果编译的版本是userdebug版本,可以默认去将关闭usb debug,版本编译出来后,debug没是关闭的,开发者选项又调不出来,自然就无法使用adb调试了:

代码文件路径:build/make/core/main.mk b/build/make/core/main.mk

修改点:

user_variant := $(filter user userdebug,$(TARGET_BUILD_VARIANT))

- enable_target_debugging := true

+ enable_target_debugging := false

代码修改如下(示例):

/build/make/core/main.mk b/build/make/core/main.mk

index c5a0baeef63..3480a7fb7f9 100644

--- a/build/make/core/main.mk

+++ b/build/make/core/main.mk

@@ -385,7 +385,7 @@ endif

 ## user/userdebug ##

 

 user_variant := $(filter user userdebug,$(TARGET_BUILD_VARIANT))

-enable_target_debugging := true

+enable_target_debugging := false

 tags_to_install :=

 ifneq (,$(user_variant))

   # Target is secure in user builds.

总结

提示:这里对文章进行总结:
1、默认关闭usb debug

2、屏蔽开发者选项连点操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值