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

107 篇文章 12 订阅
72 篇文章 0 订阅

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进行读取解析,这个就不用在展示代码了属于应用层面东西。

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值