mirror of
https://github.com/pxb1988/dex2jar.git
synced 2024-11-27 07:00:51 +00:00
fix compiler error by perv commit
--HG-- branch : 2.x
This commit is contained in:
parent
05dcb848c6
commit
21eadfaab9
@ -253,9 +253,8 @@ f1x : op=('move-result'|'move-result-wide'|'move-result-object'
|
||||
| 'monitor-enter' | 'monitor-exit' ) r1=REGISTER
|
||||
;
|
||||
fconst
|
||||
: op=('const/4'|'const/16'|CONST|'const/high16'|'const-wide/16'|'const-wide/32'|'const-wide/high16')
|
||||
r1=REGISTER ',' cst=INT
|
||||
| op='const-wide' r1=REGISTER ',' cst=(INT|LONG)
|
||||
: op=('const/4'|'const/16'|CONST|'const/high16'|'const-wide/16'|'const-wide/32'|'const-wide/high16'|'const-wide')
|
||||
r1=REGISTER ',' cst=(INT|LONG)
|
||||
| op=('const-string'|'const-string/jumbo') r1=REGISTER ',' cst=STRING
|
||||
| op=('const-class'|'check-cast'|'new-instance') r1=REGISTER ',' cst=(OBJECT_TYPE|ARRAY_TYPE)
|
||||
;
|
||||
|
@ -305,7 +305,7 @@ public class AntlrSmaliUtil {
|
||||
scv.visitTypeStmt(op, r, 0, unEscapeId(cst.getText()));
|
||||
break;
|
||||
case CONST_WIDE:
|
||||
scv.visitConstStmt(op, r, cst.getType() == SmaliLexer.INT ? ((long) parseInt(ctx.getText())) : parseLong(cst.getText()));
|
||||
scv.visitConstStmt(op, r, cst.getType() == SmaliLexer.INT ? ((long) parseInt(cst.getText())) : parseLong(cst.getText()));
|
||||
break;
|
||||
case CONST_WIDE_16: {
|
||||
long v;
|
||||
|
42
d2j-smali/src/test/java/a/BaksmaliTest.java
Normal file
42
d2j-smali/src/test/java/a/BaksmaliTest.java
Normal file
@ -0,0 +1,42 @@
|
||||
package a;
|
||||
|
||||
import com.googlecode.d2j.smali.Baksmali;
|
||||
import com.googlecode.d2j.smali.BaksmaliDexFileVisitor;
|
||||
import com.googlecode.d2j.smali.BaksmaliDumper;
|
||||
import com.googlecode.d2j.smali.Smali;
|
||||
import com.googlecode.dex2jar.tools.BaseCmd;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.file.FileSystem;
|
||||
import java.nio.file.Path;
|
||||
|
||||
public class BaksmaliTest {
|
||||
|
||||
|
||||
@Test
|
||||
public void t() throws Exception {
|
||||
File dir = new File("../dex-translator/src/test/resources/dexes");
|
||||
File[] fs = dir.listFiles();
|
||||
if (fs != null) {
|
||||
for (File f : fs) {
|
||||
if (f.getName().endsWith(".dex") || f.getName().endsWith(".apk")) {
|
||||
dotest(f.toPath());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void dotest(Path f) throws Exception {
|
||||
Path smali0 = new File("target/" + f.getFileName() + "-smali0.zip").toPath();
|
||||
try (FileSystem fs0 = BaseCmd.createZip(smali0)) {
|
||||
Baksmali.from(f).to(fs0.getPath("/"));
|
||||
}
|
||||
Path smali1 = new File("target/" + f.getFileName() + "-smali1.zip").toPath();
|
||||
try (FileSystem fs0 = BaseCmd.openZip(smali0); FileSystem fs1 = BaseCmd.createZip(smali1)) {
|
||||
BaksmaliDumper baksmaliDumper = new BaksmaliDumper();
|
||||
BaksmaliDexFileVisitor v = new BaksmaliDexFileVisitor(fs1.getPath("/"), baksmaliDumper);
|
||||
Smali.smali(fs0.getPath("/"), v);
|
||||
}
|
||||
}
|
||||
}
|
@ -36,8 +36,8 @@ public class SmaliTest {
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, DexClassNode> readDex(String path) throws IOException {
|
||||
DexFileReader dexFileReader = new DexFileReader(ZipUtil.readDex(new File(path)));
|
||||
Map<String, DexClassNode> readDex(File path) throws IOException {
|
||||
DexFileReader dexFileReader = new DexFileReader(ZipUtil.readDex(path));
|
||||
DexFileNode dexFileNode = new DexFileNode();
|
||||
dexFileReader.accept(dexFileNode);
|
||||
Map<String, DexClassNode> map = new HashMap<>();
|
||||
@ -49,7 +49,18 @@ public class SmaliTest {
|
||||
|
||||
@Test
|
||||
public void test2() throws IOException {
|
||||
String dexFile = "../dex-translator/src/test/resources/dexes/i_jetty.dex";
|
||||
File dir=new File( "../dex-translator/src/test/resources/dexes");
|
||||
File[]fs=dir.listFiles();
|
||||
if(fs!=null) {
|
||||
for (File f : fs) {
|
||||
if (f.getName().endsWith(".dex") || f.getName().endsWith(".apk")) {
|
||||
dotest(f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void dotest(File dexFile) throws IOException {
|
||||
DexBackedDexFile dex = DexFileFactory.loadDexFile(dexFile, 14, false);
|
||||
Map<String, DexClassNode> map = readDex(dexFile);
|
||||
|
||||
|
@ -44,12 +44,9 @@ public class DexWaveTest {
|
||||
}
|
||||
|
||||
private void test0(DexWeaver iw, String prefix) throws IOException, RecognitionException {
|
||||
|
||||
Smali s = new Smali();
|
||||
|
||||
DexClassNode before = s.smaliFile2Node(prefix + "-before.smali", getClass()
|
||||
DexClassNode before = Smali.smaliFile2Node(prefix + "-before.smali", getClass()
|
||||
.getResourceAsStream("/weave/smali/" + prefix + "-before.smali"));
|
||||
DexClassNode expectedAfter = s.smaliFile2Node(prefix + "-after.smali", getClass()
|
||||
DexClassNode expectedAfter = Smali.smaliFile2Node(prefix + "-after.smali", getClass()
|
||||
.getResourceAsStream("/weave/smali/" + prefix + "-after.smali"));
|
||||
|
||||
DexFileNode dfn = new DexFileNode();
|
||||
@ -58,7 +55,7 @@ public class DexWaveTest {
|
||||
|
||||
assertEqual(expectedAfter, dfn.clzs.get(0));
|
||||
|
||||
DexClassNode expectedGen = s.smaliFile2Node(prefix + "-gen.j", getClass()
|
||||
DexClassNode expectedGen = Smali.smaliFile2Node(prefix + "-gen.j", getClass()
|
||||
.getResourceAsStream("/weave/smali/" + prefix + "-gen.smali"));
|
||||
|
||||
dfn.clzs.clear();
|
||||
|
@ -1,37 +0,0 @@
|
||||
package com.googlecode.dex2jar.test;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.FileSystem;
|
||||
import java.nio.file.Path;
|
||||
import java.util.List;
|
||||
|
||||
import com.googlecode.dex2jar.tools.BaseCmd;
|
||||
import org.antlr.runtime.RecognitionException;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.googlecode.d2j.smali.Baksmali;
|
||||
import com.googlecode.d2j.smali.BaksmaliDexFileVisitor;
|
||||
import com.googlecode.d2j.smali.BaksmaliDumper;
|
||||
import com.googlecode.d2j.smali.Smali;
|
||||
|
||||
public class BaksmaliTest {
|
||||
@Test
|
||||
public void t() throws IOException, RecognitionException {
|
||||
|
||||
List<Path> files = TestUtils.listTestDexFiles();
|
||||
|
||||
for (Path f : files) {
|
||||
Path smali0 = new File("target/" + f.getFileName() + "-smali0.zip").toPath();
|
||||
try (FileSystem fs0 = BaseCmd.createZip(smali0)) {
|
||||
Baksmali.from(f).to(fs0.getPath("/"));
|
||||
}
|
||||
Path smali1 = new File("target/" + f.getFileName() + "-smali1.zip").toPath();
|
||||
try (FileSystem fs0 = BaseCmd.openZip(smali0); FileSystem fs1 = BaseCmd.createZip(smali1)) {
|
||||
BaksmaliDumper baksmaliDumper = new BaksmaliDumper();
|
||||
BaksmaliDexFileVisitor v = new BaksmaliDexFileVisitor(fs1.getPath("/"), baksmaliDumper);
|
||||
new Smali().smali(fs0.getPath("/"), v);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
8
pom.xml
8
pom.xml
@ -51,19 +51,11 @@
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.0</version>
|
||||
<configuration>
|
||||
<compilerId>eclipse</compilerId>
|
||||
<source>1.7</source>
|
||||
<target>1.7</target>
|
||||
<optimize>true</optimize>
|
||||
<encoding>${project.build.sourceEncoding}</encoding>
|
||||
</configuration>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-compiler-eclipse</artifactId>
|
||||
<version>2.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
|
Loading…
Reference in New Issue
Block a user