如何简单修改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中我们只能找到一个定义,所以可以直接修改成我们想要定义的名字,完成后点击保存,然后推回设备,重启设备后就生效了。