通过apktool d2j-dex2jar

时间:2017-02-01 08:12:58

标签: java android decompiling apktool

重新编译apktool生成的代码时出现以下错误:

d2j-dex2jar b base

错误:

  

java.nio.file.NoSuchFileException:b           at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)           at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)           at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)           at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)           at java.nio.file.Files.newByteChannel(Unknown Source)           at java.nio.file.Files.newByteChannel(Unknown Source)           at java.nio.file.Files.readAllBytes(Unknown Source)           在com.googlecode.d2j.reader.zip.ZipUtil.readDex(ZipUtil.java:57)           在com.googlecode.d2j.reader.zip.ZipUtil.readDex(ZipUtil.java:53)           在com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java)   :104)           在com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:288)           在com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:32)

1 个答案:

答案 0 :(得分:0)

您使用的标志不正确。因此错误说:我不明白你:'b'文件不存在。更仔细地阅读帮助。

修改

  

d2j-dex2jar --help

     

d2j-dex2jar - 将dex转换为jar

     

用法:d2j-dex2jar [options] [file1 ... fileN]

     

选项:

     

-d, - debug-info翻译调试信息

     

-e, - 异常文件详细信息异常文件,默认为   $ current_dir / [文件名] -error.zip

     

-f, - 强制重写

     

-h, - help打印此帮助信息

     

-n, - not-handle-exception不处理任何抛出的异常   dex2jar

     

-o, - 输出输出.jar文件,默认为   $ current_dir / [文件娜                                 我] -dex2jar.jar

     

-os, - optmize-synchronized optmize-synchronized

     

-p, - print-ir print ir to Syste.out

     

-r, - 在生成java .class时,reuse-reg重用regiter   文件

     

-s与--topological-sort / -ts

相同      

-ts, - topological-sort排序块按拓扑,即将   产生更多                                  可读代码

     

-v, - 详细显示进度

     

版本:reader-1.15,translator-0.0.9.15,ir-1.12

请汇编和解散,请阅读手册:

https://sourceforge.net/p/dex2jar/wiki/ModifyApkWithDexTool/

# build jar

d2j-jasmin2jar.sh -f  -o test_apk_jasmin.jar  test_apk_jasmin/ 

# verify jar

d2j-asm-verify.sh test_apk_jasmin.jar

# convert to dex

d2j-jar2dex.sh  -f -o classes.dex test_apk_jasmin.jar

# make a copy

cp test_apk-debug.apk test_apk-debug-toast.apk

# replace classes.dex in test_apk-debug-toast.apk

zip -r test_apk-debug-toast.apk classes.dex

# sign the apk

d2j-apk-sign.sh -f -o test_apk-debug-toast-signed.apk test_apk-debug-toast.apk