如何从APK文件获取本机代码

时间:2018-11-06 10:08:58

标签: android react-native apk

我用react native编写了一个应用程序,但是偶然地在开发快要结束时,我的HDD崩溃了,现在我只有APK文件,我能否仅从该apk文件中检索react native代码?

3 个答案:

答案 0 :(得分:7)

否,恐怕您无法检索您的React本机代码,就好像您对apk文件进行反编译一样,它会返回android的Java代码,但没有React本机代码。

因为,React Native将代码转换为本地语言,具体取决于您要构建其Android还是ios的操作系统。

答案 1 :(得分:0)

在解压缩apk文件时,在资产文件夹内,index.android.bundle文件是捆绑的react源代码。将index.android.bundle重命名为something.js

由于something.js是一个捆绑文件(最小/已丑化),请使用一些unuglifier / jsbeautifier使其可读。 (也请检查jsnice)

总比没有好。

答案 2 :(得分:0)

不,您无法检索实际代码,但可以获取一些反编译代码

安装apktool

对于 Macbook

brew install apktool

对于 Linux

apt-get install -y apktool

对于窗口

您可以阅读窗口DOCS的安装步骤

用法

after install `apktool`, unzip apk file by run this command on terminal like this:

apktool d /pathOfApkFile.apk


After that you will get `index.android.bundle` file at `pathOfApkFile/assets/index.android.bundle`

than you can use [react-native-decompiler][1] for decompile `index.android.bundle` file

## Decompile `index.android.bundle` File
you can decompile `index.android.bundle` by run this command

npx react-native-decompiler -i ./index.android.bundle -o ./output

after that, you will get **JS decompiled file** in `./output` directory

  [1]: https://www.npmjs.com/package/react-native-decompiler