如何简单修改Android的so文件

场景

有的时候需要定制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到设备中,重启设备即可生效

你可能感兴趣的:(android,源代码,BT,winhex)