完美替换原车导航的方法(教程篇)
写在前面
首先要感谢一下论坛里的另一篇教程
由于该教程需要替换程序所以会略显麻烦,在经过本人的不懈努力(一堆反编译工作,不断的尝试)之后,搞清楚了原车导航的启动过程,从根本上修改了原车导航的APP。
注:本教程具有一定危险性,还是请谨慎操作,以免不必要的麻烦,如果因此导致您的导航无法使用,后果自负,所以还是请慎重对待。
原理篇
其实原理非常简单,就是找到中控导航厂家的配置位置,以前接触过飞歌的导航,所以略有些了解,但是后来发现DX3的导航并不是以配置文件的形式存在的,所以不得不用些逆向工程(主要就是apktool)的方法。
中控启动之后会先启动【HBS_DX3_TY_NWD_GB_Carkit_Launcher_4.2_1024x600.apk】这个应用,就是主界面,我没搞清楚NWD(可能是诺威达)和HBS(应该是卡仕达)之间的关系,但这不重要。
当点击主界面里【导航】这个快捷方式之后,程序会先去系统配置数据库里找真正的导航应用,如果没有就会启动【四维图新】,这里是硬编码的。
当按下面板上的【NAVI】按键其实就是点击了一下快捷方式,所以修改了【导航】就会顺便把【NAVI】也一起改了
就是说HBS为DX3做主界面的时候默认指定了【四维图新】,但是留了一个配置的后门,所以我们就可以修改这个配置从而实现替换导航
中控启动之后会先启动【HBS_DX3_TY_NWD_GB_Carkit_Launcher_4.2_1024x600.apk】这个应用,就是主界面,我没搞清楚NWD(可能是诺威达)和HBS(应该是卡仕达)之间的关系,但这不重要。
当点击主界面里【导航】这个快捷方式之后,程序会先去系统配置数据库里找真正的导航应用,如果没有就会启动【四维图新】,这里是硬编码的。
当按下面板上的【NAVI】按键其实就是点击了一下快捷方式,所以修改了【导航】就会顺便把【NAVI】也一起改了
就是说HBS为DX3做主界面的时候默认指定了【四维图新】,但是留了一个配置的后门,所以我们就可以修改这个配置从而实现替换导航
准备工作
ADB工具包,这是官方的下载地址(https://developer.android.google.cn/studio/releases/platform-tools.html),也可以找一个其他的adb,只要有adb命令就可以

下载之后解压出来
将车机和你的PC机放到同一个网络下,我使用的方法就是找一个手机做热点,然后用我的windows平板连上去

拿到车机的IP,我的IP是192.168.43.32
和车机连接(Windows)
打开【命令提示符】,打开的方法是按住Windows键再按R键,在左下角的窗口中输入“cmd”并回车,或者直接在【开始】菜单里面找【命令提示符】

输入【cd 你的目录】,cd后面要带一个空格,如果在其他盘符就先输入【X:】

输入【adb connect 你的车机IP】,要用空格分隔
如果你看到【connectd to 你的车机IP】就说明成功了,可以进入下一步
查看已有配置

输入【adb shell】,由于中控默认就开了root,所以就直接到这一步就可以了,当然先输入【adb root】也没关系

输入【sqlite3 /data/data/com.android.providers.settings/databases/settings.db】

首先输入【select * from system where name like 'navi%';】来查看一下当前的配置,这个语句要输入一个半角的分号结束
这个是我已经修改过了的配置,乱码的那个地方没有关系,它是用于配置应用名的,我没发现这个配置会在哪里显示,所以就不管了。
由于我在操作的时候是有这个配置的,所以只需要【修改配置】就可以了,如果没有的话就要【创建配置】
由于我在操作的时候是有这个配置的,所以只需要【修改配置】就可以了,如果没有的话就要【创建配置】
修改配置(如果存在相关配置)

输入【update system set value='包名' where name='navigation_packagename';】修改包名
输入【update system set value='类名' where name='navigation_classname';】修改类名
输入【update system set value='类名' where name='navigation_classname';】修改类名
这两个语句就是用来修改真正导航的应用信息的,然后再执行之前的语句看一下是不是修改成功了
创建配置(如果不存在相关配置)
输入【insert into system(value,name) values('包名','navigation_packagename');】添加包名
输入【insert into system(value,name) values('类名','navigation_classname');】添加包名
输入【insert into system(value,name) values('应用名','navigation_appname');】添加应用名,应用名可以随便输
由于这个步骤我没有试过,所以还要请有机会试到这一步的车友告诉我执行的结果
输入【insert into system(value,name) values('类名','navigation_classname');】添加包名
输入【insert into system(value,name) values('应用名','navigation_appname');】添加应用名,应用名可以随便输
由于这个步骤我没有试过,所以还要请有机会试到这一步的车友告诉我执行的结果
退出并重启
输入【.exit】退出,注意有一个点
输入【reboot】重启
输入【reboot】重启
一些有用的东西
高德车机版的包名是【com.autonavi.amapauto】,类名是【com.autonavi.auto.MainMapActivity】
四维图新的包名是【com.mapbar.android.carnavi】,类名是【com.mapbar.android.carnavi.activity.MainActivity】
其他的还请知道的车友告知,我会不定期更新
四维图新的包名是【com.mapbar.android.carnavi】,类名是【com.mapbar.android.carnavi.activity.MainActivity】
其他的还请知道的车友告知,我会不定期更新
写在最后~~~~
至于原车带的【四维图新】就任君处置了,我目前还让它躺着,等以后再删了
如需转载,但请注明来源
[ 本帖最后由 Gaffi 于 2018-04-22 09:26:03
编辑 ]
分享到:
|
|
