如何简单修改Android的so文件

有时候需要自定义安卓默认的蓝牙设备名称。当然,有了源代码就好办了,但是没有源代码怎么办?这时候就需要修改so文件了。

蓝牙默认设备名称修改于:

frameworks \ base \ core \ JNI \ Android _ bluetooth _ common . h

主要是修改Bt MTK _ Android _ default _ local _ name的值。

# define BT MTK _ 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 | s 15安卓BT

在WinHex中我们只能找到一个定义,所以可以直接修改成我们想要定义的名字,完成后点击保存,然后推回设备,重启设备后就生效了。