news 2026/5/1 3:55:59

根据apk包名动态修改Android品牌与型号

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
根据apk包名动态修改Android品牌与型号

我们在做国外gms项目的过程中,经常会涉及到套MADA信息的情况,但是在套MADA信息后后出现一个问题,三方检测app中检测到的品牌等信息会跟套的一致,这就会导致我们的软件被测试打回,当然修改TextView是种方法,但是不通用,而且会有漏修改的情况 ,那么有没有一种方法实现动态修改品牌信息呢,有的,以下就是博主最近刚发现的,不是自创,纯借花献佛。

修改patch如下:

diff--git a/sys/frameworks/base/core/java/android/app/ContextImpl.java b/sys/frameworks/base/core/java/android/app/ContextImpl.java index 2ba42ecc1b2..e5ecc1cca8e100644---a/sys/frameworks/base/core/java/android/app/ContextImpl.java+++b/sys/frameworks/base/core/java/android/app/ContextImpl.java @@-113,6+113,8@@ import java.io.IOException;import java.io.InputStream;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;+import java.lang.reflect.Field;+import java.lang.reflect.Modifier;import java.nio.ByteOrder;import java.nio.file.Path;import java.util.ArrayList;@@-3479,6+3481,19@@classContextImplextendsContext{opPackageName=mBasePackageName;}}+//add by lyw+//解决微信平板手机不能同时在线问题+if("com.tencent.mm".equals(mBasePackageName)){+modifySystemPropertyField("BRAND","inspur");+modifySystemPropertyField("MODEL","PD5012");+}elseif("com.finalwire.aida64".equals(mBasePackageName)){+modifySystemPropertyField("BRAND","VIVO");+modifySystemPropertyField("MODEL","S17 Pro");+}elseif("flar2.devcheck".equals(mBasePackageName)){+modifySystemPropertyField("BRAND","HUAWEI");+modifySystemPropertyField("MODEL","P30 Pro");+}+//add endmOpPackageName=overrideOpPackageName!=null?overrideOpPackageName:opPackageName;mParams=Objects.requireNonNull(params);@@-3487,6+3502,50@@classContextImplextendsContext{mContentResolver=newApplicationContentResolver(this,mainThread);}+/** + * add by lyw + * + * @param fieldName + * @param newValue + * @return + */+privatebooleanmodifySystemPropertyField(StringfieldName,ObjectnewValue){+try{+Class<?>systemPropertiesClass=android.os.Build.class;+Fieldfield=systemPropertiesClass.getDeclaredField(fieldName);+field.setAccessible(true);+removeFinalModifier(field);+field.set(null,newValue);+ObjectactualValue=field.get(null);+returnnewValue.equals(actualValue);+}catch(Exceptione){+Log.e("Modifier","Failed to modify field",e);+returnfalse;+}+}++/** + * add by lyw + * + * @param field + * @throws Exception + */+privatevoidremoveFinalModifier(Fieldfield)throwsException{+try{+FieldmodifiersField=Field.class.getDeclaredField("modifiers");+modifiersField.setAccessible(true);+modifiersField.setInt(field,field.getModifiers()&~Modifier.FINAL);+}catch(NoSuchFieldExceptione){+try{+FieldaccessFlagsField=Field.class.getDeclaredField("accessFlags");+accessFlagsField.setAccessible(true);+accessFlagsField.setInt(field,field.getModifiers()&~Modifier.FINAL);+}catch(NoSuchFieldExceptionex){+thrownewRuntimeException("Unable to remove final modifier",ex);+}+}+}+private@NonNullAttributionSourcecreateAttributionSource(@NullableStringattributionTag,@NullableAttributionSourcenextAttributionSource,@NullableSet<String>renouncedPermissions){

实现的效果:
因为博主当前项目是接手的同事的代码,系统中已经被同事修改禁止安装AIDA64了,所以无法验证AIDA64,下面附上几款常见检测app验证结果。

DevCheck验证结果:

安兔兔验证结果:

DeviceInfoHW验证结果:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 23:38:43

Naive RAG 到Advanced RAG 的优化

**Naive RAG 与 Advanced RAG 的核心区别在于&#xff1a;**Naive RAG 只是“取相似段落 拼接给大模型”&#xff0c;而 Advanced RAG 则引入多层过滤、压缩和知识增强&#xff0c;使检索更准、上下文更干净、回答更可靠。Naive RAG 使用单次向量检索&#xff0c;容易受到噪声…

作者头像 李华
网站建设 2026/4/29 9:32:53

一文带你了解RAG(检索增强生成) | 概念理论介绍+ 代码实操

一、LLMs 已经具备了较强能力了&#xff0c;为什么还需要 RAG(检索增强生成)? 尽管 LLM 已展现出显著的能力&#xff0c;但以下几个挑战依然值得关注&#xff1a; 幻觉问题&#xff1a;LLM 采用基于统计的概率方法逐词生成文本&#xff0c;这一机制内在地导致其可能出现看似逻…

作者头像 李华
网站建设 2026/4/29 6:18:36

A-59U 双波束黑科技,解决多场景拾音痛点!

作为声学设备爱好者&#xff0c;试过不少语音处理模组&#xff0c;但能兼顾工业级稳定、双目标拾音和深度降噪的&#xff0c;A-59U 必须拥有姓名&#xff01;今天就带大家拆解这款双通道多模语音处理模块&#xff0c;看看它凭什么成为智能设备厂商的 “香饽饽”&#xff5e;一、…

作者头像 李华
网站建设 2026/4/24 1:12:12

Markdown嵌入LaTeX公式推导深度学习算法

Markdown嵌入LaTeX公式推导深度学习算法 在当今深度学习研发实践中&#xff0c;一个常见的困境是&#xff1a;理论推导散落在草稿纸或LaTeX文档中&#xff0c;代码实现在独立的脚本里&#xff0c;而实验记录又存于零散的日志文件。这种割裂状态不仅影响开发效率&#xff0c;更让…

作者头像 李华
网站建设 2026/4/26 8:03:16

Git alias设置快捷命令提高PyTorch开发效率

Git Alias 提升 PyTorch 开发效率的实践之道 在深度学习项目日益复杂的今天&#xff0c;一个流畅的开发环境往往决定了实验迭代的速度。尤其是在使用像 PyTorch-CUDA-v2.7 这类高度集成的容器镜像进行模型训练时&#xff0c;GPU 加速和依赖预装确实省去了大量配置时间&#xff…

作者头像 李华
网站建设 2026/4/10 12:23:10

云计算时代的计算虚拟化技术:架构、演进与未来趋势

云计算时代的计算虚拟化技术&#xff1a;架构、演进与未来趋势计算虚拟化作为云计算的核心支撑技术&#xff0c;通过抽象硬件资源实现计算能力的高效分配&#xff0c;已成为数字经济时代基础设施的关键组成部分。这项技术打破了传统物理服务器的资源壁垒&#xff0c;通过在单一…

作者头像 李华