如何简单修改Android的so文件

如何简单修改Android的so文件,第1张

有的时候需要定制Android默认蓝牙设备名称,当然在我们有源码的情况下自然是很好处理,但如果没有源码呢?这时候就需要修改so文件了。

蓝牙默认设备名称的修改在:

frameworks\base\core\jni\Android_bluetooth_common.h

主要就是修改BTMTK_ANDROID_DEFAULT_LOCAL_NAME的值

#define BTMTK_ANDROID_DEFAULT_LOCAL_NAME "ANDROID BT"

查看相关mk文件可以知道,该文件最终编译到了libandroid_runtime.so中,所以我们直接找到编译好的libandroid_runtime.so

工具

WinHex

工具是一款非常不错的 16 进制编辑器,得到 ZDNetSoftwareLibrary 五星级最高评价,拥有强大的系统效用。

(PS:按F3查找下一个)

方法

将libandroid_runtime.so载入到WinHex中,然后全文搜索ANDROID BT,理论上只会有一处,当然也不能排除有多处,最终定位到代码如下:

00684736 | 73 31 35 00 48 49 4B 65 20 37 31 36 00 5B 47 41 | s15 ANDROID BT

在WinHex中我们可以搜到仅有一处定义,因此直接修改为自己想定义的名称,完成之后点击保存,重新push到设备中,重启设备即可生效

首先找到方法

https://note.youdao.com/s/1T07L3RG

例如瞎改这个方法

里面的所有类包名。

双击箭头就进入了字符串常量地址了,

001CAF5

可以右击进入编辑模式如果不方便可以选择用其他flex工具,进行跳转地址然后进行

进行修改,

我使用 flexhex工具可以复制粘贴。

比如

复制的时候要复制字符串端,不可以新插入新插入的技术比较难了,最好相等或者比他小。

这里改成

复制的时候00 不要复制进行上面就是复制多了导致粘贴的时候后面的无法进行粘贴了。

"com/tencent/tenpay/cert/CertUtil

tencent/com/替换为

qssq666/qqq/

以及

com/tencent

eny.qssq666/

com/tenpay/cert/CertUtil

tenpay/cert

qssq666/cert

Java_com_tencent_tenpay_cert_CertUtil_set_1token

com/tencent/enpay/cert/CertUtil

eny/qssq666/tenpay/cert/CertUtil

Java_com_tencent

替换为

Java_eny_qssq666

Java_tencent_com

替换为

Java_qssq666_qqq

Java_com_tenpay_cert

Java_com_zhengl_cert


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12082542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存