android framework手机系统改机相关知识简单方案

Android11.0 修改设备名、型号、厂商 build/make/tools/buildinfo_common.sh diff --git a/make/tools/buildinfo_common.sh b/make/tools/buildinfo_common.sh index 4abd59e..4fc4f81 100755 --- a/make/tools/buildinfo_common.sh +++ b/make/tools/buildinfo_common.sh +echo "ro.product.${partition}.brand= 阅读详情

hi粉丝朋友们大家好!
近来有些粉丝朋友问我改机相关怎么玩,其实这个我一直觉得有点拿不出台面,害怕大家干坏事。。。哈哈,也许我想多了,我是个程序员技术上研究而已,我自己不干坏事就行。

android手机改机其实是一个比较偏门的领域,但是市场需求好像还比较大,比如很多那种群控工作室。

1、主流改机方案

在这里插入图片描述

主要有2种:
1.静态改机即这种就和我们手机一样,刷入出厂厂商就有机型等信息,刷入就不可以改变,这种改变的就是 系统机型相关ro类型的prop,需要改变只能重新编译代码修改
都以小米5的lineage版本(这个搭建可以百度)为例子
这种修改方式:
到device路径mk文件找到定义PRODUCT相关宏进行修改
device/xiaomi/gemini/lineage_gemini.mk

# Device identifier. This must come after all inclusions.
PRODUCT_NAME := lineage_gemini
PRODUCT_DEVICE := gemini
PRODUCT_BRAND := Xiaomi
PRODUCT_MODEL := MI 5  #这里PRODUCT_MODEL其实最后会经过编译系统转变成ro.product.model
PRODUCT_MANUFACTURER := Xiaomi

PRODUCT_GMS_CLIENTID_BASE := android-xiaomi

PRODUCT_BUILD_PROP_OVERRIDES += \
    PRODUCT_NAME="gemini" \
    PRIVATE_BUILD_DESC="gemini-user 8.0.0 OPR1.170623.032 V9.6.1.0.OAAMIFD release-keys"

# Set BUILD_FINGERPRINT variable to be picked up by both system and vendor build.prop
BUILD_FINGERPRINT := "Xiaomi/gemini/gemini:8.0.0/OPR1.170623.032/V9.6.1.0.OAAMIFD:user/release-keys"

TARGET_VENDOR := Xiaomi

这里举个例子进行讲解:
PRODUCT_MODEL := MI 5 #这里PRODUCT_MODEL其实最后会经过编译系统转变成ro.product.model
所以这里我们就把MI 5可以自己修改成xxxx
然后在进行重新编译

2.动态改机,这种就是系统可以随时改变自己手机当前机型(当然只是针对应用层面),真实的prop并没有改变,但是应用获取prop都是需要通过系统接口,我们对系统接口进行hook,改变他的的返回值为我们设定机型既可以达到

在这里插入图片描述

这种思路就是只能“”骗“”第三方这种应用程序,实际上系统的ro相关prop没有变化,只是app获取我们手机版本机型等都是需要相关的接口,比如获取手机型号app只能用java类的如下接口:
Build.MODEL --这个就是型号其实它本质getString(“ro.product.model”);即获取ro.product.mode的属性:
我们思路就是改变这个getString方法,识别到如果是获取我们要修改的属性,我们就固定返回我们设置好的值如我们把 型号为 MI 5变成 MI 10:

 @UnsupportedAppUsage
    private static String getString(String property) {
        if ("ro.product.model".equals(property)) {
            return "MI 10";//固定返回MI 10
        }
        return SystemProperties.get(property, UNKNOWN);
    }

修改效果如下:
在这里插入图片描述

这样就实现了一个简单的Hook,当然实际我们还需要想办法让返回"MI 10"变成我们可以让一个专门改机的Apk进行设置,这个部分就方法比较多了,比如这里可以通过跨进程通讯调用获取,或者我们统一写入系统的某个Setting值然后Build.java进行读取解析,这个就不用在展示代码了属于应用层面东西。

在这里插入图片描述

Android 11.0 修改系统默认设备类型的平板电脑类型为设备类型 在产品开发中,对于产品设备类型都默认为tablet即平板电脑类型,即 product="tablet" 在一些不是平板的项目中,可能需要修改这个类型为device类型 即 product="device",这就需要找到相关设置系统属性的代码,修改系统属性就可以了 阅读详情

相关推荐

Android 10.0 修改系统默认的产品类型为设备类型

在产品开发中,在原厂sdk源码部分,会默认有一个产品类型,tablet phone device三种代表是平板电脑手机和设备类型,目前由于sdk源码默认的产品类型为tablet即平板电脑,所以需要修改成设备,更符合要求

安卓兼职framework和app工程师的博客 1157

【Android系统】修改设备型号(model)和版本号

最终写到android的ro属性里面 abd shell getprop | grep ro 相关文件: build/make/tools/buildinfo.sh build/make/core/Makefile device/qcom/msm8953_64/msm8953_64.mk buildinfo.sh: ec...

John_chaos的博客 9447

Android 12.0修改系统默认设备类型的平板电脑类型为设备类型

在12.0的系统rom产品开发中,对于产品设备类型都默认为tablet即平板电脑类型,即 product="tablet" 在一些不是平板的项目中,可能需要修改这个类型为device类型 即 product="device",这就需要找到相关设置系统属性的代码,修改系统属性就可以了

安卓兼职framework和app工程师的博客 3184

车载手机系统开发面试福利:安卓framework面试题目-某公司真题带答案

上面就是面试的10几个面试题目,其实真实面试聊得比上面这个多,不过整体上难度感觉不是很大,面试完成立即就让我等待一会,然后就进入了领导面试,HR面试。马哥是教我遇到这类问题的排查思路和方向,然后让我自己按照这个方向查,马哥这种答疑方式其实非常好的锻炼了我的问题分析和解决能力,导致后续遇到相关问题都是比较有条理分析解决。更多framework实战干货,干货资料,请关注下面“千里马学框架”

learnframework的博客 1240

【STM32学习】(29)STM32实现595驱动三个数码管(标准库和HAL库实现)

我选用的单片机型号为:STM32F103系列 74LS595是一个串转并行输出的芯片,它能为单片机节省很多的IO口,应用场景广泛。 现要求三个数码管动态显示,常规设计都是并行实现,需要8个IO数据口,然后还需要3个IO片选数码管接口,这样大大占用了IO口,导致连接的外设变少。因此我们引入74LS595芯片。电路设计如下: 只需要三个共阴极数码管与三个595芯片级联即可完成,通过RCLK,SCK,SER三个IO即可完成对数码管的动态控制并显示。电路焊接的实物图如下: 要求完成功能:实现数.

XiaoCaiDaYong的博客 8265

OpenWrt南京电信PPPoE IPv6配置:从零搭建稳定双栈网络

本文详细指导如何在南京电信PPPoE宽带环境下,为OpenWrt路由器配置稳定的IPv6双栈网络。核心在于正确设置WAN6接口为DHCPv6客户端,并请求/60前缀,同时配置LAN口分发地址并放行防火墙关键流量,确保内网设备获得原生IPv6连接。

water的专栏 1340

android framework实战车机手机系统开发环境相关问题补充

make出错,然后再把frameworks/base/cmds/bootanimation/Android.mk又修改正确恢复原样,再进行make时候就会重新加载新加入的Android.mk。原因:如果确认已经拷贝了文件夹到了源码根目录这个其实是因为android8.1上面热编译没有触发全局重新扫描mk文件。去frameworks/base/cmds/bootanimation/Android.mk文件中故意加一个错误字符。2、如果使用vmware工具,请需要vmware中也开启相关加速开关。

learnframework的博客 777

Android: Framework层理解(一)

不管你是做手机系统开发还是APP开发,Framework层你肯定会碰到。除非你所做的事情只是UI的优化。    那么Framework具体的工作是做什么呢? 简单一句话:提供Android开发人员一系列的服务和API的接口。    关于API接口如何查看:如何查看Android API文档 以及Android5.0新增加的API接口:Android 5.0 新增和改进的API ,感兴趣的同

LYJ的IT生活 3万+

Win11网络卡顿?用Wireshark抓包5分钟定位问题(保姆级实战)

本文详细介绍了如何使用Wireshark在Win11系统中快速定位网络卡顿问题。通过5分钟抓包分析,作者成功发现TCP重传率高达37%的罪魁祸首,并提供了从准备工作到实战分析的保姆级教程,帮助用户解决游戏卡顿、视频会议延迟等常见网络问题。

weixin_28839629的博客 306

Fluent VOF造波从入门到放弃?手把手教你用k-w SST模型搞定波浪模拟

本文详细介绍了使用Fluent VOF和k-w SST模型进行波浪模拟的实战技巧,从参数设置到结果优化,帮助用户避开常见误区。通过工业项目验证的配置方案,提升波浪模拟的准确性和计算效率,特别适合处理多相流和复杂湍流场景。

weixin_27102543的博客 422

车载手机系统开发面试福利5:安卓framework系统岗位面试题目汇总

本文分享了Framework面试常见问题合集,包括WMS新老版本区别、Activity显示流程、跨进程通信等核心知识点。这些题目既有基础知识考察,也有开放性问题设计,旨在评估面试者的系统框架理解深度和思维灵活性。作者建议学员通过系统课程学习掌握核心概念,并在VIP群中交流讨论解题思路。文中特别强调部分题目没有标准答案,重点考察知识应用能力而非死记硬背。最后推荐关注"千里马学框架"获取更多实战干货。

liaosongmao1的专栏 63

Ollama DNS 重新绑定攻击 (CVE-2024-28224)

一旦 DNS 重新绑定攻击成功,攻击者就可以对这些 API 进行排序,以读取 Ollama 运行的进程可访问的任意文件数据,并将这些数据泄露到攻击者控制的系统中。完成对“创建模型” API 请求的调用后,Ollama 将收集组成新创建的用户模型的许多工件,包括大型语言模型数据、许可证数据等,以及我们要提取的文件,所有这些都可以通过其 SHA256 内容进行寻址。这是我们要窃取的文件,在我们的示例中,是可通过运行 Ollama 的主机上的路径名访问的现有文本文件。值得注意的是,该模型配置为通过参数中的。

技术超强的网络安全平台 1648

Android framework 知识路线

Android 内核相关知识原理总结

记录网络缺失的知识 1239

在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch

文章目录在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch结论参考资料解释相关命令版本关系版本选择总结:实验 在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch 结论 使用conda虚拟环境 使用conda命令安装 最重要的是版本关系(python、cuda、cudnn、pytor或者tensorflow框架)的对应。 参考资料 tensorflow2.x安装 理清GPU、

纸上得来终觉浅,绝知此事要躬行! 3万+

基于Simulink的光伏电站AGC/AVC协调控制仿真

摘要:本文基于Simulink构建光伏电站AGC/AVC协调控制仿真模型,通过分层控制架构实现有功-无功解耦与储能协同。系统包含100kW光伏阵列、50kWh储能及逆变器组件,采用PID控制器实现AGC频率调节(±0.1Hz)和Q-V下垂控制实现AVC电压稳定(±2%)。仿真验证了三种工况下协调控制的有效性:正常调度时储能充电20kW;负荷突增时储能15kW放电维持频率;光照骤降时储能30kW放电并吸收2kVAR无功稳定电压。结果表明,该方案可使频率/电压偏差分别控制在0.1Hz和7.6V内,响应时间&lt

xiaoheshang_123的博客 235

hal深入剖析之aidl实战-android framework车机车载手机系统开发

创建最重要的aidl接口文件,需要在第一步创建的目录下`-- mytest编写aidl内容:String key;int value;还是就是parcelable都是需要进行结构化,成员属性写清楚到aidl。

learnframework的博客 6163

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Android使用定制framework开发应用

Android系统作为目前开源移动操作系统的代表已经更新到了4.0.3版本,由于其开源的特性,使操作系统自身具备了最大限度的弹性,但同时也造成了版本的多样性,市面上所出现的都是各手机厂商或者ROM制作爱好者所修改过的系统。但是如何开发Android系统framework层那,我们知道使用Eclipse+ADT就可以进行Android 应用的开发。使用手机或模拟器进行相应效果的调试。 这是标准的应

1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

车载手机系统开发面试福利:安卓framework开发面试题目-某公司真题带面试者答案

他还给大家记录了当时如何回答面试题目的,大家可以看看下面的详细面试题,当然学员的不一定回答的非常全面和百分百正确,这里大家可以进行讨论留言等,后期整理更加完善的汇总到vip群中。-运行时可以查看到CPU的信息,已经线程在CPU中的优先级 Priority 一般应用都是110,当前CPU执行时大核小核,以及CPU频率。3.判断需要显示的窗口,是否提交到合成中,以及相关属性是否异常,经常查看都就是透明度,裁剪crop,Visible,覆盖,父节点。

learnframework的博客 1274

winscope怎么实现user版本上导出方案设计探讨-千里马android framework车载车机手机系统开发

在马哥给讲解怎么用winscope来分析各种闪黑,黑屏等问题后,很多买课的同学都开始使用这个工具用于实际公司的项目了,但是很多同学又开始发现有一个问题,那就发现在user版本的手机设备上发现无法抓取相关的winscope,哪怕可以抓取也发现没办法导出来分析。上面已经分析了bugreport的原理,实际是借助dumpstate来实现获取高权限root的,那么问题来了,为啥wmtrace相关文件夹呢?首先需要了解点bugreport其实本质上也最多只能有shell权限,因为也属于adb shell拉起的进程,

learnframework的博客 960

企业级Android Framework内核源码解析,Framework到底从何学起?

不管你是做手机系统开发还是APP开发,Framework层你肯定会碰到。除非你所做的事情只是UI的优化。那么Framework具体的工作是做什么呢?简单一句话:提供Android开发人员一系列的服务和API的接口。众所周知,Android是一个基于Linux实现的操作系统。但对于Linux内核来说,Android也仅仅只是一个运行在内核之上的应用程序,与其他运行在内核之上的应用程序没有任何区别。

2401_85388974的博客 663

android 修改手机系统,【教程贴丨09-29】手机系统APK自己来修改

该楼层疑似违规已被系统折叠隐藏此楼查看此楼第五个教程是:怎样修改锁屏 ---任你修改1、相关锁屏的文件是system\framework\framework-res.apk和system\framework\android.policy.jar,framework-res.apk是关于界面显示的,我主要是修改它,android.policy.jar关于动做执行的,java不懂暂时无力修改。1、相...

weixin_33640304的博客 1514
上一篇: Android系统Input专题源码分析视频课程/千里马Framework/InputDispatcher/InputReader/模拟触摸事件
下一篇: Android Framework开发之新加一个app源码到packages/apps编译Android.mk配置
千里马学框架
博客等级 码龄6年 1万+粉丝 650原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值