1

我们老大让我研究一个软件,apk的,看看人家是怎么用js和java交互,完成一系列操作的。
我以前听说过可以通过“反编译,再打包”的形式,修改别人的apk。

在我们想要研究的apk中,我用直接解压缩就能看到他们的js代码,放在asset文件夹下。我们的前端开发说,我们可以简单改一下这个js,输出一些关键数据,就能研究js和java的交互逻辑了。(这个软件最终会通过webView加载这个js,进行一系列的操作,我们可以通过Chrome来debug这个WebView)

请问,这个目的能实现吗?应该怎么做?
多谢

PS:我们不是要偷什么,只是想看看人家是怎么设计的。

7个回答

1

你的目的是研究反编译打包吗?
还是为了JS和java的交互?

按我的理解,为了js和java交互吧
重新打包,植入是一个技术活,即使重新打包完成了,签名也不一样了,现在android普遍是V2打包,已经不能再使用简单的解包打包的方案了

为了android/h5的交互的话 有很多文章都可以借鉴,交互都还算比较简单

1

前段时间写了一个js和原生(目前提供了和Java交互)交互的库,https://github.com/zhaomenghu...。简单说下特性:支持js主动通过同步及异步方法调用。支持原生主动提供调用js,js能够监听原生层的数据。支持 js 直接调用系统API,无需原生层写插件,主要利用 java 反射机制。

0

csdn上有人这么做过,出过博文,去找下吧

0

APK是一个zip包,asset文件夹会原封不动的保留,不参与arsc和R文件的生成,可以直接解压替换该目录下任意文件,然后进行重新打包签名运行,只要apk没有在运行时做一些校验,就可以得到你想要的结果。

0

给你几个关键词 apktool.jar, signapk.jar

或者直接百度AndroidKiller(结合了apktool和signapk等工具的一个结合工具包)

0

js和java交互,去看weex的framework吧。
本质是native和js之间的映射和消息传递。
最终的native的v8引擎是c++写的。

0

可以啊 最多重新打包一下喽 我们经常这么干 哈哈

撰写答案

相似问题