因为so文件属于编译后的,修改之后造成无法正常使用。
SO文件格式即ELF文件格式,它是Linux下可执行文件,共享库文件和目标文件的统一格式。
不可以。so是手机的一些运行库文件,置换移植其他系统的程序也需要修改更换相关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到设备中,重启设备即可生效
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)