├── .gitignore
├── LICENSE
├── README.md
├── appforload
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── me
│ │ └── dreamheart
│ │ └── demo
│ │ └── appforload
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── me
│ │ │ └── dreamheart
│ │ │ └── demo
│ │ │ └── appforload
│ │ │ ├── Main2Activity.java
│ │ │ ├── MainActivity.java
│ │ │ ├── TestApp.java
│ │ │ └── TestClass.java
│ └── res
│ │ ├── drawable-xxxhdpi
│ │ └── default_avatar.png
│ │ ├── layout
│ │ ├── activity_main.xml
│ │ └── activity_main2.xml
│ │ ├── mipmap-hdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-mdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xhdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xxhdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xxxhdpi
│ │ └── ic_launcher.png
│ │ ├── values-w820dp
│ │ └── dimens.xml
│ │ └── values
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── me
│ └── dreamheart
│ └── demo
│ └── appforload
│ └── ExampleUnitTest.java
├── build.gradle
├── chameleon
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── me
│ │ └── dreamheart
│ │ └── chameleon
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── me
│ │ │ └── dreamheart
│ │ │ └── chameleon
│ │ │ ├── common
│ │ │ ├── FrameworkClassLoader.java
│ │ │ ├── Globals.java
│ │ │ ├── LayoutInflaterProxyContext.java
│ │ │ ├── PlugInfo.java
│ │ │ ├── PluginClassLoader.java
│ │ │ └── PluginContext.java
│ │ │ ├── installer
│ │ │ └── PluginInstaller.java
│ │ │ ├── loader
│ │ │ ├── PluginHook.java
│ │ │ └── PluginLoader.java
│ │ │ ├── tools
│ │ │ ├── Tools.java
│ │ │ ├── reflect
│ │ │ │ ├── NULL.java
│ │ │ │ ├── Reflect.java
│ │ │ │ └── ReflectException.java
│ │ │ └── widget
│ │ │ │ ├── LayoutInflaterWrapper.java
│ │ │ │ └── ViewStub.java
│ │ │ └── utils
│ │ │ ├── FileUtil.java
│ │ │ ├── PluginManifestUtil.java
│ │ │ ├── ReflectionUtils.java
│ │ │ ├── Trace.java
│ │ │ └── XmlManifestReader.java
│ └── res
│ │ └── values
│ │ └── strings.xml
│ └── test
│ └── java
│ └── me
│ └── dreamheart
│ └── chameleon
│ └── ExampleUnitTest.java
├── demo
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── me
│ │ └── dreamheart
│ │ └── chameleon
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── me
│ │ │ └── dreamheart
│ │ │ └── chameleon
│ │ │ └── demo
│ │ │ ├── DemoActivity.java
│ │ │ └── DemoApp.java
│ └── res
│ │ ├── layout
│ │ └── activity_demo.xml
│ │ ├── mipmap-hdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-mdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xhdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xxhdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xxxhdpi
│ │ └── ic_launcher.png
│ │ ├── values-w820dp
│ │ └── dimens.xml
│ │ └── values
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── me
│ └── dreamheart
│ └── chameleon
│ └── ExampleUnitTest.java
├── dextool
├── .gitignore
├── build.gradle
├── src
│ ├── main
│ │ └── java
│ │ │ ├── me
│ │ │ └── dreamheart
│ │ │ │ └── chameleon
│ │ │ │ └── dex
│ │ │ │ ├── AccessFlagUtils.java
│ │ │ │ ├── ApkRefactor.java
│ │ │ │ ├── ClassDefSet.java
│ │ │ │ ├── ClassDefWrapper.java
│ │ │ │ ├── Config.java
│ │ │ │ ├── DexFileWrapper.java
│ │ │ │ └── InjectMethodBuilder.java
│ │ │ └── org
│ │ │ └── jf
│ │ │ ├── dexlib2
│ │ │ ├── AccessFlags.java
│ │ │ ├── AnnotationVisibility.java
│ │ │ ├── DebugItemType.java
│ │ │ ├── DexFileFactory.java
│ │ │ ├── Format.java
│ │ │ ├── Opcode.java
│ │ │ ├── Opcodes.java
│ │ │ ├── ReferenceType.java
│ │ │ ├── ValueType.java
│ │ │ ├── VerificationError.java
│ │ │ ├── VersionMap.java
│ │ │ ├── analysis
│ │ │ │ ├── AnalysisException.java
│ │ │ │ ├── AnalyzedInstruction.java
│ │ │ │ ├── AnalyzedMethodUtil.java
│ │ │ │ ├── ArrayProto.java
│ │ │ │ ├── ClassPath.java
│ │ │ │ ├── ClassPathResolver.java
│ │ │ │ ├── ClassProto.java
│ │ │ │ ├── ClassProvider.java
│ │ │ │ ├── CustomInlineMethodResolver.java
│ │ │ │ ├── DexClassProvider.java
│ │ │ │ ├── InlineMethodResolver.java
│ │ │ │ ├── MethodAnalyzer.java
│ │ │ │ ├── OdexedFieldInstructionMapper.java
│ │ │ │ ├── PrimitiveProto.java
│ │ │ │ ├── RegisterType.java
│ │ │ │ ├── TypeProto.java
│ │ │ │ ├── UnknownClassProto.java
│ │ │ │ ├── UnresolvedClassException.java
│ │ │ │ ├── UnresolvedOdexInstruction.java
│ │ │ │ ├── reflection
│ │ │ │ │ ├── ReflectionClassDef.java
│ │ │ │ │ ├── ReflectionConstructor.java
│ │ │ │ │ ├── ReflectionField.java
│ │ │ │ │ ├── ReflectionMethod.java
│ │ │ │ │ └── util
│ │ │ │ │ │ └── ReflectionUtils.java
│ │ │ │ └── util
│ │ │ │ │ └── TypeProtoUtils.java
│ │ │ ├── base
│ │ │ │ ├── BaseAnnotation.java
│ │ │ │ ├── BaseAnnotationElement.java
│ │ │ │ ├── BaseExceptionHandler.java
│ │ │ │ ├── BaseMethodParameter.java
│ │ │ │ ├── BaseTryBlock.java
│ │ │ │ ├── reference
│ │ │ │ │ ├── BaseFieldReference.java
│ │ │ │ │ ├── BaseMethodProtoReference.java
│ │ │ │ │ ├── BaseMethodReference.java
│ │ │ │ │ ├── BaseStringReference.java
│ │ │ │ │ └── BaseTypeReference.java
│ │ │ │ └── value
│ │ │ │ │ ├── BaseAnnotationEncodedValue.java
│ │ │ │ │ ├── BaseArrayEncodedValue.java
│ │ │ │ │ ├── BaseBooleanEncodedValue.java
│ │ │ │ │ ├── BaseByteEncodedValue.java
│ │ │ │ │ ├── BaseCharEncodedValue.java
│ │ │ │ │ ├── BaseDoubleEncodedValue.java
│ │ │ │ │ ├── BaseEnumEncodedValue.java
│ │ │ │ │ ├── BaseFieldEncodedValue.java
│ │ │ │ │ ├── BaseFloatEncodedValue.java
│ │ │ │ │ ├── BaseIntEncodedValue.java
│ │ │ │ │ ├── BaseLongEncodedValue.java
│ │ │ │ │ ├── BaseMethodEncodedValue.java
│ │ │ │ │ ├── BaseNullEncodedValue.java
│ │ │ │ │ ├── BaseShortEncodedValue.java
│ │ │ │ │ ├── BaseStringEncodedValue.java
│ │ │ │ │ └── BaseTypeEncodedValue.java
│ │ │ ├── builder
│ │ │ │ ├── BuilderDebugItem.java
│ │ │ │ ├── BuilderExceptionHandler.java
│ │ │ │ ├── BuilderInstruction.java
│ │ │ │ ├── BuilderOffsetInstruction.java
│ │ │ │ ├── BuilderSwitchPayload.java
│ │ │ │ ├── BuilderTryBlock.java
│ │ │ │ ├── Label.java
│ │ │ │ ├── MethodImplementationBuilder.java
│ │ │ │ ├── MethodLocation.java
│ │ │ │ ├── MutableMethodImplementation.java
│ │ │ │ ├── SwitchLabelElement.java
│ │ │ │ ├── debug
│ │ │ │ │ ├── BuilderEndLocal.java
│ │ │ │ │ ├── BuilderEpilogueBegin.java
│ │ │ │ │ ├── BuilderLineNumber.java
│ │ │ │ │ ├── BuilderPrologueEnd.java
│ │ │ │ │ ├── BuilderRestartLocal.java
│ │ │ │ │ ├── BuilderSetSourceFile.java
│ │ │ │ │ └── BuilderStartLocal.java
│ │ │ │ └── instruction
│ │ │ │ │ ├── BuilderArrayPayload.java
│ │ │ │ │ ├── BuilderInstruction10t.java
│ │ │ │ │ ├── BuilderInstruction10x.java
│ │ │ │ │ ├── BuilderInstruction11n.java
│ │ │ │ │ ├── BuilderInstruction11x.java
│ │ │ │ │ ├── BuilderInstruction12x.java
│ │ │ │ │ ├── BuilderInstruction20bc.java
│ │ │ │ │ ├── BuilderInstruction20t.java
│ │ │ │ │ ├── BuilderInstruction21c.java
│ │ │ │ │ ├── BuilderInstruction21ih.java
│ │ │ │ │ ├── BuilderInstruction21lh.java
│ │ │ │ │ ├── BuilderInstruction21s.java
│ │ │ │ │ ├── BuilderInstruction21t.java
│ │ │ │ │ ├── BuilderInstruction22b.java
│ │ │ │ │ ├── BuilderInstruction22c.java
│ │ │ │ │ ├── BuilderInstruction22s.java
│ │ │ │ │ ├── BuilderInstruction22t.java
│ │ │ │ │ ├── BuilderInstruction22x.java
│ │ │ │ │ ├── BuilderInstruction23x.java
│ │ │ │ │ ├── BuilderInstruction30t.java
│ │ │ │ │ ├── BuilderInstruction31c.java
│ │ │ │ │ ├── BuilderInstruction31i.java
│ │ │ │ │ ├── BuilderInstruction31t.java
│ │ │ │ │ ├── BuilderInstruction32x.java
│ │ │ │ │ ├── BuilderInstruction35c.java
│ │ │ │ │ ├── BuilderInstruction3rc.java
│ │ │ │ │ ├── BuilderInstruction45cc.java
│ │ │ │ │ ├── BuilderInstruction4rcc.java
│ │ │ │ │ ├── BuilderInstruction51l.java
│ │ │ │ │ ├── BuilderPackedSwitchPayload.java
│ │ │ │ │ ├── BuilderSparseSwitchPayload.java
│ │ │ │ │ └── BuilderSwitchElement.java
│ │ │ ├── dexbacked
│ │ │ │ ├── BaseDexBuffer.java
│ │ │ │ ├── BaseDexReader.java
│ │ │ │ ├── DexBackedAnnotation.java
│ │ │ │ ├── DexBackedAnnotationElement.java
│ │ │ │ ├── DexBackedCatchAllExceptionHandler.java
│ │ │ │ ├── DexBackedClassDef.java
│ │ │ │ ├── DexBackedDexFile.java
│ │ │ │ ├── DexBackedExceptionHandler.java
│ │ │ │ ├── DexBackedField.java
│ │ │ │ ├── DexBackedMethod.java
│ │ │ │ ├── DexBackedMethodImplementation.java
│ │ │ │ ├── DexBackedOdexFile.java
│ │ │ │ ├── DexBackedTryBlock.java
│ │ │ │ ├── DexBackedTypedExceptionHandler.java
│ │ │ │ ├── DexReader.java
│ │ │ │ ├── OatFile.java
│ │ │ │ ├── ZipDexContainer.java
│ │ │ │ ├── instruction
│ │ │ │ │ ├── DexBackedArrayPayload.java
│ │ │ │ │ ├── DexBackedInstruction.java
│ │ │ │ │ ├── DexBackedInstruction10t.java
│ │ │ │ │ ├── DexBackedInstruction10x.java
│ │ │ │ │ ├── DexBackedInstruction11n.java
│ │ │ │ │ ├── DexBackedInstruction11x.java
│ │ │ │ │ ├── DexBackedInstruction12x.java
│ │ │ │ │ ├── DexBackedInstruction20bc.java
│ │ │ │ │ ├── DexBackedInstruction20t.java
│ │ │ │ │ ├── DexBackedInstruction21c.java
│ │ │ │ │ ├── DexBackedInstruction21ih.java
│ │ │ │ │ ├── DexBackedInstruction21lh.java
│ │ │ │ │ ├── DexBackedInstruction21s.java
│ │ │ │ │ ├── DexBackedInstruction21t.java
│ │ │ │ │ ├── DexBackedInstruction22b.java
│ │ │ │ │ ├── DexBackedInstruction22c.java
│ │ │ │ │ ├── DexBackedInstruction22cs.java
│ │ │ │ │ ├── DexBackedInstruction22s.java
│ │ │ │ │ ├── DexBackedInstruction22t.java
│ │ │ │ │ ├── DexBackedInstruction22x.java
│ │ │ │ │ ├── DexBackedInstruction23x.java
│ │ │ │ │ ├── DexBackedInstruction30t.java
│ │ │ │ │ ├── DexBackedInstruction31c.java
│ │ │ │ │ ├── DexBackedInstruction31i.java
│ │ │ │ │ ├── DexBackedInstruction31t.java
│ │ │ │ │ ├── DexBackedInstruction32x.java
│ │ │ │ │ ├── DexBackedInstruction35c.java
│ │ │ │ │ ├── DexBackedInstruction35mi.java
│ │ │ │ │ ├── DexBackedInstruction35ms.java
│ │ │ │ │ ├── DexBackedInstruction3rc.java
│ │ │ │ │ ├── DexBackedInstruction3rmi.java
│ │ │ │ │ ├── DexBackedInstruction3rms.java
│ │ │ │ │ ├── DexBackedInstruction45cc.java
│ │ │ │ │ ├── DexBackedInstruction4rcc.java
│ │ │ │ │ ├── DexBackedInstruction51l.java
│ │ │ │ │ ├── DexBackedPackedSwitchPayload.java
│ │ │ │ │ ├── DexBackedSparseSwitchPayload.java
│ │ │ │ │ └── DexBackedUnknownInstruction.java
│ │ │ │ ├── raw
│ │ │ │ │ ├── AnnotationDirectoryItem.java
│ │ │ │ │ ├── AnnotationItem.java
│ │ │ │ │ ├── AnnotationSetItem.java
│ │ │ │ │ ├── AnnotationSetRefList.java
│ │ │ │ │ ├── ClassDataItem.java
│ │ │ │ │ ├── ClassDefItem.java
│ │ │ │ │ ├── CodeItem.java
│ │ │ │ │ ├── DebugInfoItem.java
│ │ │ │ │ ├── EncodedArrayItem.java
│ │ │ │ │ ├── EncodedValue.java
│ │ │ │ │ ├── FieldIdItem.java
│ │ │ │ │ ├── HeaderItem.java
│ │ │ │ │ ├── ItemType.java
│ │ │ │ │ ├── MapItem.java
│ │ │ │ │ ├── MethodIdItem.java
│ │ │ │ │ ├── OdexHeaderItem.java
│ │ │ │ │ ├── ProtoIdItem.java
│ │ │ │ │ ├── RawDexFile.java
│ │ │ │ │ ├── SectionAnnotator.java
│ │ │ │ │ ├── StringDataItem.java
│ │ │ │ │ ├── StringIdItem.java
│ │ │ │ │ ├── TypeIdItem.java
│ │ │ │ │ ├── TypeListItem.java
│ │ │ │ │ └── util
│ │ │ │ │ │ └── DexAnnotator.java
│ │ │ │ ├── reference
│ │ │ │ │ ├── DexBackedFieldReference.java
│ │ │ │ │ ├── DexBackedMethodProtoReference.java
│ │ │ │ │ ├── DexBackedMethodReference.java
│ │ │ │ │ ├── DexBackedReference.java
│ │ │ │ │ ├── DexBackedStringReference.java
│ │ │ │ │ └── DexBackedTypeReference.java
│ │ │ │ ├── util
│ │ │ │ │ ├── AnnotationsDirectory.java
│ │ │ │ │ ├── DebugInfo.java
│ │ │ │ │ ├── FixedSizeList.java
│ │ │ │ │ ├── FixedSizeSet.java
│ │ │ │ │ ├── ParameterIterator.java
│ │ │ │ │ ├── StaticInitialValueIterator.java
│ │ │ │ │ ├── VariableSizeCollection.java
│ │ │ │ │ ├── VariableSizeIterator.java
│ │ │ │ │ ├── VariableSizeList.java
│ │ │ │ │ ├── VariableSizeListIterator.java
│ │ │ │ │ ├── VariableSizeLookaheadIterator.java
│ │ │ │ │ └── VariableSizeSet.java
│ │ │ │ └── value
│ │ │ │ │ ├── DexBackedAnnotationEncodedValue.java
│ │ │ │ │ ├── DexBackedArrayEncodedValue.java
│ │ │ │ │ ├── DexBackedEncodedValue.java
│ │ │ │ │ ├── DexBackedEnumEncodedValue.java
│ │ │ │ │ ├── DexBackedFieldEncodedValue.java
│ │ │ │ │ ├── DexBackedMethodEncodedValue.java
│ │ │ │ │ ├── DexBackedStringEncodedValue.java
│ │ │ │ │ └── DexBackedTypeEncodedValue.java
│ │ │ ├── iface
│ │ │ │ ├── Annotatable.java
│ │ │ │ ├── Annotation.java
│ │ │ │ ├── AnnotationElement.java
│ │ │ │ ├── BasicAnnotation.java
│ │ │ │ ├── ClassDef.java
│ │ │ │ ├── DexFile.java
│ │ │ │ ├── ExceptionHandler.java
│ │ │ │ ├── Field.java
│ │ │ │ ├── Member.java
│ │ │ │ ├── Method.java
│ │ │ │ ├── MethodImplementation.java
│ │ │ │ ├── MethodParameter.java
│ │ │ │ ├── MultiDexContainer.java
│ │ │ │ ├── TryBlock.java
│ │ │ │ ├── debug
│ │ │ │ │ ├── DebugItem.java
│ │ │ │ │ ├── EndLocal.java
│ │ │ │ │ ├── EpilogueBegin.java
│ │ │ │ │ ├── LineNumber.java
│ │ │ │ │ ├── LocalInfo.java
│ │ │ │ │ ├── PrologueEnd.java
│ │ │ │ │ ├── RestartLocal.java
│ │ │ │ │ ├── SetSourceFile.java
│ │ │ │ │ └── StartLocal.java
│ │ │ │ ├── instruction
│ │ │ │ │ ├── DualReferenceInstruction.java
│ │ │ │ │ ├── FieldOffsetInstruction.java
│ │ │ │ │ ├── FiveRegisterInstruction.java
│ │ │ │ │ ├── HatLiteralInstruction.java
│ │ │ │ │ ├── InlineIndexInstruction.java
│ │ │ │ │ ├── Instruction.java
│ │ │ │ │ ├── LongHatLiteralInstruction.java
│ │ │ │ │ ├── NarrowHatLiteralInstruction.java
│ │ │ │ │ ├── NarrowLiteralInstruction.java
│ │ │ │ │ ├── OffsetInstruction.java
│ │ │ │ │ ├── OneRegisterInstruction.java
│ │ │ │ │ ├── PayloadInstruction.java
│ │ │ │ │ ├── ReferenceInstruction.java
│ │ │ │ │ ├── RegisterRangeInstruction.java
│ │ │ │ │ ├── SwitchElement.java
│ │ │ │ │ ├── SwitchPayload.java
│ │ │ │ │ ├── ThreeRegisterInstruction.java
│ │ │ │ │ ├── TwoRegisterInstruction.java
│ │ │ │ │ ├── VariableRegisterInstruction.java
│ │ │ │ │ ├── VerificationErrorInstruction.java
│ │ │ │ │ ├── VtableIndexInstruction.java
│ │ │ │ │ ├── WideLiteralInstruction.java
│ │ │ │ │ └── formats
│ │ │ │ │ │ ├── ArrayPayload.java
│ │ │ │ │ │ ├── Instruction10t.java
│ │ │ │ │ │ ├── Instruction10x.java
│ │ │ │ │ │ ├── Instruction11n.java
│ │ │ │ │ │ ├── Instruction11x.java
│ │ │ │ │ │ ├── Instruction12x.java
│ │ │ │ │ │ ├── Instruction20bc.java
│ │ │ │ │ │ ├── Instruction20t.java
│ │ │ │ │ │ ├── Instruction21c.java
│ │ │ │ │ │ ├── Instruction21ih.java
│ │ │ │ │ │ ├── Instruction21lh.java
│ │ │ │ │ │ ├── Instruction21s.java
│ │ │ │ │ │ ├── Instruction21t.java
│ │ │ │ │ │ ├── Instruction22b.java
│ │ │ │ │ │ ├── Instruction22c.java
│ │ │ │ │ │ ├── Instruction22cs.java
│ │ │ │ │ │ ├── Instruction22s.java
│ │ │ │ │ │ ├── Instruction22t.java
│ │ │ │ │ │ ├── Instruction22x.java
│ │ │ │ │ │ ├── Instruction23x.java
│ │ │ │ │ │ ├── Instruction30t.java
│ │ │ │ │ │ ├── Instruction31c.java
│ │ │ │ │ │ ├── Instruction31i.java
│ │ │ │ │ │ ├── Instruction31t.java
│ │ │ │ │ │ ├── Instruction32x.java
│ │ │ │ │ │ ├── Instruction35c.java
│ │ │ │ │ │ ├── Instruction35mi.java
│ │ │ │ │ │ ├── Instruction35ms.java
│ │ │ │ │ │ ├── Instruction3rc.java
│ │ │ │ │ │ ├── Instruction3rmi.java
│ │ │ │ │ │ ├── Instruction3rms.java
│ │ │ │ │ │ ├── Instruction45cc.java
│ │ │ │ │ │ ├── Instruction4rcc.java
│ │ │ │ │ │ ├── Instruction51l.java
│ │ │ │ │ │ ├── PackedSwitchPayload.java
│ │ │ │ │ │ ├── SparseSwitchPayload.java
│ │ │ │ │ │ └── UnknownInstruction.java
│ │ │ │ ├── reference
│ │ │ │ │ ├── FieldReference.java
│ │ │ │ │ ├── MethodProtoReference.java
│ │ │ │ │ ├── MethodReference.java
│ │ │ │ │ ├── Reference.java
│ │ │ │ │ ├── StringReference.java
│ │ │ │ │ └── TypeReference.java
│ │ │ │ └── value
│ │ │ │ │ ├── AnnotationEncodedValue.java
│ │ │ │ │ ├── ArrayEncodedValue.java
│ │ │ │ │ ├── BooleanEncodedValue.java
│ │ │ │ │ ├── ByteEncodedValue.java
│ │ │ │ │ ├── CharEncodedValue.java
│ │ │ │ │ ├── DoubleEncodedValue.java
│ │ │ │ │ ├── EncodedValue.java
│ │ │ │ │ ├── EnumEncodedValue.java
│ │ │ │ │ ├── FieldEncodedValue.java
│ │ │ │ │ ├── FloatEncodedValue.java
│ │ │ │ │ ├── IntEncodedValue.java
│ │ │ │ │ ├── LongEncodedValue.java
│ │ │ │ │ ├── MethodEncodedValue.java
│ │ │ │ │ ├── NullEncodedValue.java
│ │ │ │ │ ├── ShortEncodedValue.java
│ │ │ │ │ ├── StringEncodedValue.java
│ │ │ │ │ └── TypeEncodedValue.java
│ │ │ ├── immutable
│ │ │ │ ├── ImmutableAnnotation.java
│ │ │ │ ├── ImmutableAnnotationElement.java
│ │ │ │ ├── ImmutableClassDef.java
│ │ │ │ ├── ImmutableDexFile.java
│ │ │ │ ├── ImmutableExceptionHandler.java
│ │ │ │ ├── ImmutableField.java
│ │ │ │ ├── ImmutableMethod.java
│ │ │ │ ├── ImmutableMethodImplementation.java
│ │ │ │ ├── ImmutableMethodParameter.java
│ │ │ │ ├── ImmutableTryBlock.java
│ │ │ │ ├── debug
│ │ │ │ │ ├── ImmutableDebugItem.java
│ │ │ │ │ ├── ImmutableEndLocal.java
│ │ │ │ │ ├── ImmutableEpilogueBegin.java
│ │ │ │ │ ├── ImmutableLineNumber.java
│ │ │ │ │ ├── ImmutablePrologueEnd.java
│ │ │ │ │ ├── ImmutableRestartLocal.java
│ │ │ │ │ ├── ImmutableSetSourceFile.java
│ │ │ │ │ └── ImmutableStartLocal.java
│ │ │ │ ├── instruction
│ │ │ │ │ ├── ImmutableArrayPayload.java
│ │ │ │ │ ├── ImmutableInstruction.java
│ │ │ │ │ ├── ImmutableInstruction10t.java
│ │ │ │ │ ├── ImmutableInstruction10x.java
│ │ │ │ │ ├── ImmutableInstruction11n.java
│ │ │ │ │ ├── ImmutableInstruction11x.java
│ │ │ │ │ ├── ImmutableInstruction12x.java
│ │ │ │ │ ├── ImmutableInstruction20bc.java
│ │ │ │ │ ├── ImmutableInstruction20t.java
│ │ │ │ │ ├── ImmutableInstruction21c.java
│ │ │ │ │ ├── ImmutableInstruction21ih.java
│ │ │ │ │ ├── ImmutableInstruction21lh.java
│ │ │ │ │ ├── ImmutableInstruction21s.java
│ │ │ │ │ ├── ImmutableInstruction21t.java
│ │ │ │ │ ├── ImmutableInstruction22b.java
│ │ │ │ │ ├── ImmutableInstruction22c.java
│ │ │ │ │ ├── ImmutableInstruction22cs.java
│ │ │ │ │ ├── ImmutableInstruction22s.java
│ │ │ │ │ ├── ImmutableInstruction22t.java
│ │ │ │ │ ├── ImmutableInstruction22x.java
│ │ │ │ │ ├── ImmutableInstruction23x.java
│ │ │ │ │ ├── ImmutableInstruction30t.java
│ │ │ │ │ ├── ImmutableInstruction31c.java
│ │ │ │ │ ├── ImmutableInstruction31i.java
│ │ │ │ │ ├── ImmutableInstruction31t.java
│ │ │ │ │ ├── ImmutableInstruction32x.java
│ │ │ │ │ ├── ImmutableInstruction35c.java
│ │ │ │ │ ├── ImmutableInstruction35mi.java
│ │ │ │ │ ├── ImmutableInstruction35ms.java
│ │ │ │ │ ├── ImmutableInstruction3rc.java
│ │ │ │ │ ├── ImmutableInstruction3rmi.java
│ │ │ │ │ ├── ImmutableInstruction3rms.java
│ │ │ │ │ ├── ImmutableInstruction51l.java
│ │ │ │ │ ├── ImmutableInstructionFactory.java
│ │ │ │ │ ├── ImmutablePackedSwitchPayload.java
│ │ │ │ │ ├── ImmutableSparseSwitchPayload.java
│ │ │ │ │ ├── ImmutableSwitchElement.java
│ │ │ │ │ └── ImmutableUnknownInstruction.java
│ │ │ │ ├── reference
│ │ │ │ │ ├── ImmutableFieldReference.java
│ │ │ │ │ ├── ImmutableMethodProtoReference.java
│ │ │ │ │ ├── ImmutableMethodReference.java
│ │ │ │ │ ├── ImmutableReference.java
│ │ │ │ │ ├── ImmutableReferenceFactory.java
│ │ │ │ │ ├── ImmutableStringReference.java
│ │ │ │ │ └── ImmutableTypeReference.java
│ │ │ │ ├── util
│ │ │ │ │ ├── CharSequenceConverter.java
│ │ │ │ │ └── ParamUtil.java
│ │ │ │ └── value
│ │ │ │ │ ├── ImmutableAnnotationEncodedValue.java
│ │ │ │ │ ├── ImmutableArrayEncodedValue.java
│ │ │ │ │ ├── ImmutableBooleanEncodedValue.java
│ │ │ │ │ ├── ImmutableByteEncodedValue.java
│ │ │ │ │ ├── ImmutableCharEncodedValue.java
│ │ │ │ │ ├── ImmutableDoubleEncodedValue.java
│ │ │ │ │ ├── ImmutableEncodedValue.java
│ │ │ │ │ ├── ImmutableEncodedValueFactory.java
│ │ │ │ │ ├── ImmutableEnumEncodedValue.java
│ │ │ │ │ ├── ImmutableFieldEncodedValue.java
│ │ │ │ │ ├── ImmutableFloatEncodedValue.java
│ │ │ │ │ ├── ImmutableIntEncodedValue.java
│ │ │ │ │ ├── ImmutableLongEncodedValue.java
│ │ │ │ │ ├── ImmutableMethodEncodedValue.java
│ │ │ │ │ ├── ImmutableNullEncodedValue.java
│ │ │ │ │ ├── ImmutableShortEncodedValue.java
│ │ │ │ │ ├── ImmutableStringEncodedValue.java
│ │ │ │ │ └── ImmutableTypeEncodedValue.java
│ │ │ ├── rewriter
│ │ │ │ ├── AnnotationElementRewriter.java
│ │ │ │ ├── AnnotationRewriter.java
│ │ │ │ ├── ClassDefRewriter.java
│ │ │ │ ├── DebugItemRewriter.java
│ │ │ │ ├── DexRewriter.java
│ │ │ │ ├── EncodedValueRewriter.java
│ │ │ │ ├── ExceptionHandlerRewriter.java
│ │ │ │ ├── FieldReferenceRewriter.java
│ │ │ │ ├── FieldRewriter.java
│ │ │ │ ├── InstructionRewriter.java
│ │ │ │ ├── MethodImplementationRewriter.java
│ │ │ │ ├── MethodParameterRewriter.java
│ │ │ │ ├── MethodReferenceRewriter.java
│ │ │ │ ├── MethodRewriter.java
│ │ │ │ ├── Rewriter.java
│ │ │ │ ├── RewriterModule.java
│ │ │ │ ├── RewriterUtils.java
│ │ │ │ ├── Rewriters.java
│ │ │ │ ├── TryBlockRewriter.java
│ │ │ │ └── TypeRewriter.java
│ │ │ ├── util
│ │ │ │ ├── AnnotatedBytes.java
│ │ │ │ ├── DexUtil.java
│ │ │ │ ├── EncodedValueUtils.java
│ │ │ │ ├── FieldUtil.java
│ │ │ │ ├── InstructionOffsetMap.java
│ │ │ │ ├── InstructionUtil.java
│ │ │ │ ├── MethodUtil.java
│ │ │ │ ├── Preconditions.java
│ │ │ │ ├── ReferenceUtil.java
│ │ │ │ ├── SyntheticAccessorFSM.java
│ │ │ │ ├── SyntheticAccessorResolver.java
│ │ │ │ └── TypeUtils.java
│ │ │ └── writer
│ │ │ │ ├── AnnotationSection.java
│ │ │ │ ├── AnnotationSetSection.java
│ │ │ │ ├── ClassSection.java
│ │ │ │ ├── DebugWriter.java
│ │ │ │ ├── DexDataWriter.java
│ │ │ │ ├── DexWriter.java
│ │ │ │ ├── EncodedValueWriter.java
│ │ │ │ ├── FieldSection.java
│ │ │ │ ├── IndexSection.java
│ │ │ │ ├── InstructionFactory.java
│ │ │ │ ├── InstructionWriter.java
│ │ │ │ ├── MethodSection.java
│ │ │ │ ├── NullableIndexSection.java
│ │ │ │ ├── NullableOffsetSection.java
│ │ │ │ ├── OffsetSection.java
│ │ │ │ ├── ProtoSection.java
│ │ │ │ ├── StringSection.java
│ │ │ │ ├── TypeListSection.java
│ │ │ │ ├── TypeSection.java
│ │ │ │ ├── builder
│ │ │ │ ├── BaseBuilderPool.java
│ │ │ │ ├── BuilderAnnotation.java
│ │ │ │ ├── BuilderAnnotationElement.java
│ │ │ │ ├── BuilderAnnotationPool.java
│ │ │ │ ├── BuilderAnnotationSet.java
│ │ │ │ ├── BuilderAnnotationSetPool.java
│ │ │ │ ├── BuilderClassDef.java
│ │ │ │ ├── BuilderClassPool.java
│ │ │ │ ├── BuilderEncodedValues.java
│ │ │ │ ├── BuilderExceptionHandler.java
│ │ │ │ ├── BuilderField.java
│ │ │ │ ├── BuilderFieldPool.java
│ │ │ │ ├── BuilderFieldReference.java
│ │ │ │ ├── BuilderMapEntryCollection.java
│ │ │ │ ├── BuilderMethod.java
│ │ │ │ ├── BuilderMethodParameter.java
│ │ │ │ ├── BuilderMethodPool.java
│ │ │ │ ├── BuilderMethodProtoReference.java
│ │ │ │ ├── BuilderMethodReference.java
│ │ │ │ ├── BuilderProtoPool.java
│ │ │ │ ├── BuilderReference.java
│ │ │ │ ├── BuilderStringPool.java
│ │ │ │ ├── BuilderStringReference.java
│ │ │ │ ├── BuilderTryBlock.java
│ │ │ │ ├── BuilderTypeList.java
│ │ │ │ ├── BuilderTypeListPool.java
│ │ │ │ ├── BuilderTypePool.java
│ │ │ │ ├── BuilderTypeReference.java
│ │ │ │ └── DexBuilder.java
│ │ │ │ ├── io
│ │ │ │ ├── DeferredOutputStream.java
│ │ │ │ ├── DeferredOutputStreamFactory.java
│ │ │ │ ├── DexDataStore.java
│ │ │ │ ├── FileDataStore.java
│ │ │ │ ├── FileDeferredOutputStream.java
│ │ │ │ ├── MemoryDataStore.java
│ │ │ │ └── MemoryDeferredOutputStream.java
│ │ │ │ ├── pool
│ │ │ │ ├── AnnotationPool.java
│ │ │ │ ├── AnnotationSetPool.java
│ │ │ │ ├── BaseIndexPool.java
│ │ │ │ ├── BaseNullableOffsetPool.java
│ │ │ │ ├── BaseOffsetPool.java
│ │ │ │ ├── BasePool.java
│ │ │ │ ├── ClassPool.java
│ │ │ │ ├── DexPool.java
│ │ │ │ ├── FieldPool.java
│ │ │ │ ├── Markable.java
│ │ │ │ ├── MethodPool.java
│ │ │ │ ├── PoolClassDef.java
│ │ │ │ ├── PoolMethod.java
│ │ │ │ ├── PoolMethodProto.java
│ │ │ │ ├── ProtoPool.java
│ │ │ │ ├── StringPool.java
│ │ │ │ ├── StringTypeBasePool.java
│ │ │ │ ├── TypeListPool.java
│ │ │ │ └── TypePool.java
│ │ │ │ └── util
│ │ │ │ └── TryListBuilder.java
│ │ │ └── util
│ │ │ ├── AbstractForwardSequentialList.java
│ │ │ ├── AbstractListIterator.java
│ │ │ ├── AlignmentUtils.java
│ │ │ ├── ArraySortedSet.java
│ │ │ ├── BitSetUtils.java
│ │ │ ├── BlankReader.java
│ │ │ ├── CharSequenceUtils.java
│ │ │ ├── ClassFileNameHandler.java
│ │ │ ├── CollectionUtils.java
│ │ │ ├── ConsoleUtil.java
│ │ │ ├── ExceptionWithContext.java
│ │ │ ├── Hex.java
│ │ │ ├── ImmutableConverter.java
│ │ │ ├── ImmutableUtils.java
│ │ │ ├── IndentingWriter.java
│ │ │ ├── LinearSearch.java
│ │ │ ├── NakedByteArrayOutputStream.java
│ │ │ ├── NibbleUtils.java
│ │ │ ├── NumberUtils.java
│ │ │ ├── OldWrappedIndentingWriter.java
│ │ │ ├── PathUtil.java
│ │ │ ├── RandomAccessFileInputStream.java
│ │ │ ├── RandomAccessFileOutputStream.java
│ │ │ ├── SparseArray.java
│ │ │ ├── SparseIntArray.java
│ │ │ ├── StringUtils.java
│ │ │ ├── StringWrapper.java
│ │ │ ├── TextUtils.java
│ │ │ ├── TwoColumnOutput.java
│ │ │ ├── Utf8Utils.java
│ │ │ ├── WrappedIndentingWriter.java
│ │ │ └── jcommander
│ │ │ ├── ColonParameterSplitter.java
│ │ │ ├── Command.java
│ │ │ ├── ExtendedCommands.java
│ │ │ ├── ExtendedParameter.java
│ │ │ ├── ExtendedParameters.java
│ │ │ └── HelpFormatter.java
│ └── test
│ │ └── java
│ │ └── me
│ │ └── dreamheart
│ │ └── chameleon
│ │ └── dex
│ │ └── MainTest.java
└── testData
│ ├── appforload.apk
│ └── classes.dex
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── hook
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── java
│ └── me
│ └── dreamheart
│ └── chameleon
│ └── Hook.java
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | .externalNativeBuild
10 | /.idea
11 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Junhua102
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Chameleon
2 | 修改dex文件实现插件加载
3 | [说明链接](https://zhuanlan.zhihu.com/p/25074791 "修改dex文件实现插件加载")
4 |
--------------------------------------------------------------------------------
/appforload/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/appforload/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion "24.0.0"
6 |
7 | defaultConfig {
8 | applicationId "me.dreamheart.demo.appforload"
9 | minSdkVersion 9
10 | targetSdkVersion 25
11 | versionCode 1
12 | versionName "1.0"
13 |
14 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
15 |
16 | }
17 | buildTypes {
18 | release {
19 | minifyEnabled false
20 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
21 | }
22 | }
23 | }
24 |
25 | dependencies {
26 | compile fileTree(dir: 'libs', include: ['*.jar'])
27 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
28 | exclude group: 'com.android.support', module: 'support-annotations'
29 | })
30 | provided project(':hook')
31 | testCompile 'junit:junit:4.12'
32 | }
33 |
--------------------------------------------------------------------------------
/appforload/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in C:\dev\android-studio\sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/appforload/src/androidTest/java/me/dreamheart/demo/appforload/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.demo.appforload;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("me.dreamheart.demo.appforload", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/appforload/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/appforload/src/main/java/me/dreamheart/demo/appforload/Main2Activity.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.demo.appforload;
2 |
3 | import android.app.Activity;
4 | import android.os.Bundle;
5 |
6 | public class Main2Activity extends Activity {
7 |
8 | @Override
9 | protected void onCreate(Bundle savedInstanceState) {
10 | super.onCreate(savedInstanceState);
11 | setContentView(R.layout.activity_main2);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/appforload/src/main/java/me/dreamheart/demo/appforload/MainActivity.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.demo.appforload;
2 |
3 | import android.app.Activity;
4 | import android.content.Intent;
5 | import android.os.Bundle;
6 | import android.view.View;
7 |
8 | public class MainActivity extends Activity {
9 |
10 | @Override
11 | protected void onCreate(Bundle savedInstanceState) {
12 | super.onCreate(savedInstanceState);
13 | setContentView(R.layout.activity_main);
14 | findViewById(R.id.activity_btn).setOnClickListener(new View.OnClickListener() {
15 | @Override
16 | public void onClick(View v) {
17 | startActivity(new Intent(MainActivity.this, Main2Activity.class));
18 | }
19 | });
20 | new TestClass().test();
21 | new TestClass.TestSubClass().test(TestClass.TestSubClass.testStr);
22 | new TestClass.TestSubClass.TestSubSubClass().test();
23 | // ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(this.getPackageName(), PackageManager.GET_META_DATA);
24 | // appInfo.metaData.getInt("DH_APP_CHANNEL");
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/appforload/src/main/java/me/dreamheart/demo/appforload/TestApp.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.demo.appforload;
2 |
3 | import android.app.Application;
4 | import android.util.Log;
5 |
6 | /**
7 | * Created by Junhua Lv on 2017/1/26.
8 | */
9 |
10 | public class TestApp extends Application {
11 |
12 | @Override
13 | public void onCreate() {
14 | super.onCreate();
15 | Log.v("TestApp", "TestApp onCreate");
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/appforload/src/main/java/me/dreamheart/demo/appforload/TestClass.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.demo.appforload;
2 |
3 | import android.util.Log;
4 |
5 | /**
6 | * Created by Junhua Lv on 2017/2/1.
7 | * 测试非public的类调用的问题
8 | */
9 |
10 | class TestClass {
11 | static class TestSubClass {
12 | static class TestSubSubClass {
13 | void test () {
14 | Log.v("TestClass", "TestSubSubClass ok");
15 | }
16 | }
17 | static String testStr = "TestSubClass ok";
18 | void test (String str) {
19 | Log.v("TestClass", str);
20 | }
21 | }
22 |
23 | void test() {
24 | Log.v("TestClass", "test ok");
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/appforload/src/main/res/drawable-xxxhdpi/default_avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/appforload/src/main/res/drawable-xxxhdpi/default_avatar.png
--------------------------------------------------------------------------------
/appforload/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
18 |
19 |
26 |
27 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/appforload/src/main/res/layout/activity_main2.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/appforload/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/appforload/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/appforload/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/appforload/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/appforload/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/appforload/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/appforload/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/appforload/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/appforload/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/appforload/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/appforload/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/appforload/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/appforload/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 |
--------------------------------------------------------------------------------
/appforload/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | AppForLoad
3 | Activity2
4 | This is activity2!
5 |
6 |
--------------------------------------------------------------------------------
/appforload/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/appforload/src/test/java/me/dreamheart/demo/appforload/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.demo.appforload;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.2.2'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | }
19 | }
20 |
21 | task clean(type: Delete) {
22 | delete rootProject.buildDir
23 | }
24 |
--------------------------------------------------------------------------------
/chameleon/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/chameleon/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion "24.0.0"
6 |
7 | defaultConfig {
8 | minSdkVersion 9
9 | targetSdkVersion 25
10 | versionCode 1
11 | versionName "1.0"
12 |
13 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
14 |
15 | }
16 | buildTypes {
17 | release {
18 | minifyEnabled false
19 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
20 | }
21 | }
22 | configurations.all {
23 | resolutionStrategy.force 'com.google.code.findbugs:jsr305:3.0.1'
24 | }
25 | }
26 |
27 | dependencies {
28 | compile fileTree(dir: 'libs', include: ['*.jar'])
29 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
30 | exclude group: 'com.android.support', module: 'support-annotations'
31 | })
32 | testCompile 'junit:junit:4.12'
33 | compile project(':hook')
34 | compile project(':dextool')
35 | }
36 |
--------------------------------------------------------------------------------
/chameleon/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in C:\dev\android-studio\sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/chameleon/src/androidTest/java/me/dreamheart/chameleon/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("me.dreamheart.chameleon.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/chameleon/src/main/java/me/dreamheart/chameleon/common/FrameworkClassLoader.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2015 HouKx
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package me.dreamheart.chameleon.common;
17 |
18 | /**
19 | * 框架类加载器(Application 的 classLoder被替换成此类的实例)
20 | *
21 | * @author HouKangxi
22 | *
23 | */
24 | public class FrameworkClassLoader extends ClassLoader {
25 |
26 | private PlugInfo plugin;
27 |
28 | public FrameworkClassLoader(ClassLoader parent) {
29 | super(parent);
30 | }
31 |
32 | public void setPlugin(PlugInfo plugin) {
33 | this.plugin = plugin;
34 | }
35 |
36 | protected Class> loadClass(String className, boolean resolv)
37 | throws ClassNotFoundException {
38 | // Log.i("cl", "loadClass: " + className);
39 | if (plugin != null) {
40 | try {
41 | return plugin.getClassLoader().loadClass(className);
42 | } catch (ClassNotFoundException e) {
43 | e.printStackTrace();
44 | }
45 | }
46 |
47 | return super.loadClass(className, resolv);
48 | }
49 | }
--------------------------------------------------------------------------------
/chameleon/src/main/java/me/dreamheart/chameleon/common/Globals.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon.common;
2 |
3 | /**
4 | * 全局声明类
5 | *
6 | * @author Lody
7 | * @version 1.0
8 | */
9 | public class Globals {
10 |
11 | /**
12 | * 私有目录中保存插件文件的文件夹名
13 | */
14 | public static final String PRIVATE_PLUGIN_OUTPUT_DIR_NAME = "plugins-file";
15 |
16 | /**
17 | * 私有目录中保存插件odex的文件夹名
18 | */
19 | public static final String PRIVATE_PLUGIN_ODEX_OUTPUT_DIR_NAME = "plugins-opt";
20 | }
21 |
--------------------------------------------------------------------------------
/chameleon/src/main/java/me/dreamheart/chameleon/common/LayoutInflaterProxyContext.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon.common;
2 |
3 | import android.content.Context;
4 | import android.content.ContextWrapper;
5 | import android.view.LayoutInflater;
6 |
7 | /**
8 | * @author Lody
9 | * @version 1.0
10 | */
11 | public class LayoutInflaterProxyContext extends ContextWrapper {
12 |
13 | private LayoutInflater mInflater;
14 |
15 | public LayoutInflaterProxyContext(Context base) {
16 | super(base);
17 | }
18 |
19 | @Override
20 | public Object getSystemService(String name) {
21 | if (LAYOUT_INFLATER_SERVICE.equals(name)) {
22 | if (mInflater == null) {
23 | mInflater = LayoutInflater.from(getBaseContext()).cloneInContext(this);
24 | }
25 | return mInflater;
26 | }
27 | return super.getSystemService(name);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/chameleon/src/main/java/me/dreamheart/chameleon/common/PluginClassLoader.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon.common;
2 |
3 | import android.annotation.TargetApi;
4 | import android.os.Build;
5 |
6 | import dalvik.system.DexClassLoader;
7 | import me.dreamheart.chameleon.Hook;
8 |
9 | /**
10 | * @author Lody
11 | * @version 1.0
12 | */
13 | @TargetApi(Build.VERSION_CODES.CUPCAKE)
14 | public class PluginClassLoader extends DexClassLoader {
15 |
16 | protected PlugInfo plugInfo;
17 |
18 | public PluginClassLoader(PlugInfo plugInfo, String dexPath, String optimizedDirectory, String libraryPath, ClassLoader parent) {
19 | super(dexPath, optimizedDirectory, libraryPath, parent);
20 | this.plugInfo = plugInfo;
21 | }
22 |
23 | public PlugInfo getPlugInfo() {
24 | return plugInfo;
25 | }
26 |
27 | protected Class> loadClass(String className, boolean resolv)
28 | throws ClassNotFoundException {
29 | // Log.i("cl", "loadClass: " + className);
30 | if (className.equals("me.dreamheart.chameleon.Hook")) {
31 | return Hook.class;
32 | }
33 | return super.loadClass(className, resolv);
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/chameleon/src/main/java/me/dreamheart/chameleon/loader/PluginHook.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon.loader;
2 |
3 | import android.app.Activity;
4 | import android.content.Context;
5 | import android.content.pm.ActivityInfo;
6 |
7 | import me.dreamheart.chameleon.Hook;
8 | import me.dreamheart.chameleon.common.PlugInfo;
9 | import me.dreamheart.chameleon.common.PluginContext;
10 | import me.dreamheart.chameleon.utils.Trace;
11 |
12 | /**
13 | * Created by Junhua Lv on 2017/1/28.
14 | * 插件钩子
15 | */
16 | public class PluginHook implements Hook.HookListener {
17 |
18 | private PlugInfo plugInfo;
19 | private Context context;
20 |
21 | public PluginHook(Context appContext, PlugInfo plugInfo) {
22 | this.plugInfo = plugInfo;
23 | context = appContext;
24 | }
25 |
26 | /**
27 | * 插件activity调用onAttachBaseContext时,调用此函数
28 | * @param activity 插件activity
29 | * @param orgContext 原context
30 | * @return PluginContext
31 | */
32 | @Override
33 | public Object onAttachBaseContext(Object activity, Object orgContext) {
34 | return attachBaseContext((Activity)activity, (Context)orgContext);
35 | }
36 |
37 | /**
38 | * 将插件的baseContext替换成PluginContext
39 | * @param activity 插件activity
40 | * @param orgContext 原context
41 | * @return PluginContext
42 | */
43 | private Context attachBaseContext(Activity activity, Context orgContext) {
44 | return new PluginContext(context, plugInfo);
45 | }
46 |
47 | @Override
48 | public void onCreate(Object activity, Object savedInstanceState) {
49 | Trace.store("Hook onCreate " + activity.getClass().getName());
50 | ActivityInfo activityInfo = plugInfo.findActivityByClassName(activity.getClass().getName());
51 | int themeResource = activityInfo.getThemeResource();
52 | if (themeResource != 0) {
53 | ((Activity) activity).setTheme(themeResource);
54 | }
55 | }
56 |
57 | }
58 |
--------------------------------------------------------------------------------
/chameleon/src/main/java/me/dreamheart/chameleon/tools/Tools.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon.tools;
2 |
3 | import android.content.Context;
4 |
5 | /**
6 | * Created by Junhua Lv on 2017/1/27.
7 | * 注入调试工具
8 | */
9 |
10 | public class Tools {
11 | static public void inject (Context context) {
12 | // DelegateActivityThread delegateActivityThread = DelegateActivityThread.getSingleton();
13 | // Instrumentation originInstrumentation = delegateActivityThread.getInstrumentation();
14 | // if (!(originInstrumentation instanceof PluginInstrumentation)) {
15 | // PluginInstrumentation pluginInstrumentation = new PluginInstrumentation(originInstrumentation);
16 | // delegateActivityThread.setInstrumentation(pluginInstrumentation);
17 | // }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/chameleon/src/main/java/me/dreamheart/chameleon/tools/reflect/NULL.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon.tools.reflect;
2 |
3 | /**
4 | * 用来表示null的类.
5 | *
6 | * @author Lody
7 | * @version 1.0
8 | */
9 | public class NULL {
10 | }
--------------------------------------------------------------------------------
/chameleon/src/main/java/me/dreamheart/chameleon/tools/reflect/ReflectException.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon.tools.reflect;
2 |
3 | /**
4 | * @author Lody
5 | */
6 | public class ReflectException extends RuntimeException {
7 |
8 | private static final long serialVersionUID = 663038727503637969L;
9 |
10 | public ReflectException(String message) {
11 | super(message);
12 | }
13 |
14 | public ReflectException(String message, Throwable cause) {
15 | super(message, cause);
16 | }
17 |
18 | public ReflectException() {
19 | super();
20 | }
21 |
22 | public ReflectException(Throwable cause) {
23 | super(cause);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/chameleon/src/main/java/me/dreamheart/chameleon/utils/Trace.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon.utils;
2 |
3 | import android.util.Log;
4 |
5 | /**
6 | * @author Lody
7 | * @version 1.0
8 | */
9 | public class Trace {
10 |
11 | /**
12 | * 是否要输出到LogCat
13 | */
14 | public static boolean LOG_OUTPUT = true;
15 |
16 |
17 | private static final StringBuilder _TRACE_BUILDER = new StringBuilder(100);
18 |
19 | public static void store(Object msg) {
20 |
21 | String msgStr = object2Msg(msg);
22 |
23 | _TRACE_BUILDER.append(msgStr).append("\n");
24 |
25 | if (LOG_OUTPUT) {
26 | Log.d("PluginMgr-Trace", msgStr);
27 | }
28 | }
29 |
30 |
31 | public static String getTrace() {
32 | return _TRACE_BUILDER.toString();
33 | }
34 |
35 | public static void clearTrace() {
36 | _TRACE_BUILDER.delete(0, _TRACE_BUILDER.length() - 1);
37 | }
38 |
39 | private static String object2Msg(Object object) {
40 | return object != null ? object.toString() : " ";
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/chameleon/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Chameleon
3 |
4 |
--------------------------------------------------------------------------------
/chameleon/src/test/java/me/dreamheart/chameleon/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/demo/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/demo/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion "24.0.0"
6 | defaultConfig {
7 | applicationId "me.dreamheart.chameleon.demo"
8 | minSdkVersion 9
9 | targetSdkVersion 25
10 | versionCode 1
11 | versionName "1.0"
12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | configurations.all {
21 | resolutionStrategy.force 'com.google.code.findbugs:jsr305:3.0.1'
22 | }
23 | }
24 |
25 | dependencies {
26 | compile fileTree(dir: 'libs', include: ['*.jar'])
27 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
28 | exclude group: 'com.android.support', module: 'support-annotations'
29 | })
30 | testCompile 'junit:junit:4.12'
31 | compile project(':chameleon')
32 | }
33 |
--------------------------------------------------------------------------------
/demo/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in C:\dev\android-studio\sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/demo/src/androidTest/java/me/dreamheart/chameleon/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("me.dreamheart.chameleon", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/demo/src/main/java/me/dreamheart/chameleon/demo/DemoApp.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon.demo;
2 |
3 | import android.app.Application;
4 |
5 | import me.dreamheart.chameleon.loader.PluginLoader;
6 |
7 | /**
8 | * Created by Junhua Lv on 2017/1/26.
9 | * demo app 用于初始化
10 | */
11 | public class DemoApp extends Application {
12 |
13 | PluginLoader mPluginLoader;
14 |
15 | @Override
16 | public void onCreate() {
17 | super.onCreate();
18 | mPluginLoader = new PluginLoader();
19 | mPluginLoader.init(this);
20 | }
21 |
22 | public PluginLoader getPluginLoader() {
23 | return mPluginLoader;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/demo/src/main/res/layout/activity_demo.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
20 |
21 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/demo/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/demo/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/demo/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/demo/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/demo/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/demo/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/demo/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/demo/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/demo/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/demo/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/demo/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/demo/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/demo/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 |
--------------------------------------------------------------------------------
/demo/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Chameleon
3 |
4 |
--------------------------------------------------------------------------------
/demo/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/demo/src/test/java/me/dreamheart/chameleon/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/dextool/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/dextool/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'java'
2 |
3 | dependencies {
4 | testCompile 'junit:junit:4.12'
5 | compile fileTree(dir: 'libs', include: ['*.jar'])
6 | compile 'com.google.guava:guava:18.0'
7 | compile 'com.google.code.findbugs:jsr305:3.0.1'
8 | compile "com.beust:jcommander:1.48"
9 | }
10 |
11 | sourceCompatibility = "1.7"
12 | targetCompatibility = "1.7"
13 |
14 | tasks.withType(JavaCompile) {
15 | options.encoding = "UTF-8"
16 | }
--------------------------------------------------------------------------------
/dextool/src/main/java/me/dreamheart/chameleon/dex/AccessFlagUtils.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon.dex;
2 |
3 | /**
4 | * Created by Junhua Lv on 2017/2/2.
5 | */
6 |
7 | public class AccessFlagUtils {
8 |
9 | static public boolean isDefault (int accessFlag) {
10 | return (accessFlag & 0x07) == 0;
11 | }
12 |
13 | static public int changeToPublic (int accessFlag) {
14 | return accessFlag | 0x01;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/dextool/src/main/java/me/dreamheart/chameleon/dex/ClassDefSet.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon.dex;
2 |
3 | import org.jf.dexlib2.dexbacked.util.FixedSizeSet;
4 | import org.jf.dexlib2.iface.ClassDef;
5 |
6 | import javax.annotation.Nonnull;
7 | import java.util.ArrayList;
8 | import java.util.List;
9 |
10 | /**
11 | * Created by ljh102 on 2017/1/28.
12 | */
13 | public class ClassDefSet extends FixedSizeSet {
14 |
15 | private List list = new ArrayList<>();
16 |
17 | public void addClassDef (ClassDef classDef) {
18 | list.add(classDef);
19 | }
20 |
21 | public void replaceClassDef (ClassDef oldClassDef, ClassDef newClassDef) {
22 | list.remove(oldClassDef);
23 | list.add(newClassDef);
24 | }
25 |
26 | @Nonnull
27 | @Override
28 | public ClassDef readItem(int index) {
29 | return list.get(index);
30 | }
31 |
32 | @Override
33 | public int size() {
34 | return list.size();
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/me/dreamheart/chameleon/dex/Config.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon.dex;
2 |
3 | /**
4 | * Created by Junhua Lv on 2017/2/1.
5 | */
6 |
7 | public class Config {
8 | static public final int ApiLevel = 15;
9 | }
10 |
--------------------------------------------------------------------------------
/dextool/src/main/java/me/dreamheart/chameleon/dex/DexFileWrapper.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon.dex;
2 |
3 | import org.jf.dexlib2.Opcodes;
4 | import org.jf.dexlib2.dexbacked.DexBackedClassDef;
5 | import org.jf.dexlib2.dexbacked.DexBackedDexFile;
6 | import org.jf.dexlib2.iface.ClassDef;
7 | import org.jf.dexlib2.iface.DexFile;
8 |
9 | import javax.annotation.Nonnull;
10 | import java.util.HashMap;
11 | import java.util.Map;
12 | import java.util.Set;
13 |
14 | /**
15 | * Created by ljh102 on 2017/1/28.
16 | * DexBackedDexFile封装
17 | */
18 | public class DexFileWrapper implements DexFile {
19 |
20 | private DexFile dexFile;
21 | private ClassDefSet classes;
22 |
23 | public DexFileWrapper(DexFile dexFile) {
24 | this.dexFile = dexFile;
25 |
26 | ClassDefSet set = new ClassDefSet();
27 | Set extends ClassDef> classDefs = dexFile.getClasses();
28 | for (ClassDef classDef : classDefs) {
29 | set.addClassDef(classDef);
30 | }
31 | classes = set;
32 | }
33 |
34 | @Nonnull
35 | @Override
36 | public Set extends ClassDef> getClasses() {
37 | return classes;
38 | }
39 |
40 | @Nonnull
41 | @Override
42 | public Opcodes getOpcodes() {
43 | return dexFile.getOpcodes();
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/analysis/ClassProvider.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.analysis;
33 |
34 | import org.jf.dexlib2.iface.ClassDef;
35 |
36 | import javax.annotation.Nullable;
37 |
38 | public interface ClassProvider {
39 | @Nullable ClassDef getClassDef(String type);
40 | }
41 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/builder/SwitchLabelElement.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.builder;
33 |
34 | import javax.annotation.Nonnull;
35 |
36 | public class SwitchLabelElement {
37 | public final int key;
38 | @Nonnull public final Label target;
39 |
40 | public SwitchLabelElement(int key, @Nonnull Label target) {
41 | this.key = key;
42 | this.target = target;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/builder/instruction/BuilderSwitchElement.java:
--------------------------------------------------------------------------------
1 | package org.jf.dexlib2.builder.instruction;
2 |
3 | import org.jf.dexlib2.builder.BuilderSwitchPayload;
4 | import org.jf.dexlib2.builder.Label;
5 | import org.jf.dexlib2.iface.instruction.SwitchElement;
6 |
7 | import javax.annotation.Nonnull;
8 |
9 | public class BuilderSwitchElement implements SwitchElement {
10 | @Nonnull BuilderSwitchPayload parent;
11 | private final int key;
12 | @Nonnull private final Label target;
13 |
14 | public BuilderSwitchElement(@Nonnull BuilderSwitchPayload parent,
15 | int key,
16 | @Nonnull Label target) {
17 | this.parent = parent;
18 | this.key = key;
19 | this.target = target;
20 | }
21 |
22 | @Override public int getKey() {
23 | return key;
24 | }
25 |
26 | @Override public int getOffset() {
27 | return target.getCodeAddress() - parent.getReferrer().getCodeAddress();
28 | }
29 |
30 | @Nonnull
31 | public Label getTarget() {
32 | return target;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/dexbacked/DexBackedExceptionHandler.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.dexbacked;
33 |
34 | import org.jf.dexlib2.base.BaseExceptionHandler;
35 |
36 | public abstract class DexBackedExceptionHandler extends BaseExceptionHandler {
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/dexbacked/DexReader.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.dexbacked;
33 |
34 | import javax.annotation.Nonnull;
35 |
36 | public class DexReader extends BaseDexReader {
37 | public DexReader(@Nonnull DexBackedDexFile dexFile, int offset) {
38 | super(dexFile, offset);
39 | }
40 | }
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/BasicAnnotation.java:
--------------------------------------------------------------------------------
1 | package org.jf.dexlib2.iface;
2 |
3 | import javax.annotation.Nonnull;
4 | import java.util.Set;
5 |
6 | /**
7 | * This represents a basic annotation, and serves as a common superclass for Annotation and AnnotationEncodedValue
8 | */
9 | public interface BasicAnnotation {
10 | /**
11 | * Gets the type of this annotation.
12 | *
13 | * This will be the type descriptor of the class that defines this annotation.
14 | *
15 | * @return The type of this annotation
16 | */
17 | @Nonnull String getType();
18 |
19 | /**
20 | * Gets a set of the name/value elements associated with this annotation.
21 | *
22 | * The elements in the returned set will be unique with respect to the element name.
23 | *
24 | * @return A set of AnnotationElements
25 | */
26 | @Nonnull Set extends AnnotationElement> getElements();
27 | }
28 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/debug/EndLocal.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.debug;
33 |
34 | public interface EndLocal extends DebugItem, LocalInfo {
35 | int getRegister();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/debug/EpilogueBegin.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.debug;
33 |
34 | public interface EpilogueBegin extends DebugItem {
35 | }
36 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/debug/LocalInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.debug;
33 |
34 | import javax.annotation.Nullable;
35 |
36 | public interface LocalInfo {
37 | @Nullable String getName();
38 | @Nullable String getType();
39 | @Nullable String getSignature();
40 | }
41 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/debug/PrologueEnd.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.debug;
33 |
34 | public interface PrologueEnd extends DebugItem {
35 | }
36 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/debug/RestartLocal.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.debug;
33 |
34 | public interface RestartLocal extends DebugItem, LocalInfo {
35 | int getRegister();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/debug/SetSourceFile.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.debug;
33 |
34 | import org.jf.dexlib2.iface.reference.StringReference;
35 |
36 | import javax.annotation.Nullable;
37 |
38 | public interface SetSourceFile extends DebugItem {
39 | @Nullable String getSourceFile();
40 | @Nullable StringReference getSourceFileReference();
41 | }
42 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/DualReferenceInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | import org.jf.dexlib2.iface.reference.Reference;
35 |
36 | import javax.annotation.Nonnull;
37 |
38 | public interface DualReferenceInstruction extends ReferenceInstruction {
39 | @Nonnull Reference getReference2();
40 | int getReferenceType2();
41 | }
42 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/FieldOffsetInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface FieldOffsetInstruction extends Instruction {
35 | int getFieldOffset();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/FiveRegisterInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface FiveRegisterInstruction extends VariableRegisterInstruction {
35 | int getRegisterC();
36 | int getRegisterD();
37 | int getRegisterE();
38 | int getRegisterF();
39 | int getRegisterG();
40 | }
41 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/HatLiteralInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface HatLiteralInstruction extends Instruction {
35 | /**
36 | * @return the high order 16 bits of the literal, as a short value
37 | */
38 | short getHatLiteral();
39 | }
40 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/InlineIndexInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface InlineIndexInstruction extends Instruction {
35 | int getInlineIndex();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/LongHatLiteralInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface LongHatLiteralInstruction extends WideLiteralInstruction, HatLiteralInstruction {
35 | }
36 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/NarrowHatLiteralInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface NarrowHatLiteralInstruction extends HatLiteralInstruction, NarrowLiteralInstruction {
35 | }
36 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/NarrowLiteralInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface NarrowLiteralInstruction extends WideLiteralInstruction {
35 | int getNarrowLiteral();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/OffsetInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface OffsetInstruction extends Instruction {
35 | int getCodeOffset();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/OneRegisterInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface OneRegisterInstruction extends Instruction {
35 | int getRegisterA();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/PayloadInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | /**
35 | * Empty marker interface for the switch/array payload instructions
36 | */
37 | public interface PayloadInstruction extends Instruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/ReferenceInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | import org.jf.dexlib2.iface.reference.Reference;
35 |
36 | import javax.annotation.Nonnull;
37 |
38 | public interface ReferenceInstruction extends Instruction {
39 | @Nonnull Reference getReference();
40 | int getReferenceType();
41 | }
42 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/RegisterRangeInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface RegisterRangeInstruction extends VariableRegisterInstruction {
35 | int getStartRegister();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/SwitchElement.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface SwitchElement {
35 | public int getKey();
36 | public int getOffset();
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/SwitchPayload.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | import javax.annotation.Nonnull;
35 | import java.util.List;
36 |
37 | public interface SwitchPayload extends PayloadInstruction {
38 | @Nonnull List extends SwitchElement> getSwitchElements();
39 | }
40 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/ThreeRegisterInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface ThreeRegisterInstruction extends TwoRegisterInstruction {
35 | int getRegisterC();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/TwoRegisterInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface TwoRegisterInstruction extends OneRegisterInstruction {
35 | int getRegisterB();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/VariableRegisterInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface VariableRegisterInstruction extends Instruction {
35 | int getRegisterCount();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/VerificationErrorInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface VerificationErrorInstruction extends Instruction {
35 | int getVerificationError();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/VtableIndexInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface VtableIndexInstruction extends Instruction {
35 | int getVtableIndex();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/WideLiteralInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction;
33 |
34 | public interface WideLiteralInstruction extends Instruction {
35 | long getWideLiteral();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction10t.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.OffsetInstruction;
35 |
36 | public interface Instruction10t extends OffsetInstruction {
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction10x.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.Instruction;
35 |
36 | public interface Instruction10x extends Instruction {
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction11n.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.NarrowLiteralInstruction;
35 | import org.jf.dexlib2.iface.instruction.OneRegisterInstruction;
36 |
37 | public interface Instruction11n extends OneRegisterInstruction, NarrowLiteralInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction11x.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.OneRegisterInstruction;
35 |
36 | public interface Instruction11x extends OneRegisterInstruction {
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction12x.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.TwoRegisterInstruction;
35 |
36 | public interface Instruction12x extends TwoRegisterInstruction {
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction20bc.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.ReferenceInstruction;
35 | import org.jf.dexlib2.iface.instruction.VerificationErrorInstruction;
36 |
37 | public interface Instruction20bc extends VerificationErrorInstruction, ReferenceInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction20t.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.OffsetInstruction;
35 |
36 | public interface Instruction20t extends OffsetInstruction {
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction21c.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.OneRegisterInstruction;
35 | import org.jf.dexlib2.iface.instruction.ReferenceInstruction;
36 |
37 | public interface Instruction21c extends OneRegisterInstruction, ReferenceInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction21ih.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.NarrowHatLiteralInstruction;
35 | import org.jf.dexlib2.iface.instruction.OneRegisterInstruction;
36 |
37 | public interface Instruction21ih extends OneRegisterInstruction, NarrowHatLiteralInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction21lh.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.LongHatLiteralInstruction;
35 | import org.jf.dexlib2.iface.instruction.OneRegisterInstruction;
36 |
37 | public interface Instruction21lh extends OneRegisterInstruction, LongHatLiteralInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction21s.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.NarrowLiteralInstruction;
35 | import org.jf.dexlib2.iface.instruction.OneRegisterInstruction;
36 |
37 | public interface Instruction21s extends OneRegisterInstruction, NarrowLiteralInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction21t.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.OffsetInstruction;
35 | import org.jf.dexlib2.iface.instruction.OneRegisterInstruction;
36 |
37 | public interface Instruction21t extends OneRegisterInstruction, OffsetInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction22b.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.NarrowLiteralInstruction;
35 | import org.jf.dexlib2.iface.instruction.TwoRegisterInstruction;
36 |
37 | public interface Instruction22b extends TwoRegisterInstruction, NarrowLiteralInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction22c.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.ReferenceInstruction;
35 | import org.jf.dexlib2.iface.instruction.TwoRegisterInstruction;
36 |
37 | public interface Instruction22c extends TwoRegisterInstruction, ReferenceInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction22cs.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.FieldOffsetInstruction;
35 | import org.jf.dexlib2.iface.instruction.TwoRegisterInstruction;
36 |
37 | public interface Instruction22cs extends TwoRegisterInstruction, FieldOffsetInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction22s.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.NarrowLiteralInstruction;
35 | import org.jf.dexlib2.iface.instruction.TwoRegisterInstruction;
36 |
37 | public interface Instruction22s extends TwoRegisterInstruction, NarrowLiteralInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction22t.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.OffsetInstruction;
35 | import org.jf.dexlib2.iface.instruction.TwoRegisterInstruction;
36 |
37 | public interface Instruction22t extends TwoRegisterInstruction, OffsetInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction22x.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.TwoRegisterInstruction;
35 |
36 | public interface Instruction22x extends TwoRegisterInstruction {
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction23x.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.ThreeRegisterInstruction;
35 |
36 | public interface Instruction23x extends ThreeRegisterInstruction {
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction30t.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.OffsetInstruction;
35 |
36 | public interface Instruction30t extends OffsetInstruction {
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction31c.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.OneRegisterInstruction;
35 | import org.jf.dexlib2.iface.instruction.ReferenceInstruction;
36 |
37 | public interface Instruction31c extends OneRegisterInstruction, ReferenceInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction31i.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.NarrowLiteralInstruction;
35 | import org.jf.dexlib2.iface.instruction.OneRegisterInstruction;
36 |
37 | public interface Instruction31i extends OneRegisterInstruction, NarrowLiteralInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction31t.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.OffsetInstruction;
35 | import org.jf.dexlib2.iface.instruction.OneRegisterInstruction;
36 |
37 | public interface Instruction31t extends OneRegisterInstruction, OffsetInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction32x.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.TwoRegisterInstruction;
35 |
36 | public interface Instruction32x extends TwoRegisterInstruction {
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction35c.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.FiveRegisterInstruction;
35 | import org.jf.dexlib2.iface.instruction.ReferenceInstruction;
36 |
37 | public interface Instruction35c extends FiveRegisterInstruction, ReferenceInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction35mi.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.FiveRegisterInstruction;
35 | import org.jf.dexlib2.iface.instruction.InlineIndexInstruction;
36 |
37 | public interface Instruction35mi extends FiveRegisterInstruction, InlineIndexInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction35ms.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.FiveRegisterInstruction;
35 | import org.jf.dexlib2.iface.instruction.VtableIndexInstruction;
36 |
37 | public interface Instruction35ms extends FiveRegisterInstruction, VtableIndexInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction3rc.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.ReferenceInstruction;
35 | import org.jf.dexlib2.iface.instruction.RegisterRangeInstruction;
36 |
37 | public interface Instruction3rc extends RegisterRangeInstruction, ReferenceInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction3rmi.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.InlineIndexInstruction;
35 | import org.jf.dexlib2.iface.instruction.RegisterRangeInstruction;
36 |
37 | public interface Instruction3rmi extends RegisterRangeInstruction, InlineIndexInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction3rms.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.RegisterRangeInstruction;
35 | import org.jf.dexlib2.iface.instruction.VtableIndexInstruction;
36 |
37 | public interface Instruction3rms extends RegisterRangeInstruction, VtableIndexInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction45cc.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.DualReferenceInstruction;
35 | import org.jf.dexlib2.iface.instruction.FiveRegisterInstruction;
36 |
37 | public interface Instruction45cc extends FiveRegisterInstruction, DualReferenceInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction4rcc.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.DualReferenceInstruction;
35 | import org.jf.dexlib2.iface.instruction.RegisterRangeInstruction;
36 |
37 | public interface Instruction4rcc extends RegisterRangeInstruction, DualReferenceInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/Instruction51l.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.OneRegisterInstruction;
35 | import org.jf.dexlib2.iface.instruction.WideLiteralInstruction;
36 |
37 | public interface Instruction51l extends OneRegisterInstruction, WideLiteralInstruction {
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/PackedSwitchPayload.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.SwitchPayload;
35 |
36 | public interface PackedSwitchPayload extends SwitchPayload {
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/SparseSwitchPayload.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | import org.jf.dexlib2.iface.instruction.SwitchPayload;
35 |
36 | public interface SparseSwitchPayload extends SwitchPayload {
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/instruction/formats/UnknownInstruction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.instruction.formats;
33 |
34 | public interface UnknownInstruction extends Instruction10x {
35 | int getOriginalOpcode();
36 | }
37 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/iface/reference/Reference.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.iface.reference;
33 |
34 | /**
35 | * This class is the base interface for field/method/string/type references in a dex file. It has no functionality or
36 | * contract itself.
37 | */
38 | public interface Reference {
39 | }
40 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/immutable/reference/ImmutableReference.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.immutable.reference;
33 |
34 | import org.jf.dexlib2.ReferenceType;
35 | import org.jf.dexlib2.iface.reference.*;
36 | import org.jf.util.ExceptionWithContext;
37 |
38 | import javax.annotation.Nonnull;
39 |
40 | public interface ImmutableReference extends Reference {
41 | }
42 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/immutable/value/ImmutableEncodedValue.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.immutable.value;
33 |
34 | import org.jf.dexlib2.iface.value.EncodedValue;
35 |
36 | public interface ImmutableEncodedValue extends EncodedValue {
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/rewriter/Rewriter.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.rewriter;
33 |
34 | import javax.annotation.Nonnull;
35 |
36 | public interface Rewriter {
37 | @Nonnull
38 | T rewrite(@Nonnull T value);
39 | }
40 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/rewriter/TypeRewriter.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.rewriter;
33 |
34 | import javax.annotation.Nonnull;
35 |
36 | public class TypeRewriter implements Rewriter {
37 | @Nonnull @Override public String rewrite(@Nonnull String value) {
38 | return value;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/util/InstructionUtil.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.util;
33 |
34 | import org.jf.dexlib2.Opcode;
35 |
36 | public final class InstructionUtil {
37 | public static boolean isInvokeStatic(Opcode opcode) {
38 | return opcode == Opcode.INVOKE_STATIC || opcode == Opcode.INVOKE_STATIC_RANGE;
39 | }
40 |
41 | private InstructionUtil() {}
42 | }
43 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/writer/IndexSection.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.writer;
33 |
34 | import javax.annotation.Nonnull;
35 | import java.util.Collection;
36 | import java.util.Map;
37 |
38 | public interface IndexSection {
39 | int getItemIndex(@Nonnull Key key);
40 | @Nonnull Collection extends Map.Entry extends Key, Integer>> getItems();
41 | int getItemCount();
42 | }
43 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/writer/NullableIndexSection.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.writer;
33 |
34 | import javax.annotation.Nullable;
35 |
36 | public interface NullableIndexSection extends IndexSection {
37 | int getNullableItemIndex(@Nullable Key key);
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/writer/NullableOffsetSection.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.writer;
33 |
34 | import javax.annotation.Nullable;
35 |
36 | public interface NullableOffsetSection extends OffsetSection {
37 | int getNullableItemOffset(@Nullable Key key);
38 | }
39 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/writer/OffsetSection.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.writer;
33 |
34 | import javax.annotation.Nonnull;
35 | import java.util.Collection;
36 | import java.util.Map;
37 |
38 | public interface OffsetSection {
39 | int getItemOffset(@Nonnull Key key);
40 | @Nonnull Collection extends Map.Entry extends Key, Integer>> getItems();
41 | }
42 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/writer/StringSection.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.writer;
33 |
34 | import org.jf.dexlib2.iface.reference.StringReference;
35 |
36 | import javax.annotation.Nonnull;
37 |
38 | public interface StringSection extends NullableIndexSection {
39 | int getItemIndex(@Nonnull StringRef key);
40 | boolean hasJumboIndexes();
41 | }
42 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/writer/builder/BaseBuilderPool.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.writer.builder;
33 |
34 | import javax.annotation.Nonnull;
35 |
36 | public class BaseBuilderPool {
37 | @Nonnull protected final DexBuilder dexBuilder;
38 |
39 | public BaseBuilderPool(@Nonnull DexBuilder dexBuilder) {
40 | this.dexBuilder = dexBuilder;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/writer/builder/BuilderReference.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.writer.builder;
33 |
34 | import org.jf.dexlib2.iface.reference.Reference;
35 |
36 | public interface BuilderReference extends Reference {
37 | int getIndex();
38 | void setIndex(int index);
39 | }
40 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/writer/io/DeferredOutputStream.java:
--------------------------------------------------------------------------------
1 | package org.jf.dexlib2.writer.io;
2 |
3 | import java.io.IOException;
4 | import java.io.OutputStream;
5 |
6 | public abstract class DeferredOutputStream extends OutputStream {
7 | public abstract void writeTo(OutputStream output) throws IOException;
8 | }
9 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/writer/io/DeferredOutputStreamFactory.java:
--------------------------------------------------------------------------------
1 | package org.jf.dexlib2.writer.io;
2 |
3 | import java.io.IOException;
4 |
5 | public interface DeferredOutputStreamFactory {
6 | DeferredOutputStream makeDeferredOutputStream() throws IOException;
7 | }
8 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/writer/io/DexDataStore.java:
--------------------------------------------------------------------------------
1 | package org.jf.dexlib2.writer.io;
2 |
3 | import javax.annotation.Nonnull;
4 | import java.io.IOException;
5 | import java.io.InputStream;
6 | import java.io.OutputStream;
7 |
8 | public interface DexDataStore {
9 | @Nonnull OutputStream outputAt(int offset);
10 | @Nonnull InputStream readAt(int offset);
11 | void close() throws IOException;
12 | }
13 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/writer/io/FileDataStore.java:
--------------------------------------------------------------------------------
1 | package org.jf.dexlib2.writer.io;
2 |
3 | import org.jf.util.RandomAccessFileInputStream;
4 | import org.jf.util.RandomAccessFileOutputStream;
5 |
6 | import javax.annotation.Nonnull;
7 | import java.io.*;
8 |
9 | public class FileDataStore implements DexDataStore {
10 | private final RandomAccessFile raf;
11 |
12 | public FileDataStore(@Nonnull File file) throws FileNotFoundException, IOException {
13 | this.raf = new RandomAccessFile(file, "rw");
14 | this.raf.setLength(0);
15 | }
16 |
17 | @Nonnull @Override public OutputStream outputAt(int offset) {
18 | return new RandomAccessFileOutputStream(raf, offset);
19 | }
20 |
21 | @Nonnull @Override public InputStream readAt(int offset) {
22 | return new RandomAccessFileInputStream(raf, offset);
23 | }
24 |
25 | @Override public void close() throws IOException {
26 | raf.close();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/dexlib2/writer/pool/Markable.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.dexlib2.writer.pool;
33 |
34 | public interface Markable {
35 | void mark();
36 | void reset();
37 | }
38 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/util/AlignmentUtils.java:
--------------------------------------------------------------------------------
1 | /*
2 | * [The "BSD licence"]
3 | * Copyright (c) 2010 Ben Gruver (JesusFreke)
4 | * All rights reserved.
5 | *
6 | * Redistribution and use in source and binary forms, with or without
7 | * modification, are permitted provided that the following conditions
8 | * are met:
9 | * 1. Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in the
13 | * documentation and/or other materials provided with the distribution.
14 | * 3. The name of the author may not be used to endorse or promote products
15 | * derived from this software without specific prior written permission.
16 | *
17 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 | * INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | */
28 |
29 | package org.jf.util;
30 |
31 | public abstract class AlignmentUtils {
32 | public static int alignOffset(int offset, int alignment) {
33 | int mask = alignment - 1;
34 | assert (alignment >= 0) && ((mask & alignment) == 0);
35 | return (offset + mask) & ~mask;
36 | }
37 |
38 | public static boolean isAligned(int offset, int alignment) {
39 | return (offset % alignment) == 0;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/util/BitSetUtils.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2013, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.util;
33 |
34 | import java.util.BitSet;
35 |
36 | public class BitSetUtils {
37 | public static BitSet bitSetOfIndexes(int... indexes) {
38 | BitSet bitSet = new BitSet();
39 | for (int index: indexes) {
40 | bitSet.set(index);
41 | }
42 | return bitSet;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/util/NakedByteArrayOutputStream.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.util;
33 |
34 | import java.io.ByteArrayOutputStream;
35 | import java.io.IOException;
36 |
37 | /**
38 | * A ByteArrayOutputStream that lets you grab its protected bits.
39 | */
40 | public class NakedByteArrayOutputStream extends ByteArrayOutputStream {
41 | public byte[] getBuffer() throws IOException {
42 | return buf;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/dextool/src/main/java/org/jf/util/jcommander/ExtendedParameter.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016, Google Inc.
3 | * All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions are
7 | * met:
8 | *
9 | * Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | * Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | * Neither the name of Google Inc. nor the names of its
16 | * contributors may be used to endorse or promote products derived from
17 | * this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 | */
31 |
32 | package org.jf.util.jcommander;
33 |
34 | import java.lang.annotation.Retention;
35 | import java.lang.annotation.RetentionPolicy;
36 |
37 | @Retention(RetentionPolicy.RUNTIME)
38 | public @interface ExtendedParameter {
39 | String[] argumentNames();
40 | }
41 |
--------------------------------------------------------------------------------
/dextool/testData/appforload.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/dextool/testData/appforload.apk
--------------------------------------------------------------------------------
/dextool/testData/classes.dex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/dextool/testData/classes.dex
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | org.gradle.jvmargs=-Xmx1536m
13 |
14 | # When configured, Gradle will run in incubating parallel mode.
15 | # This option should only be used with decoupled projects. More details, visit
16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
17 | # org.gradle.parallel=true
18 | #systemProp.http.proxyHost=127.0.0.1
19 | #systemProp.http.proxyPort=3213
20 | #systemProp.https.proxyHost=127.0.0.1
21 | #systemProp.https.proxyPort=3213
22 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Junhua102/Chameleon/81a870db5608e76454e70852476e18e305e1c1a6/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Dec 28 10:00:20 PST 2015
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
7 |
--------------------------------------------------------------------------------
/hook/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/hook/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'java'
2 |
3 | dependencies {
4 | compile fileTree(dir: 'libs', include: ['*.jar'])
5 | }
6 |
7 | sourceCompatibility = "1.7"
8 | targetCompatibility = "1.7"
9 |
--------------------------------------------------------------------------------
/hook/src/main/java/me/dreamheart/chameleon/Hook.java:
--------------------------------------------------------------------------------
1 | package me.dreamheart.chameleon;
2 |
3 | /**
4 | * 注入到插件dex中的钩子
5 | */
6 | public class Hook {
7 | public interface HookListener {
8 | Object onAttachBaseContext(Object activity, Object orgContext);
9 | void onCreate(Object activity, Object savedInstanceState);
10 | }
11 |
12 | static public HookListener sHookListener;
13 |
14 | static public Object attachBaseContext(Object activity, Object orgContext) {
15 | if (null != sHookListener) {
16 | return sHookListener.onAttachBaseContext(activity, orgContext);
17 | }
18 | return orgContext;
19 | }
20 |
21 | static public void onCreate(Object activity, Object savedInstanceState) {
22 | if (null != sHookListener) {
23 | sHookListener.onCreate(activity, savedInstanceState);
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':demo', ':appforload', ':chameleon', ':hook', ':dextool'
2 |
--------------------------------------------------------------------------------