news 2026/4/16 13:06:11

根据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/15 7:28:15

PyTorch torch.no_grad()上下文管理器用途

PyTorch torch.no_grad() 上下文管理器的深度解析与工程实践 在现代深度学习系统中&#xff0c;推理效率和资源利用率往往决定了一个模型能否真正落地。尤其是在 GPU 资源有限、批量处理需求高的场景下&#xff0c;哪怕是一点点显存或计算开销的节省&#xff0c;都可能带来吞吐…

作者头像 李华
网站建设 2026/4/16 12:36:13

Conda remove卸载不再需要的PyTorch包

Conda remove 卸载不再需要的 PyTorch 包 在深度学习项目迭代过程中&#xff0c;环境管理常常成为被忽视却影响深远的技术细节。设想这样一个场景&#xff1a;你正在为新模型升级到 PyTorch 2.8&#xff0c;但在导入 torch 时却发现加载的是旧版本&#xff1b;或者训练脚本突然…

作者头像 李华
网站建设 2026/4/15 16:38:36

AI Agent技术架构详解:六大核心模块

01—六大核心模块概述 AI agent六大核心模块主要包括&#xff1a;感知模块、决策规划模块、执行模块、专业大模型模块、记忆管理和反馈系统。由这六大模块构建成一个系统工程化的AI系统&#xff0c;而非demo状态的AI玩具。专业的大模型模块这里就不详细介绍了&#xff0c;主要…

作者头像 李华
网站建设 2026/4/16 12:33:13

Git fsck检查PyTorch仓库完整性

Git fsck 与 PyTorch 镜像的可靠性保障&#xff1a;从源码完整性到环境一致性 在深度学习项目日益复杂的今天&#xff0c;一个看似不起眼的 Git 对象损坏&#xff0c;可能就会让 CI 流水线卡在编译阶段&#xff1b;一次不经意的镜像版本错配&#xff0c;足以导致模型训练性能下…

作者头像 李华
网站建设 2026/4/13 12:59:40

Jupyter Notebook插入网页内容iframe嵌入

Jupyter Notebook 中嵌入网页内容&#xff1a;基于 iframe 的高效开发实践 在现代数据科学和深度学习项目中&#xff0c;开发者常常面临一个看似简单却影响深远的问题&#xff1a;如何在一个统一的界面中同时进行代码编写、模型训练监控与可视化分析&#xff1f;频繁地在 Jupyt…

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

域名注册全攻略:从概念到落地的完整指南

域名注册全攻略&#xff1a;从概念到落地的完整指南在互联网时代&#xff0c;域名是企业和个人在网络世界的"数字门牌"&#xff0c;具有标识性、唯一性和商业价值。域名注册不仅是搭建网站的基础步骤&#xff0c;更是品牌战略的重要组成部分。本文将系统梳理域名注册…

作者头像 李华