1.移植一款新的GPS首先需要将系统默认的GPS模块去除,检查系统是否生成了gps.default.so动态链接库,一般在out/target/product/rk3288/system/lib/hw/下面(具体位置还要看你使用的源码,一般都在system/lib/下),如果有,就删除它,包括其他相关的文件,并且修改Android.mk禁止它编译。
2.将先关源码拷贝到hardware/libhardware/modules/gps/下。
3.修改hardware/libhardware/modules/下的Android.mk。
4.配置gps_cfg.inf,设置GPS类型,接口,波特率等等。
5.将gps_cfg.inf拷贝到我们要打包的system/etc/下:在gps/下的Android.mk中添加
$(shell cp$(LOCAL_PATH)/gps_cfg.inf $(TARGET_OUT)/etc/)(这是在Android.mk中使用shell命令,这样做在源码已经编译好了的情况下,是没有问题的,因为$(TARGET_OUT)/etc 目录已经存在,但是作为新编译是不会Copy的,所以说在android的编译体系中 还得按照android提供的机制来进行操作,本人技术有限,使用PRODUCT_COPY_FILES没能成功,如果有大神有好的方法,求指教)。
6.使用mmm编译程序
使用mmm命令前需要先执行build/envsetup.sh脚本文件
source ./build/envsetup.sh
再使用mmm命令编译
mmm ./hardware/libhadwate/modules/gps/
这时候就可以把system.img下载到我们的板子上进行测试,要保证在板子上的system/下有gps.default.so和gps_cfg.inf
以上程序均是在Android4.4 linux-kernel 3.10下调试