华为开发者选项锁屏已被管理员、加密政策或凭据存储禁用

先说场景:
采购了一批华为的pad(android 7.0.0),每次开机都有锁屏壁纸,所以可以在开发者选项中的锁屏选项中关闭该功能。但部分设备的该选项是灰色的无法操作(具体原因不明),根据网络上说的清凭证,设密码都无效。所以花了些时间研究,记录一下思路。
前提是设备root了或者有系统权限,以下是设备root的情况处理:

1. 首先我对比了其他的设备,在开发者选项中未看到【锁屏】选项,以为这是华为自己定制的功能,由于没有源码。所以反编译了Settings.apk,其实这一步走了弯路,但还是记录一下,以下是我反编译的步骤:

1.执行命令获取Setting软件包安装信息

adb shell
dumpsys package com.android.settings

结果如下
在这里插入图片描述
2.执行命令pull安装包,通过apkTool工具反编译发现Settings.apk里面没有代码,所以拉取了.odex文件,然后转成.dex,最后使用apkTool查看

adb pull /system/priv-app/Settings/oat/arm64/Settings.odex

拉取后将.odex转成.dex文件,将Settings.odex拖到fetchOdex.bat打开,稍等片刻即可生成.dex文件,文件在文末一并提供
在这里插入图片描述

2. 反编了源码发现下面的配置:

在这里插入图片描述
当通过命令执行:

adb shell
su
setprop persist.sys.cc_mode 1
reboot

重启后发现也没有【锁屏】选项,但问题依然没有解决,只能还原找其他的原因!
通过一番查找,最终定位到以下代码(查找的过程就省略了,如果感兴趣可以再讨论)
在这里插入图片描述
在这里插入图片描述
最终的切入点就是LockPatternUtils.java
通过源码查看工具定位
在这里插入图片描述
在这里插入图片描述
根据setBoolean一步步最终定位到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
**
基本可以确定整个setLockScreenDisabled()流程就是向locksettings.db数据库的locksettings表写入lockscreen.disabled字段。
**
既然有root权限,则直接拉库改表即可,该数据库的位置在data/system目录下,以下是我修改过后的样子

如果该表没有内容,将同目录下locksettings.db-wal和locksettings.db-shm一并拉下来.

在这里插入图片描述
最后一步就是push操作,以防万无一失,还是删除设备中的locksettings.db相关文件再push操作

adb shell
su
chmod 777 data/system/locksettings.db
reboot

重启见奇效!

附件apkTool工具:
链接:https://pan.baidu.com/s/1zbOv6mv9Ol9xAAaGJxm94Q
提取码:ngf8
源码查看工具:
http://androidxref.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值