gitextract__96gfnvm/ ├── .hgignore ├── .hgtags ├── .travis.yml ├── LICENSE.txt ├── NOTICE.txt ├── README.md ├── build.gradle ├── d2j-base-cmd/ │ ├── build.gradle │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── googlecode/ │ └── dex2jar/ │ └── tools/ │ └── BaseCmd.java ├── d2j-j6/ │ ├── README.md │ ├── build.gradle │ ├── j6-weave.txt │ ├── jarjar-rules.txt │ ├── proguard.txt │ └── src/ │ └── main/ │ └── java/ │ ├── j6/ │ │ ├── Files.java │ │ └── Thro.java │ └── pxb/ │ └── java/ │ └── nio/ │ ├── charset/ │ │ └── StandardCharsets.java │ └── file/ │ ├── CopyOption.java │ ├── FileSystem.java │ ├── FileVisitResult.java │ ├── FileVisitor.java │ ├── Files.java │ ├── LinkOption.java │ ├── OpenOption.java │ ├── Path.java │ ├── SimpleFileVisitor.java │ ├── attribute/ │ │ ├── BasicFileAttributes.java │ │ └── FileAttribute.java │ └── spi/ │ └── FileSystemProvider.java ├── d2j-jasmin/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── antlr3/ │ │ │ └── com/ │ │ │ └── googlecode/ │ │ │ └── d2j/ │ │ │ └── jasmin/ │ │ │ └── Jasmin.g │ │ └── java/ │ │ └── com/ │ │ └── googlecode/ │ │ └── d2j/ │ │ └── jasmin/ │ │ ├── Jar2JasminCmd.java │ │ ├── Jasmin2JarCmd.java │ │ ├── JasminDumper.java │ │ └── Jasmins.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── googlecode/ │ │ └── d2j/ │ │ └── tools/ │ │ └── jar/ │ │ └── test/ │ │ └── Jasmin2jTest.java │ └── resources/ │ └── jasmins/ │ └── type.j ├── d2j-smali/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── antlr4/ │ │ │ └── com/ │ │ │ └── googlecode/ │ │ │ └── d2j/ │ │ │ └── smali/ │ │ │ └── antlr4/ │ │ │ └── Smali.g4 │ │ └── java/ │ │ └── com/ │ │ └── googlecode/ │ │ └── d2j/ │ │ └── smali/ │ │ ├── AntlrSmaliUtil.java │ │ ├── Baksmali.java │ │ ├── BaksmaliCmd.java │ │ ├── BaksmaliCodeDumper.java │ │ ├── BaksmaliDexFileVisitor.java │ │ ├── BaksmaliDumpOut.java │ │ ├── BaksmaliDumper.java │ │ ├── Smali.java │ │ ├── SmaliCmd.java │ │ ├── SmaliCodeVisitor.java │ │ └── Utils.java │ └── test/ │ ├── java/ │ │ └── a/ │ │ ├── BaksmaliTest.java │ │ └── SmaliTest.java │ └── resources/ │ └── a.smali ├── dex-ir/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── googlecode/ │ │ └── dex2jar/ │ │ └── ir/ │ │ ├── ET.java │ │ ├── IrMethod.java │ │ ├── LabelAndLocalMapper.java │ │ ├── LocalVar.java │ │ ├── StmtSearcher.java │ │ ├── StmtTraveler.java │ │ ├── TransformerException.java │ │ ├── Trap.java │ │ ├── TypeClass.java │ │ ├── Util.java │ │ ├── expr/ │ │ │ ├── AbstractInvokeExpr.java │ │ │ ├── ArrayExpr.java │ │ │ ├── BinopExpr.java │ │ │ ├── CastExpr.java │ │ │ ├── Constant.java │ │ │ ├── Exprs.java │ │ │ ├── FieldExpr.java │ │ │ ├── FilledArrayExpr.java │ │ │ ├── InvokeCustomExpr.java │ │ │ ├── InvokeExpr.java │ │ │ ├── InvokePolymorphicExpr.java │ │ │ ├── Local.java │ │ │ ├── NewExpr.java │ │ │ ├── NewMutiArrayExpr.java │ │ │ ├── PhiExpr.java │ │ │ ├── RefExpr.java │ │ │ ├── StaticFieldExpr.java │ │ │ ├── TypeExpr.java │ │ │ ├── UnopExpr.java │ │ │ └── Value.java │ │ ├── stmt/ │ │ │ ├── AssignStmt.java │ │ │ ├── BaseSwitchStmt.java │ │ │ ├── GotoStmt.java │ │ │ ├── IfStmt.java │ │ │ ├── JumpStmt.java │ │ │ ├── LabelStmt.java │ │ │ ├── LookupSwitchStmt.java │ │ │ ├── NopStmt.java │ │ │ ├── ReturnVoidStmt.java │ │ │ ├── Stmt.java │ │ │ ├── StmtList.java │ │ │ ├── Stmts.java │ │ │ ├── TableSwitchStmt.java │ │ │ ├── UnopStmt.java │ │ │ └── VoidInvokeStmt.java │ │ └── ts/ │ │ ├── AggTransformer.java │ │ ├── Cfg.java │ │ ├── CleanLabel.java │ │ ├── ConstTransformer.java │ │ ├── DeadCodeTransformer.java │ │ ├── EndRemover.java │ │ ├── ExceptionHandlerTrim.java │ │ ├── FixVar.java │ │ ├── Ir2JRegAssignTransformer.java │ │ ├── JimpleTransformer.java │ │ ├── MultiArrayTransformer.java │ │ ├── NewTransformer.java │ │ ├── NpeTransformer.java │ │ ├── RemoveConstantFromSSA.java │ │ ├── RemoveLocalFromSSA.java │ │ ├── SSATransformer.java │ │ ├── StatedTransformer.java │ │ ├── Transformer.java │ │ ├── TypeTransformer.java │ │ ├── UnSSATransformer.java │ │ ├── UniqueQueue.java │ │ ├── VoidInvokeTransformer.java │ │ ├── ZeroTransformer.java │ │ ├── an/ │ │ │ ├── AnalyzeValue.java │ │ │ ├── BaseAnalyze.java │ │ │ ├── SimpleLiveAnalyze.java │ │ │ └── SimpleLiveValue.java │ │ └── array/ │ │ ├── ArrayElementTransformer.java │ │ ├── ArrayNullPointerTransformer.java │ │ └── FillArrayTransformer.java │ └── test/ │ └── java/ │ └── com/ │ └── googlecode/ │ └── dex2jar/ │ └── ir/ │ └── test/ │ ├── AggTransformerTest.java │ ├── BaseTransformerTest.java │ ├── ConstTransformerTest.java │ ├── ConstantStringTest.java │ ├── DeadCodeTrnasformerTest.java │ ├── JimpleTransformerTest.java │ ├── RemoveConstantFromSSATest.java │ ├── RemoveLocalFromSSATest.java │ ├── SSATransformerTest.java │ ├── StmtListTest.java │ ├── TypeTransformerTest.java │ ├── UnSSATransformerTransformerTest.java │ └── ZeroTransformerTest.java ├── dex-reader/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── googlecode/ │ │ └── d2j/ │ │ ├── reader/ │ │ │ ├── BaseDexFileReader.java │ │ │ ├── DexFileReader.java │ │ │ ├── MultiDexFileReader.java │ │ │ └── zip/ │ │ │ └── ZipUtil.java │ │ └── util/ │ │ ├── ASMifierAnnotationV.java │ │ ├── ASMifierClassV.java │ │ ├── ASMifierCodeV.java │ │ ├── ASMifierFileV.java │ │ ├── ArrayOut.java │ │ ├── Escape.java │ │ ├── Mutf8.java │ │ ├── Out.java │ │ ├── Utf8Utils.java │ │ └── zip/ │ │ ├── AccessBufByteArrayOutputStream.java │ │ ├── AutoSTOREDZipOutputStream.java │ │ ├── ZipConstants.java │ │ ├── ZipEntry.java │ │ └── ZipFile.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── googlecode/ │ │ └── d2j/ │ │ └── reader/ │ │ └── test/ │ │ ├── AsmfierTest.java │ │ ├── BadZipEntryFlagTest.java │ │ └── SkipDupMethod.java │ └── resources/ │ └── i200.dex ├── dex-reader-api/ │ ├── build.gradle │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── googlecode/ │ └── d2j/ │ ├── DexConstants.java │ ├── DexException.java │ ├── DexLabel.java │ ├── DexType.java │ ├── Field.java │ ├── Method.java │ ├── MethodHandle.java │ ├── Proto.java │ ├── Visibility.java │ ├── node/ │ │ ├── DexAnnotationNode.java │ │ ├── DexClassNode.java │ │ ├── DexCodeNode.java │ │ ├── DexDebugNode.java │ │ ├── DexFieldNode.java │ │ ├── DexFileNode.java │ │ ├── DexMethodNode.java │ │ ├── TryCatchNode.java │ │ ├── analysis/ │ │ │ ├── DvmFrame.java │ │ │ └── DvmInterpreter.java │ │ └── insn/ │ │ ├── AbstractMethodStmtNode.java │ │ ├── BaseSwitchStmtNode.java │ │ ├── ConstStmtNode.java │ │ ├── DexLabelStmtNode.java │ │ ├── DexStmtNode.java │ │ ├── FieldStmtNode.java │ │ ├── FillArrayDataStmtNode.java │ │ ├── FilledNewArrayStmtNode.java │ │ ├── JumpStmtNode.java │ │ ├── MethodCustomStmtNode.java │ │ ├── MethodPolymorphicStmtNode.java │ │ ├── MethodStmtNode.java │ │ ├── PackedSwitchStmtNode.java │ │ ├── SparseSwitchStmtNode.java │ │ ├── Stmt0RNode.java │ │ ├── Stmt1RNode.java │ │ ├── Stmt2R1NNode.java │ │ ├── Stmt2RNode.java │ │ ├── Stmt3RNode.java │ │ └── TypeStmtNode.java │ ├── reader/ │ │ ├── CFG.java │ │ ├── InstructionFormat.java │ │ ├── InstructionIndexType.java │ │ └── Op.java │ └── visitors/ │ ├── DexAnnotationAble.java │ ├── DexAnnotationVisitor.java │ ├── DexClassVisitor.java │ ├── DexCodeVisitor.java │ ├── DexDebugVisitor.java │ ├── DexFieldVisitor.java │ ├── DexFileVisitor.java │ └── DexMethodVisitor.java ├── dex-tools/ │ ├── build.gradle │ ├── open-source-license.txt │ └── src/ │ ├── main/ │ │ ├── assemble/ │ │ │ └── package.xml │ │ ├── bin_gen/ │ │ │ ├── bat_template │ │ │ ├── class.cfg │ │ │ ├── d2j_invoke.bat │ │ │ ├── d2j_invoke.sh │ │ │ └── sh_template │ │ ├── java/ │ │ │ └── com/ │ │ │ └── googlecode/ │ │ │ ├── d2j/ │ │ │ │ ├── signapk/ │ │ │ │ │ ├── AbstractJarSign.java │ │ │ │ │ ├── Base64.java │ │ │ │ │ ├── SunJarSignImpl.java │ │ │ │ │ └── TinySignImpl.java │ │ │ │ ├── tools/ │ │ │ │ │ └── jar/ │ │ │ │ │ ├── BaseWeaver.java │ │ │ │ │ ├── ClassInfo.java │ │ │ │ │ ├── DexWeaver.java │ │ │ │ │ ├── InitOut.java │ │ │ │ │ ├── InvocationWeaver.java │ │ │ │ │ ├── ScanBridgeAdapter.java │ │ │ │ │ └── WebApp.java │ │ │ │ └── util/ │ │ │ │ └── AccUtils.java │ │ │ └── dex2jar/ │ │ │ ├── bin_gen/ │ │ │ │ └── BinGen.java │ │ │ └── tools/ │ │ │ ├── ApkSign.java │ │ │ ├── AsmVerify.java │ │ │ ├── BaksmaliBaseDexExceptionHandler.java │ │ │ ├── ClassVersionSwitch.java │ │ │ ├── DeObfInitCmd.java │ │ │ ├── DecryptStringCmd.java │ │ │ ├── Dex2jarCmd.java │ │ │ ├── Dex2jarMultiThreadCmd.java │ │ │ ├── DexRecomputeChecksum.java │ │ │ ├── DexWeaverCmd.java │ │ │ ├── ExtractOdexFromCoredumpCmd.java │ │ │ ├── GenerateCompileStubFromOdex.java │ │ │ ├── Jar2Dex.java │ │ │ ├── JarAccessCmd.java │ │ │ ├── JarWeaverCmd.java │ │ │ ├── StdApkCmd.java │ │ │ └── to/ │ │ │ └── Do.java │ │ └── resources/ │ │ └── com/ │ │ └── googlecode/ │ │ └── dex2jar/ │ │ └── tools/ │ │ ├── ApkSign.cer │ │ └── ApkSign.private │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── googlecode/ │ │ └── d2j/ │ │ └── tools/ │ │ └── jar/ │ │ ├── MethodInvocation.java │ │ └── test/ │ │ ├── DexWaveTest.java │ │ └── WaveTest.java │ └── resources/ │ └── weave/ │ ├── a-after.j │ ├── a-before.j │ ├── a-gen.j │ ├── b-after.j │ ├── b-before.j │ ├── b-gen.j │ ├── c-after.j │ ├── c-before.j │ ├── c-gen.j │ └── smali/ │ ├── a-after.smali │ ├── a-before.smali │ ├── a-gen.smali │ ├── b-after.smali │ ├── b-before.smali │ └── b-gen.smali ├── dex-translator/ │ ├── build.gradle │ ├── libs/ │ │ └── dx-27.0.3.jar │ └── src/ │ ├── main/ │ │ └── java/ │ │ ├── com/ │ │ │ └── googlecode/ │ │ │ └── d2j/ │ │ │ ├── asm/ │ │ │ │ └── LdcOptimizeAdapter.java │ │ │ ├── converter/ │ │ │ │ ├── Dex2IRConverter.java │ │ │ │ ├── IR2JConverter.java │ │ │ │ └── J2IRConverter.java │ │ │ ├── dex/ │ │ │ │ ├── BaseDexExceptionHandler.java │ │ │ │ ├── ClassVisitorFactory.java │ │ │ │ ├── Dex2Asm.java │ │ │ │ ├── Dex2IrAdapter.java │ │ │ │ ├── Dex2jar.java │ │ │ │ ├── DexExceptionHandler.java │ │ │ │ ├── DexFix.java │ │ │ │ ├── ExDex2Asm.java │ │ │ │ ├── LambadaNameSafeClassAdapter.java │ │ │ │ └── V3.java │ │ │ └── util/ │ │ │ └── Types.java │ │ └── org/ │ │ └── objectweb/ │ │ └── asm/ │ │ └── AsmBridge.java │ └── test/ │ ├── java/ │ │ ├── com/ │ │ │ └── googlecode/ │ │ │ └── dex2jar/ │ │ │ └── test/ │ │ │ ├── ASMifierTest.java │ │ │ ├── ArrayTypeTest.java │ │ │ ├── AutoCastTest.java │ │ │ ├── D2jTest.java │ │ │ ├── DexTranslatorRunner.java │ │ │ ├── EmptyTrapTest.java │ │ │ ├── I101Test.java │ │ │ ├── I121Test.java │ │ │ ├── I168Test.java │ │ │ ├── I63Test.java │ │ │ ├── Issue71Test.java │ │ │ ├── OptSyncTest.java │ │ │ ├── ResTest.java │ │ │ ├── Smali2jTest.java │ │ │ ├── TestDexClassV.java │ │ │ ├── TestUtils.java │ │ │ └── ZeroTest.java │ │ ├── dex2jar/ │ │ │ └── gen/ │ │ │ └── FTPClient__parsePassiveModeReply.java │ │ └── res/ │ │ ├── ArrayRes.java │ │ ├── ChineseRes.java │ │ ├── ConstValues.java │ │ ├── ExceptionRes.java │ │ ├── Gh28Type.java │ │ ├── I142_annotation_default.java │ │ ├── I56_AccessFlag.java │ │ ├── I71.java │ │ ├── I73.java │ │ ├── I88.java │ │ ├── LongDoubleRes.java │ │ ├── NoEndRes.java │ │ ├── NullZero.java │ │ ├── OptimizeSynchronized.java │ │ ├── PopRes.java │ │ ├── ResChild.java │ │ ├── ResParent.java │ │ ├── SwitchRes.java │ │ ├── U0000String.java │ │ ├── WideRes.java │ │ └── i55/ │ │ ├── AAbstractClass.java │ │ ├── AClass.java │ │ └── AInterface.java │ └── resources/ │ ├── dexes/ │ │ └── i_jetty.dex │ └── smalis/ │ ├── 0zs.smali │ ├── ML.smali │ ├── bb-1-can-not-merge-z-and-i.smali │ ├── bb-5-ArrayIndexOutOfBoundsOnType.smali │ ├── empty-try-catch-with-goto-head.smali │ ├── gh-issue-186.smali │ ├── gh-issue-4.smali │ ├── goto-first-label.smali │ ├── i230.smali │ ├── int-or-boolean.smali │ ├── issue-220-219-uninit-reg.smali │ ├── loop-enclosing-class.smali │ ├── mayfail-method-code-too-large.smali │ ├── negative-array-size.smali │ ├── npe-cause-trap-fail.smali │ ├── opt-lock.smali │ ├── useless-new.smali │ └── writeString.smali ├── dex-writer/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── googlecode/ │ │ └── d2j/ │ │ └── dex/ │ │ └── writer/ │ │ ├── AnnotationWriter.java │ │ ├── CantNotFixContentException.java │ │ ├── ClassWriter.java │ │ ├── CodeWriter.java │ │ ├── DexFileWriter.java │ │ ├── DexWriteException.java │ │ ├── FieldWriter.java │ │ ├── MethodWriter.java │ │ ├── ann/ │ │ │ ├── Alignment.java │ │ │ ├── Idx.java │ │ │ └── Off.java │ │ ├── ev/ │ │ │ ├── EncodedAnnotation.java │ │ │ ├── EncodedArray.java │ │ │ └── EncodedValue.java │ │ ├── insn/ │ │ │ ├── Insn.java │ │ │ ├── JumpOp.java │ │ │ ├── Label.java │ │ │ ├── OpInsn.java │ │ │ └── PreBuildInsn.java │ │ ├── io/ │ │ │ ├── ByteBufferOut.java │ │ │ └── DataOut.java │ │ └── item/ │ │ ├── AnnotationItem.java │ │ ├── AnnotationSetItem.java │ │ ├── AnnotationSetRefListItem.java │ │ ├── AnnotationsDirectoryItem.java │ │ ├── BaseItem.java │ │ ├── ClassDataItem.java │ │ ├── ClassDefItem.java │ │ ├── CodeItem.java │ │ ├── ConstPool.java │ │ ├── DebugInfoItem.java │ │ ├── EncodedArrayItem.java │ │ ├── FieldIdItem.java │ │ ├── HeadItem.java │ │ ├── MapListItem.java │ │ ├── MethodIdItem.java │ │ ├── ProtoIdItem.java │ │ ├── SectionItem.java │ │ ├── StringDataItem.java │ │ ├── StringIdItem.java │ │ ├── TypeIdItem.java │ │ └── TypeListItem.java │ └── test/ │ └── java/ │ └── a/ │ ├── AppWriterTest.java │ └── CpStringTest.java ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle