前语

去年年末提了新车,这车什么都好便是自带的高德地图版别太低了,在高德地图已经进入6.x的年代,车机上自带的才4.x,更重要的是不支持晋级,从高德官网下载的车机版装置提示签名不同,掩盖装置又没有权限,就很难受,好在高德官方论坛里边有许多大佬都有提供共存版别,十分好用approach

可是,作为一个Android开发人员,怎能如此没有追求,当然得自己造一个出来啊。

前期准备

首要需要感谢的是高德地图的APK没有进行加固,这大大减轻了咱们反编译的工作量,为此咱们需要以下工具:

  1. apktools.jar 用于对apk进行反编译及从头打包 官方地址

  2. dex2jar 用于将apk中的dex文件转java编译器换为可读的jar格局 下载地址android是什么系统

  3. jd-gui 用于查看反编译出来的源码信息的图画化工具 下载地址

由于部分网站可能被墙无法访问,能够挑选从我打包好的云盘下载

当然,最后还不能忘了下载 高德地图车机版

终究环境结构如下:

Android反编译:手把手教你制造高德地图车机共存版

反编译流程

反编译获取有apple效信息

首要榜首步便是经过 apktools.jar 工具对官方的apk进行解包;

# 经过 apktools.jar 进行解包
$ java -jar .apktool_2.6.0.jar d .AUTO_V6.1.0.600644_release_signed.apk

源码编程器令履行后会在当时途Java径生成一个 AUTO_V6.1.0.android/harmonyos600644_releaAndroidse_signed 文件夹,这儿边便是apk解包之后的内容,咱们后工资超过5000怎么扣税续的java是什么意思修正也是根据这个文件夹

接着将 AUTO_V6源码网站.1.0.600644_release_signed.apk 当作android手机压缩文件翻开,将其中的 classes.dex 文件解压到源码网站当时途径,并经过 dex2ja工龄差一年工资差多少rdex 文件转换为 jar 文件

# 将 dex 转换为 jar
$ .dex2jar-2.0d2j-dex2jar.bat .classes.dex

指令履行后会在当时途径生成 classes-dex2jar.jar 文件

修正关键信息

修正包名

要做共存版,最重要的当然是修正使用包源码精灵永久兑换码名了,翻开 .AUTO_V6.1.0.600644_release_signedAndroidManifest.xml,榜首行里边 package 特点便是包名,改为你自己的包名,留意不要和其它使用重复即可,我这边是源码时代在后面加上了.coexist修正为com.autonavi.amapauto.coexist

Android反编译:手把手教你制造高德地图车机共存版

修正工商银行电话人工客服其它装备

仅修正包android/harmonyos名并没有完毕,除此之外,咱们还需要将 AndroidManifest.xml 文件中的一切涉及到权限及内容提供源码者的原 com.autona源码编辑器下载vi.ajavascriptmapauto 修正为 com.autonavi.amapauto.coexist

Android反编译:手把手教你制造高德地图车机共存版

Android反编译:手把手教你制造高德地图车机共存版

生成APK

从头打包成apandroid手机k

在对解包后的数approach据进行修正之后,咱们能够再经过 apktools.jar 将文件夹从头打包为 apk

# 从头打包为apk
$ java -jar .apktool_2.6.0.jar b .AUTO_V6.1.0.600644_release_signed -o .AUTO_V6.1.0.600644_coexist_unsigned.apk

履行后会在当时途径生成 AUTO_V6.1java模拟器.0.6006工龄差一年工资差多少44_coexist_unsigned.apk,这个时分的apk是没有签名的,无法进行装置运用。

从头签名

对于没有签名的apk,能够经过jarsigner -verjava面试题bose -keystore 【签名文件】-storepass 【签名密码】 -signedjar 【输出APK】 【未签名APK】 【签名别号】进行签名

# 从头签名
$ jarsigner -verbose -keystore .wj_android.jks -storepass xxxxxx -signedjar .AUTO_V6.1.0.600644_coexist_signed.apk .AUTO_V6.1.0.600644_coexist_unsigned.apk xxxxxx

签名完结会在当时途径生成 AUTO_V6.1.0.600644_coexist_signed.apk,这个apk就能够直接进行装置运用了

绕过校验机制

在装置完上面的apk翻开后,你会发现根本无法运java培训用,会提示使用出现反常过错

Android反编译:手把手教你制造高德地图车机共存版

这个是高德地图发动的时分做了签名相关的校验,咱们修正了包名及签名,所以无法经过校验

定位发动界面

定位发动界面其实很简单,仍是翻approach开之前的 AndroidManifest.xml 文件,在其中查找 android.intent.category.LAUNCHER,其所在 Aappetitectivity 便是发动界面

Android反编译:手把手教你制造高德地图车机共存版

然后咱们就能够按照这个包途径,在之前界面的文件夹里android是什么系统边找到对应的源文件了,解包出来的代码是smali格局的

Android反编译:手把手教你制造高德地图车机共存版

一个简单的类被拆成了这么多,并且对应smali代码咱们也不熟悉,更重要的是smali中的中文都被编码了,排查起来愈加困难,这个时分咱们前面转源码编程器换出来的 classes-dex2jar.jar 文件就派上了用场

定位校验逻辑

翻开 jd-gui 并将classes-dex2工龄差一年工资差多少jar.jar 拖拽到窗口里,咱们很快找到发动 Activity 的代码

Android反编译:手把手教你制造高德地图车机共存版

在这儿咱们能够直接查找过错信息文本

Android反编译:手把手教你制造高德地图车机共存版

咱们找到办法 g() 的调用地点

Android反编译:手把手教你制造高德地图车机共存版

根据上面的代码,java环境变量配置咱们能简单的推断,办法android什么意思 i() 便是跳转进入导航界面

Android反编译:手把手教你制造高德地图车机共存版

由此可知关键代码 p90.d(vd.w().e()) 如果回来为 false 则会直接翻开地图,否则就会提示反android下载安装

Android反编译:手把手教你制造高德地图车机共存版

这儿咱们在回调解包出来的 smali 代码里,找到 p90 这个工商银行文件,找到 d(Context) 这个办法

Android反编译:手把手教你制造高德地图车机共存版

修正校验逻辑

smali 语法和 Java 仍是有很大不同的,可是咱们不需要精java怎么读通,对应这个校验办法看上去很杂乱,可是咱们的需求只不过是让这个办法回来 true 即可,因此修正如下:源码之家

Android反编译:手把手教你制造高德地图车机共存版

修正之后再按照上appear打包APK 的步骤从头打包就能正常运用了。

资源修正

如果你想要给APP修正为不同的名称,不同的图java编译器标甚至是替换内部的图片,这些就都很android下载安装简单了,只需要找到对应的图片、文本资源,直接进行替换就能够了,不需要像修正包名那java模拟器么杂乱

终究作用

来看下装置的终究作用吧

Android反编译:手把手教你制造高德地图车机共存版

作者: WangJie0822 链接: www.wanjava是什么意思gjie0822.top/posandroid/harmonyosts/5569b… 来历: WangJie0822 著作权归作者一切。商业转载请联系作者取得授权,非商业转载请注明出处。