600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > [微信人脸支付]系统改造--隐藏从存储安装证书入口

[微信人脸支付]系统改造--隐藏从存储安装证书入口

时间:2022-10-04 17:50:51

相关推荐

[微信人脸支付]系统改造--隐藏从存储安装证书入口

[微信人脸支付]系统改--造隐藏从存储安装证书入口

开发平台基本信息补丁下载地址前言问题描述解决方法分析过程结尾

开发平台基本信息

芯片:高通SDM450

版本:Android 9.0

kernel:msm-4.9

补丁下载地址

/Hebin320/csdn_patch

前言

一台设备终端如果需要使用微信人脸支付功能,那么这台设备终端就需要进行微信入库认证;具体操作流程可以查阅微信人脸支付官网。微信对终端认证除了在硬件上要求带有3D结构光摄像头外,还要求终端的系统进行改造,达到微信人脸支付的标准并通过测试,才可以拿到微信人脸支付的授权。

问题描述

进行系统改造,可以参考微信官网提供的微信刷脸支付-软件预检测进行功能修改,文档有一项安全的整改,要求设备关闭Android系统从SD卡目录安装第三方SSL证书功能;详细入口位置是:

设置→安全性和位置信息→加密与凭据→从存储设备安装。

解决方法

要从系统设置里面屏蔽入口,那么就得从Settings这个系统应用中找到入口项;要想在Settings中屏蔽某一个选项,一般有两种方式,一种是直接在xml中将需要屏蔽的布局注释掉,而另一种则在java代码中加以屏蔽;第二种方式根据是一级目录、二级目录、三级目录又有不同的方式,有些需要在Activity中不添加,有些则只需要在controller中将返回值改为false即可。xml注释布局较为简单直接,但是版本控制会比较麻烦,比如说有几个设备都用同一个Settings,而有些设备需要显示这一项,有些设备不需要显示,这时候如果注释xml的布局,那么就很难做到兼容。但是,对于有些基本用不到 的功能,比如说这个安装证书的功能,就可以直接从xml中注释掉布局。先给出修改的patch,稍微再详细说说是如何找到这个入口的。修改文件路径是:

packages/app/Settings/res/xml/encryption_and_credential.xml

具体修改patch如下:

diff --git a/res/xml/encryption_and_credential.xml b/res/xml/encryption_and_credential.xmlold mode 100644new mode 100755index c60c5b5..ce03d57--- a/res/xml/encryption_and_credential.xml+++ b/res/xml/encryption_and_credential.xml@@ -57,18 +57,18 @@android:fragment="com.android.settings.UserCredentialsSettings"settings:userRestriction="no_config_credentials" />- <com.android.settingslib.RestrictedPreference- android:key="credentials_install"- android:title="@string/credentials_install"- android:summary="@string/credentials_install_summary"- settings:userRestriction="no_config_credentials">-- <intent-android:action="android.credentials.INSTALL"-android:targetPackage="com.android.certinstaller"-android:targetClass="com.android.certinstaller.CertInstallerMain" />-- </com.android.settingslib.RestrictedPreference>+ <!-- <com.android.settingslib.RestrictedPreference -->+ <!-- android:key="credentials_install" -->+ <!-- android:title="@string/credentials_install" -->+ <!-- android:summary="@string/credentials_install_summary" -->+ <!-- settings:userRestriction="no_config_credentials"> -->++ <!-- <intent -->+<!-- android:action="android.credentials.INSTALL" -->+<!-- android:targetPackage="com.android.certinstaller" -->+<!-- android:targetClass="com.android.certinstaller.CertInstallerMain" /> -->++ <!-- </com.android.settingslib.RestrictedPreference> --><com.android.settingslib.RestrictedPreferenceandroid:key="credentials_reset"

分析过程

需要屏蔽的入口选项标题是"从存储设备安装";所以,先切到Settings目录下,搜索关键字眼,搜索的指令可以用grep -irn + 关键字 ;搜索结果如下图:

搜索出来的结果显示,该标题在string中定义的key值为credentials_install;接着搜索credentials_install,看看这个key值在哪个布局中使用;系统应用基本都会做多国语言适配,所以,搜索出来的key值会在不同的string文件中引用,这些都可以不用看,直接看xml或者layout文件夹底下的文件就可以,搜索结果如下图:

因为这里只需要在xml中将布局进行屏蔽,所以,找到相应的xml,然后再找到key使用的布局,注释掉即可;具体如下图:

结尾

这里是以屏蔽布局进行对选项屏蔽,之后如果有需要在java代码中屏蔽选项的,再作详细说明。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。