From 7d52c215ad14203b97de1f006ef0ec3f9eaca56e Mon Sep 17 00:00:00 2001 From: LoveSy Date: Mon, 8 Mar 2021 22:50:43 +0800 Subject: [PATCH] [core] Completely remove SandHook (#293) --- .../github/lsposed/manager/ConfigManager.java | 31 - .../LSPosedManagerServiceClient.java | 10 - .../manager/ui/activity/MainActivity.java | 2 +- build.gradle.kts | 2 +- core/build.gradle.kts | 1 - .../lspd/service/ILSPApplicationService.aidl | 2 - core/src/main/cpp/external/CMakeLists.txt | 3 - .../main/cpp/external/SandHook/CMakeLists.txt | 36 - .../external/SandHook/art/art_classlinker.cpp | 9 - .../SandHook/art/art_compiler_options.cpp | 25 - .../cpp/external/SandHook/art/art_method.cpp | 197 -- .../SandHook/casts/cast_art_method.cpp | 290 --- .../SandHook/casts/cast_compiler_options.cpp | 35 - core/src/main/cpp/external/SandHook/dummy.cpp | 10 - .../cpp/external/SandHook/includes/arch.h | 49 - .../external/SandHook/includes/arch_base.h | 34 - .../SandHook/includes/art_classlinker.h | 14 - .../SandHook/includes/art_collector_type.h | 66 - .../SandHook/includes/art_compiler_options.h | 28 - .../external/SandHook/includes/art_gc_cause.h | 71 - .../cpp/external/SandHook/includes/art_jit.h | 28 - .../external/SandHook/includes/art_method.h | 87 - .../external/SandHook/includes/art_runtime.h | 18 - .../cpp/external/SandHook/includes/cast.h | 123 - .../SandHook/includes/cast_art_method.h | 39 - .../SandHook/includes/cast_compiler_options.h | 24 - .../external/SandHook/includes/dlfcn_nougat.h | 17 - .../cpp/external/SandHook/includes/elf_util.h | 72 - .../cpp/external/SandHook/includes/hide_api.h | 59 - .../cpp/external/SandHook/includes/inst.h | 122 - .../main/cpp/external/SandHook/includes/log.h | 16 - .../external/SandHook/includes/native_hook.h | 19 - .../external/SandHook/includes/never_call.h | 14 - .../cpp/external/SandHook/includes/offset.h | 28 - .../cpp/external/SandHook/includes/sandhook.h | 16 - .../external/SandHook/includes/trampoline.h | 231 -- .../SandHook/includes/trampoline_manager.h | 115 - .../cpp/external/SandHook/includes/utils.h | 41 - .../external/SandHook/inst/insts_arm32.cpp | 134 -- .../external/SandHook/inst/insts_arm64.cpp | 74 - .../SandHook/nativehook/native_hook.cpp | 96 - .../main/cpp/external/SandHook/sandhook.cpp | 566 ----- .../src/main/cpp/external/SandHook/sandhook.h | 9 - .../external/SandHook/trampoline/arch/arm32.S | 124 - .../external/SandHook/trampoline/arch/arm64.S | 139 -- .../SandHook/trampoline/trampoline.cpp | 144 -- .../trampoline/trampoline_manager.cpp | 324 --- .../external/SandHook/utils/dlfcn_nougat.cpp | 296 --- .../cpp/external/SandHook/utils/elf_util.cpp | 171 -- .../cpp/external/SandHook/utils/hide_api.cpp | 337 --- .../main/cpp/external/SandHook/utils/lock.h | 34 - .../cpp/external/SandHook/utils/offset.cpp | 59 - .../cpp/external/SandHook/utils/utils.cpp | 143 -- core/src/main/cpp/main/CMakeLists.txt | 2 +- core/src/main/cpp/main/include/jni_helper.h | 2 +- core/src/main/cpp/main/src/context.cpp | 2 - .../cpp/main/src/jni/art_class_linker.cpp | 2 +- core/src/main/cpp/main/src/jni/sandhook.cpp | 37 - core/src/main/cpp/main/src/jni/sandhook.h | 32 - core/src/main/cpp/main/src/jni/yahfa.cpp | 8 +- .../sandhook/xposedcompat/XposedCompat.java | 57 - .../hookstub/CallOriginCallBack.java | 5 - .../hookstub/HookMethodEntity.java | 93 - .../hookstub/HookStubManager.java | 411 ---- .../hookstub/MethodHookerStubs32.java | 1413 ----------- .../hookstub/MethodHookerStubs64.java | 1515 ------------ .../xposedcompat/methodgen/ErrorCatch.java | 22 - .../xposedcompat/methodgen/HookMaker.java | 14 - .../methodgen/HookerDexMaker.java | 703 ------ .../methodgen/HookerDexMakerNew.java | 313 --- .../methodgen/SandHookXposedBridge.java | 133 - .../xposedcompat/utils/ApplicationUtils.java | 34 - .../sandhook/xposedcompat/utils/DexLog.java | 55 - .../xposedcompat/utils/DexMakerUtils.java | 255 -- .../de/robv/android/xposed/PendingHooks.java | 11 +- .../de/robv/android/xposed/XposedBridge.java | 51 +- .../de/robv/android/xposed/XposedHelpers.java | 7 - .../de/robv/android/xposed/XposedInit.java | 8 +- .../android/xposed/callbacks/XCallback.java | 5 +- .../external/com/android/dex/Annotation.java | 65 - .../external/com/android/dex/CallSiteId.java | 55 - .../external/com/android/dex/ClassData.java | 104 - .../external/com/android/dex/ClassDef.java | 103 - .../java/external/com/android/dex/Code.java | 124 - .../java/external/com/android/dex/Dex.java | 819 ------- .../com/android/dex/DexException.java | 33 - .../external/com/android/dex/DexFormat.java | 170 -- .../dex/DexIndexOverflowException.java | 30 - .../com/android/dex/EncodedValue.java | 59 - .../com/android/dex/EncodedValueCodec.java | 187 -- .../com/android/dex/EncodedValueReader.java | 307 --- .../external/com/android/dex/FieldId.java | 70 - .../java/external/com/android/dex/Leb128.java | 134 -- .../com/android/dex/MethodHandle.java | 132 - .../external/com/android/dex/MethodId.java | 72 - .../java/external/com/android/dex/Mutf8.java | 115 - .../external/com/android/dex/ProtoId.java | 70 - .../java/external/com/android/dex/SizeOf.java | 123 - .../com/android/dex/TableOfContents.java | 246 -- .../external/com/android/dex/TypeList.java | 57 - .../android/dex/util/ByteArrayByteInput.java | 32 - .../com/android/dex/util/ByteInput.java | 30 - .../com/android/dex/util/ByteOutput.java | 30 - .../dex/util/ExceptionWithContext.java | 148 -- .../com/android/dex/util/FileUtils.java | 97 - .../com/android/dex/util/Unsigned.java | 42 - .../external/com/android/dx/AnnotationId.java | 257 -- .../com/android/dx/AppDataDirGuesser.java | 236 -- .../external/com/android/dx/BinaryOp.java | 129 - .../java/external/com/android/dx/Code.java | 936 -------- .../external/com/android/dx/Comparison.java | 77 - .../external/com/android/dx/Constants.java | 72 - .../external/com/android/dx/DexMaker.java | 724 ------ .../java/external/com/android/dx/FieldId.java | 77 - .../java/external/com/android/dx/Label.java | 92 - .../java/external/com/android/dx/Local.java | 75 - .../external/com/android/dx/MethodId.java | 131 - .../java/external/com/android/dx/TypeId.java | 153 -- .../external/com/android/dx/TypeList.java | 67 - .../java/external/com/android/dx/UnaryOp.java | 44 - .../java/external/com/android/dx/Version.java | 25 - .../dx/cf/attrib/AttAnnotationDefault.java | 68 - .../dx/cf/attrib/AttBootstrapMethods.java | 59 - .../com/android/dx/cf/attrib/AttCode.java | 146 -- .../dx/cf/attrib/AttConstantValue.java | 78 - .../android/dx/cf/attrib/AttDeprecated.java | 38 - .../dx/cf/attrib/AttEnclosingMethod.java | 79 - .../android/dx/cf/attrib/AttExceptions.java | 69 - .../android/dx/cf/attrib/AttInnerClasses.java | 65 - .../dx/cf/attrib/AttLineNumberTable.java | 66 - .../dx/cf/attrib/AttLocalVariableTable.java | 36 - .../cf/attrib/AttLocalVariableTypeTable.java | 36 - .../AttRuntimeInvisibleAnnotations.java | 40 - ...tRuntimeInvisibleParameterAnnotations.java | 42 - .../attrib/AttRuntimeVisibleAnnotations.java | 40 - ...AttRuntimeVisibleParameterAnnotations.java | 42 - .../android/dx/cf/attrib/AttSignature.java | 60 - .../dx/cf/attrib/AttSourceDebugExtension.java | 62 - .../android/dx/cf/attrib/AttSourceFile.java | 60 - .../android/dx/cf/attrib/AttSynthetic.java | 38 - .../android/dx/cf/attrib/BaseAnnotations.java | 73 - .../android/dx/cf/attrib/BaseAttribute.java | 47 - .../dx/cf/attrib/BaseLocalVariables.java | 66 - .../cf/attrib/BaseParameterAnnotations.java | 74 - .../android/dx/cf/attrib/InnerClassList.java | 137 -- .../android/dx/cf/attrib/RawAttribute.java | 92 - .../com/android/dx/cf/attrib/package.html | 11 - .../com/android/dx/cf/code/BaseMachine.java | 595 ----- .../com/android/dx/cf/code/BasicBlocker.java | 465 ---- .../cf/code/BootstrapMethodArgumentsList.java | 75 - .../dx/cf/code/BootstrapMethodsList.java | 140 -- .../com/android/dx/cf/code/ByteBlock.java | 146 -- .../com/android/dx/cf/code/ByteBlockList.java | 74 - .../com/android/dx/cf/code/ByteCatchList.java | 317 --- .../com/android/dx/cf/code/ByteOps.java | 650 ----- .../com/android/dx/cf/code/BytecodeArray.java | 1439 ----------- .../android/dx/cf/code/ConcreteMethod.java | 260 -- .../android/dx/cf/code/ExecutionStack.java | 343 --- .../com/android/dx/cf/code/Frame.java | 415 ---- .../android/dx/cf/code/LineNumberList.java | 184 -- .../android/dx/cf/code/LocalVariableList.java | 373 --- .../com/android/dx/cf/code/LocalsArray.java | 181 -- .../android/dx/cf/code/LocalsArraySet.java | 461 ---- .../com/android/dx/cf/code/Machine.java | 216 -- .../com/android/dx/cf/code/Merger.java | 305 --- .../android/dx/cf/code/OneLocalsArray.java | 257 -- .../com/android/dx/cf/code/ReturnAddress.java | 114 - .../com/android/dx/cf/code/Ropper.java | 1801 -------------- .../com/android/dx/cf/code/RopperMachine.java | 1032 -------- .../com/android/dx/cf/code/SimException.java | 37 - .../com/android/dx/cf/code/Simulator.java | 955 -------- .../com/android/dx/cf/code/SwitchList.java | 193 -- .../android/dx/cf/code/ValueAwareMachine.java | 210 -- .../com/android/dx/cf/code/package.html | 10 - .../android/dx/cf/cst/ConstantPoolParser.java | 450 ---- .../com/android/dx/cf/cst/ConstantTags.java | 64 - .../android/dx/cf/cst/MethodHandleKind.java | 49 - .../dx/cf/direct/AnnotationParser.java | 470 ---- .../dx/cf/direct/AttributeFactory.java | 134 -- .../dx/cf/direct/AttributeListParser.java | 164 -- .../android/dx/cf/direct/ClassPathOpener.java | 292 --- .../android/dx/cf/direct/CodeObserver.java | 312 --- .../android/dx/cf/direct/DirectClassFile.java | 688 ------ .../android/dx/cf/direct/FieldListParser.java | 86 - .../dx/cf/direct/MemberListParser.java | 240 -- .../dx/cf/direct/MethodListParser.java | 86 - .../dx/cf/direct/StdAttributeFactory.java | 861 ------- .../com/android/dx/cf/direct/package.html | 12 - .../com/android/dx/cf/iface/Attribute.java | 38 - .../android/dx/cf/iface/AttributeList.java | 75 - .../com/android/dx/cf/iface/ClassFile.java | 131 - .../com/android/dx/cf/iface/Field.java | 35 - .../com/android/dx/cf/iface/FieldList.java | 48 - .../com/android/dx/cf/iface/HasAttribute.java | 32 - .../com/android/dx/cf/iface/Member.java | 75 - .../com/android/dx/cf/iface/Method.java | 34 - .../com/android/dx/cf/iface/MethodList.java | 47 - .../android/dx/cf/iface/ParseException.java | 37 - .../android/dx/cf/iface/ParseObserver.java | 68 - .../android/dx/cf/iface/StdAttributeList.java | 108 - .../com/android/dx/cf/iface/StdField.java | 55 - .../com/android/dx/cf/iface/StdFieldList.java | 50 - .../com/android/dx/cf/iface/StdMember.java | 116 - .../com/android/dx/cf/iface/StdMethod.java | 56 - .../android/dx/cf/iface/StdMethodList.java | 50 - .../com/android/dx/cf/iface/package.html | 10 - .../external/com/android/dx/command/Main.java | 178 -- .../android/dx/command/UsageException.java | 25 - .../dx/command/annotool/AnnotationLister.java | 285 --- .../com/android/dx/command/annotool/Main.java | 147 -- .../android/dx/command/dexer/DxContext.java | 34 - .../com/android/dx/command/dexer/Main.java | 1974 --------------- .../com/android/dx/command/dump/Args.java | 56 - .../android/dx/command/dump/BaseDumper.java | 287 --- .../android/dx/command/dump/BlockDumper.java | 344 --- .../android/dx/command/dump/ClassDumper.java | 73 - .../android/dx/command/dump/DotDumper.java | 174 -- .../com/android/dx/command/dump/Main.java | 134 -- .../android/dx/command/dump/SsaDumper.java | 178 -- .../dx/command/findusages/FindUsages.java | 211 -- .../android/dx/command/findusages/Main.java | 35 - .../com/android/dx/command/grep/Grep.java | 131 - .../com/android/dx/command/grep/Main.java | 34 - .../com/android/dx/dex/DexOptions.java | 79 - .../dx/dex/cf/AttributeTranslator.java | 443 ---- .../com/android/dx/dex/cf/CfOptions.java | 49 - .../com/android/dx/dex/cf/CfTranslator.java | 442 ---- .../com/android/dx/dex/cf/CodeStatistics.java | 164 -- .../android/dx/dex/cf/OptimizerOptions.java | 178 -- .../com/android/dx/dex/cf/package.html | 15 - .../com/android/dx/dex/code/ArrayData.java | 201 -- .../android/dx/dex/code/BlockAddresses.java | 143 -- .../com/android/dx/dex/code/CatchBuilder.java | 47 - .../android/dx/dex/code/CatchHandlerList.java | 241 -- .../com/android/dx/dex/code/CatchTable.java | 193 -- .../com/android/dx/dex/code/CodeAddress.java | 91 - .../com/android/dx/dex/code/CstInsn.java | 236 -- .../com/android/dx/dex/code/DalvCode.java | 231 -- .../com/android/dx/dex/code/DalvInsn.java | 487 ---- .../com/android/dx/dex/code/DalvInsnList.java | 286 --- .../external/com/android/dx/dex/code/Dop.java | 173 -- .../com/android/dx/dex/code/Dops.java | 1261 ---------- .../android/dx/dex/code/FixedSizeInsn.java | 73 - .../dx/dex/code/HighRegisterPrefix.java | 146 -- .../com/android/dx/dex/code/InsnFormat.java | 668 ------ .../com/android/dx/dex/code/LocalList.java | 947 -------- .../android/dx/dex/code/LocalSnapshot.java | 103 - .../com/android/dx/dex/code/LocalStart.java | 105 - .../com/android/dx/dex/code/MultiCstInsn.java | 254 -- .../com/android/dx/dex/code/OddSpacer.java | 76 - .../android/dx/dex/code/OutputCollector.java | 121 - .../android/dx/dex/code/OutputFinisher.java | 938 -------- .../com/android/dx/dex/code/PositionList.java | 192 -- .../com/android/dx/dex/code/RopToDop.java | 599 ----- .../android/dx/dex/code/RopTranslator.java | 913 ------- .../com/android/dx/dex/code/SimpleInsn.java | 59 - .../android/dx/dex/code/StdCatchBuilder.java | 318 --- .../com/android/dx/dex/code/SwitchData.java | 258 -- .../com/android/dx/dex/code/TargetInsn.java | 132 - .../android/dx/dex/code/VariableSizeInsn.java | 49 - .../com/android/dx/dex/code/ZeroSizeInsn.java | 62 - .../com/android/dx/dex/code/form/Form10t.java | 86 - .../com/android/dx/dex/code/form/Form10x.java | 72 - .../com/android/dx/dex/code/form/Form11n.java | 109 - .../com/android/dx/dex/code/form/Form11x.java | 87 - .../com/android/dx/dex/code/form/Form12x.java | 161 -- .../com/android/dx/dex/code/form/Form20t.java | 86 - .../com/android/dx/dex/code/form/Form21c.java | 152 -- .../com/android/dx/dex/code/form/Form21h.java | 125 - .../com/android/dx/dex/code/form/Form21s.java | 109 - .../com/android/dx/dex/code/form/Form21t.java | 105 - .../com/android/dx/dex/code/form/Form22b.java | 112 - .../com/android/dx/dex/code/form/Form22c.java | 114 - .../com/android/dx/dex/code/form/Form22s.java | 113 - .../com/android/dx/dex/code/form/Form22t.java | 109 - .../com/android/dx/dex/code/form/Form22x.java | 92 - .../com/android/dx/dex/code/form/Form23x.java | 95 - .../com/android/dx/dex/code/form/Form30t.java | 82 - .../com/android/dx/dex/code/form/Form31c.java | 141 -- .../com/android/dx/dex/code/form/Form31i.java | 105 - .../com/android/dx/dex/code/form/Form31t.java | 99 - .../com/android/dx/dex/code/form/Form32x.java | 93 - .../com/android/dx/dex/code/form/Form35c.java | 212 -- .../com/android/dx/dex/code/form/Form3rc.java | 108 - .../android/dx/dex/code/form/Form45cc.java | 222 -- .../android/dx/dex/code/form/Form4rcc.java | 120 - .../com/android/dx/dex/code/form/Form51l.java | 102 - .../dx/dex/code/form/SpecialFormat.java | 72 - .../android/dx/dex/file/AnnotationItem.java | 222 -- .../dx/dex/file/AnnotationSetItem.java | 159 -- .../dx/dex/file/AnnotationSetRefItem.java | 81 - .../android/dx/dex/file/AnnotationUtils.java | 269 --- .../dx/dex/file/AnnotationsDirectoryItem.java | 389 --- .../android/dx/dex/file/CallSiteIdItem.java | 90 - .../dx/dex/file/CallSiteIdsSection.java | 130 - .../com/android/dx/dex/file/CallSiteItem.java | 105 - .../com/android/dx/dex/file/CatchStructs.java | 314 --- .../android/dx/dex/file/ClassDataItem.java | 425 ---- .../com/android/dx/dex/file/ClassDefItem.java | 411 ---- .../android/dx/dex/file/ClassDefsSection.java | 186 -- .../com/android/dx/dex/file/CodeItem.java | 327 --- .../dx/dex/file/DebugInfoConstants.java | 154 -- .../android/dx/dex/file/DebugInfoDecoder.java | 597 ----- .../android/dx/dex/file/DebugInfoEncoder.java | 932 ------- .../android/dx/dex/file/DebugInfoItem.java | 193 -- .../com/android/dx/dex/file/DexFile.java | 805 ------- .../android/dx/dex/file/EncodedArrayItem.java | 123 - .../com/android/dx/dex/file/EncodedField.java | 157 -- .../android/dx/dex/file/EncodedMember.java | 85 - .../android/dx/dex/file/EncodedMethod.java | 198 -- .../dx/dex/file/FieldAnnotationStruct.java | 126 - .../com/android/dx/dex/file/FieldIdItem.java | 70 - .../android/dx/dex/file/FieldIdsSection.java | 136 -- .../com/android/dx/dex/file/HeaderItem.java | 115 - .../android/dx/dex/file/HeaderSection.java | 62 - .../com/android/dx/dex/file/IdItem.java | 61 - .../com/android/dx/dex/file/IndexedItem.java | 81 - .../com/android/dx/dex/file/Item.java | 80 - .../com/android/dx/dex/file/ItemType.java | 100 - .../com/android/dx/dex/file/MapItem.java | 234 -- .../com/android/dx/dex/file/MemberIdItem.java | 109 - .../android/dx/dex/file/MemberIdsSection.java | 86 - .../dx/dex/file/MethodAnnotationStruct.java | 126 - .../android/dx/dex/file/MethodHandleItem.java | 104 - .../dx/dex/file/MethodHandlesSection.java | 75 - .../com/android/dx/dex/file/MethodIdItem.java | 70 - .../android/dx/dex/file/MethodIdsSection.java | 136 -- .../android/dx/dex/file/MixedItemSection.java | 362 --- .../android/dx/dex/file/OffsettedItem.java | 315 --- .../dex/file/ParameterAnnotationStruct.java | 165 -- .../com/android/dx/dex/file/ProtoIdItem.java | 159 -- .../android/dx/dex/file/ProtoIdsSection.java | 155 -- .../com/android/dx/dex/file/Section.java | 286 --- .../com/android/dx/dex/file/Statistics.java | 194 -- .../android/dx/dex/file/StringDataItem.java | 99 - .../com/android/dx/dex/file/StringIdItem.java | 127 - .../android/dx/dex/file/StringIdsSection.java | 181 -- .../com/android/dx/dex/file/TypeIdItem.java | 70 - .../android/dx/dex/file/TypeIdsSection.java | 197 -- .../com/android/dx/dex/file/TypeListItem.java | 122 - .../dx/dex/file/UniformItemSection.java | 111 - .../android/dx/dex/file/UniformListItem.java | 214 -- .../com/android/dx/dex/file/ValueEncoder.java | 447 ---- .../com/android/dx/io/CodeReader.java | 137 -- .../com/android/dx/io/DexIndexPrinter.java | 129 - .../external/com/android/dx/io/IndexType.java | 64 - .../com/android/dx/io/OpcodeInfo.java | 1295 ---------- .../external/com/android/dx/io/Opcodes.java | 353 --- .../dx/io/instructions/AddressMap.java | 51 - .../dx/io/instructions/BaseCodeCursor.java | 62 - .../dx/io/instructions/CodeCursor.java | 47 - .../android/dx/io/instructions/CodeInput.java | 45 - .../dx/io/instructions/CodeOutput.java | 77 - .../io/instructions/DecodedInstruction.java | 488 ---- ...illArrayDataPayloadDecodedInstruction.java | 102 - .../FiveRegisterDecodedInstruction.java | 98 - .../FourRegisterDecodedInstruction.java | 88 - .../dx/io/instructions/InstructionCodec.java | 1112 --------- .../InvokePolymorphicDecodedInstruction.java | 87 - ...okePolymorphicRangeDecodedInstruction.java | 78 - .../OneRegisterDecodedInstruction.java | 58 - ...PackedSwitchPayloadDecodedInstruction.java | 64 - .../RegisterRangeDecodedInstruction.java | 63 - .../io/instructions/ShortArrayCodeInput.java | 77 - .../io/instructions/ShortArrayCodeOutput.java | 157 -- ...SparseSwitchPayloadDecodedInstruction.java | 68 - .../ThreeRegisterDecodedInstruction.java | 78 - .../TwoRegisterDecodedInstruction.java | 68 - .../ZeroRegisterDecodedInstruction.java | 46 - .../com/android/dx/merge/CollisionPolicy.java | 34 - .../com/android/dx/merge/DexMerger.java | 1201 ---------- .../com/android/dx/merge/IndexMap.java | 389 --- .../dx/merge/InstructionTransformer.java | 141 -- .../com/android/dx/merge/SortableType.java | 117 - .../android/dx/rop/annotation/Annotation.java | 226 -- .../rop/annotation/AnnotationVisibility.java | 47 - .../dx/rop/annotation/Annotations.java | 214 -- .../dx/rop/annotation/AnnotationsList.java | 91 - .../dx/rop/annotation/NameValuePair.java | 110 - .../com/android/dx/rop/code/AccessFlags.java | 406 ---- .../com/android/dx/rop/code/BasicBlock.java | 283 --- .../android/dx/rop/code/BasicBlockList.java | 408 ---- .../code/ConservativeTranslationAdvice.java | 55 - .../com/android/dx/rop/code/CstInsn.java | 74 - .../dx/rop/code/DexTranslationAdvice.java | 133 - .../com/android/dx/rop/code/Exceptions.java | 133 - .../dx/rop/code/FillArrayDataInsn.java | 115 - .../com/android/dx/rop/code/Insn.java | 476 ---- .../com/android/dx/rop/code/InsnList.java | 130 - .../dx/rop/code/InvokePolymorphicInsn.java | 239 -- .../com/android/dx/rop/code/LocalItem.java | 144 -- .../dx/rop/code/LocalVariableExtractor.java | 191 -- .../dx/rop/code/LocalVariableInfo.java | 253 -- .../com/android/dx/rop/code/PlainCstInsn.java | 87 - .../com/android/dx/rop/code/PlainInsn.java | 157 -- .../com/android/dx/rop/code/RegOps.java | 417 ---- .../com/android/dx/rop/code/RegisterSpec.java | 686 ------ .../android/dx/rop/code/RegisterSpecList.java | 441 ---- .../android/dx/rop/code/RegisterSpecSet.java | 396 --- .../external/com/android/dx/rop/code/Rop.java | 407 ---- .../com/android/dx/rop/code/RopMethod.java | 206 -- .../com/android/dx/rop/code/Rops.java | 2131 ----------------- .../android/dx/rop/code/SourcePosition.java | 168 -- .../com/android/dx/rop/code/SwitchInsn.java | 119 - .../android/dx/rop/code/ThrowingCstInsn.java | 110 - .../com/android/dx/rop/code/ThrowingInsn.java | 120 - .../dx/rop/code/TranslationAdvice.java | 62 - .../com/android/dx/rop/code/package.html | 8 - .../com/android/dx/rop/cst/Constant.java | 69 - .../com/android/dx/rop/cst/ConstantPool.java | 77 - .../com/android/dx/rop/cst/CstAnnotation.java | 97 - .../com/android/dx/rop/cst/CstArray.java | 160 -- .../android/dx/rop/cst/CstBaseMethodRef.java | 216 -- .../com/android/dx/rop/cst/CstBoolean.java | 101 - .../com/android/dx/rop/cst/CstByte.java | 101 - .../com/android/dx/rop/cst/CstCallSite.java | 110 - .../android/dx/rop/cst/CstCallSiteRef.java | 110 - .../com/android/dx/rop/cst/CstChar.java | 101 - .../com/android/dx/rop/cst/CstDouble.java | 92 - .../com/android/dx/rop/cst/CstEnumRef.java | 69 - .../com/android/dx/rop/cst/CstFieldRef.java | 80 - .../com/android/dx/rop/cst/CstFloat.java | 93 - .../com/android/dx/rop/cst/CstInteger.java | 118 - .../dx/rop/cst/CstInterfaceMethodRef.java | 60 - .../android/dx/rop/cst/CstInvokeDynamic.java | 224 -- .../com/android/dx/rop/cst/CstKnownNull.java | 112 - .../com/android/dx/rop/cst/CstLiteral32.java | 87 - .../com/android/dx/rop/cst/CstLiteral64.java | 87 - .../android/dx/rop/cst/CstLiteralBits.java | 82 - .../com/android/dx/rop/cst/CstLong.java | 89 - .../com/android/dx/rop/cst/CstMemberRef.java | 123 - .../android/dx/rop/cst/CstMethodHandle.java | 205 -- .../com/android/dx/rop/cst/CstMethodRef.java | 39 - .../com/android/dx/rop/cst/CstNat.java | 171 -- .../com/android/dx/rop/cst/CstProtoRef.java | 99 - .../com/android/dx/rop/cst/CstShort.java | 102 - .../com/android/dx/rop/cst/CstString.java | 377 --- .../com/android/dx/rop/cst/CstType.java | 299 --- .../android/dx/rop/cst/StdConstantPool.java | 153 -- .../com/android/dx/rop/cst/TypedConstant.java | 53 - .../com/android/dx/rop/cst/Zeroes.java | 55 - .../com/android/dx/rop/cst/package.html | 9 - .../com/android/dx/rop/package-info.java | 200 -- .../com/android/dx/rop/type/Prototype.java | 421 ---- .../com/android/dx/rop/type/StdTypeList.java | 410 ---- .../com/android/dx/rop/type/Type.java | 913 ------- .../com/android/dx/rop/type/TypeBearer.java | 74 - .../com/android/dx/rop/type/TypeList.java | 69 - .../com/android/dx/rop/type/package.html | 8 - .../android/dx/ssa/BasicRegisterMapper.java | 128 - .../com/android/dx/ssa/ConstCollector.java | 400 ---- .../com/android/dx/ssa/DeadCodeRemover.java | 271 --- .../external/com/android/dx/ssa/DomFront.java | 200 -- .../com/android/dx/ssa/Dominators.java | 286 --- .../com/android/dx/ssa/EscapeAnalysis.java | 846 ------- .../dx/ssa/InterferenceRegisterMapper.java | 162 -- .../com/android/dx/ssa/LiteralOpUpgrader.java | 209 -- .../dx/ssa/LocalVariableExtractor.java | 207 -- .../com/android/dx/ssa/LocalVariableInfo.java | 250 -- .../com/android/dx/ssa/MoveParamCombiner.java | 159 -- .../com/android/dx/ssa/NormalSsaInsn.java | 242 -- .../com/android/dx/ssa/Optimizer.java | 256 -- .../external/com/android/dx/ssa/PhiInsn.java | 403 ---- .../com/android/dx/ssa/PhiTypeResolver.java | 199 -- .../com/android/dx/ssa/RegisterMapper.java | 83 - .../external/com/android/dx/ssa/SCCP.java | 680 ------ .../com/android/dx/ssa/SetFactory.java | 95 - .../com/android/dx/ssa/SsaBasicBlock.java | 1011 -------- .../com/android/dx/ssa/SsaConverter.java | 403 ---- .../external/com/android/dx/ssa/SsaInsn.java | 293 --- .../com/android/dx/ssa/SsaMethod.java | 857 ------- .../com/android/dx/ssa/SsaRenamer.java | 667 ------ .../dx/ssa/back/FirstFitAllocator.java | 149 -- .../back/FirstFitLocalCombiningAllocator.java | 1259 ---------- .../dx/ssa/back/IdenticalBlockCombiner.java | 177 -- .../dx/ssa/back/InterferenceGraph.java | 103 - .../android/dx/ssa/back/LivenessAnalyzer.java | 289 --- .../dx/ssa/back/NullRegisterAllocator.java | 55 - .../dx/ssa/back/RegisterAllocator.java | 195 -- .../com/android/dx/ssa/back/SsaToRop.java | 384 --- .../com/android/dx/ssa/package-info.java | 103 - .../com/android/dx/stock/ProxyBuilder.java | 994 -------- .../com/android/dx/util/AnnotatedOutput.java | 79 - .../com/android/dx/util/BitIntSet.java | 154 -- .../external/com/android/dx/util/Bits.java | 236 -- .../com/android/dx/util/ByteArray.java | 364 --- .../dx/util/ByteArrayAnnotatedOutput.java | 655 ----- .../com/android/dx/util/FixedSizeList.java | 277 --- .../external/com/android/dx/util/Hex.java | 303 --- .../com/android/dx/util/HexParser.java | 145 -- .../com/android/dx/util/IndentingWriter.java | 169 -- .../com/android/dx/util/IntIterator.java | 38 - .../external/com/android/dx/util/IntList.java | 453 ---- .../external/com/android/dx/util/IntSet.java | 67 - .../com/android/dx/util/LabeledItem.java | 30 - .../com/android/dx/util/LabeledList.java | 187 -- .../com/android/dx/util/ListIntSet.java | 141 -- .../android/dx/util/MutabilityControl.java | 89 - .../android/dx/util/MutabilityException.java | 37 - .../external/com/android/dx/util/Output.java | 132 - .../external/com/android/dx/util/ToHuman.java | 31 - .../com/android/dx/util/TwoColumnOutput.java | 254 -- .../external/com/android/dx/util/Warning.java | 31 - .../external/com/android/dx/util/Writers.java | 48 - .../external/com/android/dx/util/package.html | 3 - .../android/multidex/ArchivePathElement.java | 100 - .../android/multidex/ClassPathElement.java | 41 - .../multidex/ClassReferenceListBuilder.java | 167 -- .../android/multidex/FolderPathElement.java | 63 - .../android/multidex/MainDexListBuilder.java | 194 -- .../external/com/android/multidex/Path.java | 118 - .../lsposed/lspd/annotation/ApiSensitive.java | 37 - .../github/lsposed/lspd/annotation/Level.java | 29 - .../lsposed/lspd/config/BaseHookProvider.java | 71 - .../config/LSPApplicationServiceClient.java | 9 - .../lsposed/lspd/config/LSPdConfigGlobal.java | 35 - .../io/github/lsposed/lspd/core/BaseImpl.java | 67 - .../io/github/lsposed/lspd/core/Impl.java | 55 - .../io/github/lsposed/lspd/core/Main.java | 117 +- .../io/github/lsposed/lspd/core/Proxy.java | 30 - .../lsposed/lspd/core/yahfa/HookMain.java | 10 +- .../lspd/deopt/InlinedMethodCallers.java | 4 - .../lspd/deopt/PrebuiltMethodsDeopter.java | 9 +- .../lsposed/lspd/hook/HookProvider.java | 51 - .../lsposed/lspd/hooker/SystemMainHooker.java | 2 +- .../lspd/nativebridge/ClassLinker.java | 5 +- .../lsposed/lspd/nativebridge/SandHook.java | 24 - .../lsposed/lspd/nativebridge/Yahfa.java | 9 +- .../github/lsposed/lspd/proxy/BaseProxy.java | 39 - .../github/lsposed/lspd/proxy/BaseRouter.java | 116 - .../lsposed/lspd/proxy/NormalProxy.java | 61 - .../io/github/lsposed/lspd/proxy/Router.java | 40 - .../sandhook/config/SandHookProvider.java | 107 - .../lspd/sandhook/core/SandHookImpl.java | 57 - .../lspd/sandhook/core/SandHookRouter.java | 43 - .../lsposed/lspd/service/ConfigManager.java | 13 - .../lspd/service/LSPApplicationService.java | 6 - .../lspd/service/LSPManagerService.java | 10 - .../lsposed/lspd/util/ClassLoaderUtils.java | 178 -- .../github/lsposed/lspd/util/ClassUtils.java | 5 - .../io/github/lsposed/lspd/util/DexUtils.java | 89 - .../github/lsposed/lspd/util/FileUtils.java | 91 - .../io/github/lsposed/lspd/util/Logger.java | 27 + .../lsposed/lspd/util/ProcessUtils.java | 105 - .../io/github/lsposed/lspd/util/Unsafe.java | 130 - .../io/github/lsposed/lspd/util/Utils.java | 3 - .../lspd/yahfa/config/YahfaHookProvider.java | 71 - .../lsposed/lspd/yahfa/core/YahfaRouter.java | 41 - .../lsposed/lspd/yahfa/dexmaker/DexLog.java | 57 - .../lspd/yahfa/dexmaker/DexMakerUtils.java | 255 -- .../lspd/yahfa/dexmaker/DynamicBridge.java | 45 +- .../lspd/yahfa/dexmaker/HookerDexMaker.java | 259 +- .../lspd/yahfa/dexmaker/MethodInfo.java | 104 - .../YahfaHooker.java} | 46 +- .../lsposed/lspd/ILSPManagerService.aidl | 4 - sandhook-annotation/.gitignore | 1 - sandhook-annotation/build.gradle.kts | 11 - .../swift/sandhook/annotation/HookClass.java | 12 - .../swift/sandhook/annotation/HookMethod.java | 12 - .../sandhook/annotation/HookMethodBackup.java | 12 - .../swift/sandhook/annotation/HookMode.java | 17 - .../sandhook/annotation/HookReflectClass.java | 12 - .../sandhook/annotation/MethodParams.java | 12 - .../annotation/MethodReflectParams.java | 22 - .../com/swift/sandhook/annotation/Param.java | 12 - .../sandhook/annotation/SkipParamCheck.java | 11 - .../swift/sandhook/annotation/ThisObject.java | 11 - sandhook-hooklib/.gitignore | 2 - sandhook-hooklib/build.gradle.kts | 42 - sandhook-hooklib/proguard-rules.pro | 23 - sandhook-hooklib/src/main/AndroidManifest.xml | 2 - .../com/swift/sandhook/ArtMethodSizeTest.java | 6 - .../com/swift/sandhook/ClassNeverCall.java | 13 - .../main/java/com/swift/sandhook/HookLog.java | 37 - .../swift/sandhook/PendingHookHandler.java | 59 - .../java/com/swift/sandhook/SandHook.java | 414 ---- .../com/swift/sandhook/SandHookConfig.java | 35 - .../sandhook/SandHookMethodResolver.java | 167 -- .../sandhook/blacklist/HookBlackList.java | 48 - .../swift/sandhook/utils/ArtDexOptimizer.java | 101 - .../sandhook/utils/ClassStatusUtils.java | 68 - .../com/swift/sandhook/utils/FileUtils.java | 119 - .../swift/sandhook/utils/ParamWrapper.java | 129 - .../swift/sandhook/utils/ReflectionUtils.java | 54 - .../java/com/swift/sandhook/utils/Unsafe.java | 124 - .../sandhook/wrapper/HookErrorException.java | 11 - .../swift/sandhook/wrapper/HookWrapper.java | 443 ---- .../sandhook/wrapper/StubMethodsFactory.java | 340 --- .../src/main/res/values/strings.xml | 3 - settings.gradle.kts | 2 +- 590 files changed, 207 insertions(+), 107500 deletions(-) delete mode 100644 core/src/main/cpp/external/SandHook/CMakeLists.txt delete mode 100644 core/src/main/cpp/external/SandHook/art/art_classlinker.cpp delete mode 100644 core/src/main/cpp/external/SandHook/art/art_compiler_options.cpp delete mode 100644 core/src/main/cpp/external/SandHook/art/art_method.cpp delete mode 100644 core/src/main/cpp/external/SandHook/casts/cast_art_method.cpp delete mode 100644 core/src/main/cpp/external/SandHook/casts/cast_compiler_options.cpp delete mode 100644 core/src/main/cpp/external/SandHook/dummy.cpp delete mode 100644 core/src/main/cpp/external/SandHook/includes/arch.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/arch_base.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/art_classlinker.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/art_collector_type.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/art_compiler_options.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/art_gc_cause.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/art_jit.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/art_method.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/art_runtime.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/cast.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/cast_art_method.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/cast_compiler_options.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/dlfcn_nougat.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/elf_util.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/hide_api.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/inst.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/log.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/native_hook.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/never_call.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/offset.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/sandhook.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/trampoline.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/trampoline_manager.h delete mode 100644 core/src/main/cpp/external/SandHook/includes/utils.h delete mode 100644 core/src/main/cpp/external/SandHook/inst/insts_arm32.cpp delete mode 100644 core/src/main/cpp/external/SandHook/inst/insts_arm64.cpp delete mode 100644 core/src/main/cpp/external/SandHook/nativehook/native_hook.cpp delete mode 100644 core/src/main/cpp/external/SandHook/sandhook.cpp delete mode 100644 core/src/main/cpp/external/SandHook/sandhook.h delete mode 100644 core/src/main/cpp/external/SandHook/trampoline/arch/arm32.S delete mode 100644 core/src/main/cpp/external/SandHook/trampoline/arch/arm64.S delete mode 100644 core/src/main/cpp/external/SandHook/trampoline/trampoline.cpp delete mode 100644 core/src/main/cpp/external/SandHook/trampoline/trampoline_manager.cpp delete mode 100644 core/src/main/cpp/external/SandHook/utils/dlfcn_nougat.cpp delete mode 100644 core/src/main/cpp/external/SandHook/utils/elf_util.cpp delete mode 100644 core/src/main/cpp/external/SandHook/utils/hide_api.cpp delete mode 100644 core/src/main/cpp/external/SandHook/utils/lock.h delete mode 100644 core/src/main/cpp/external/SandHook/utils/offset.cpp delete mode 100644 core/src/main/cpp/external/SandHook/utils/utils.cpp delete mode 100644 core/src/main/cpp/main/src/jni/sandhook.cpp delete mode 100644 core/src/main/cpp/main/src/jni/sandhook.h delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/XposedCompat.java delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/hookstub/CallOriginCallBack.java delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/hookstub/HookMethodEntity.java delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/hookstub/HookStubManager.java delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/hookstub/MethodHookerStubs32.java delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/hookstub/MethodHookerStubs64.java delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/methodgen/ErrorCatch.java delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/methodgen/HookMaker.java delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/methodgen/HookerDexMaker.java delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/methodgen/HookerDexMakerNew.java delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/methodgen/SandHookXposedBridge.java delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/utils/ApplicationUtils.java delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/utils/DexLog.java delete mode 100644 core/src/main/java/com/swift/sandhook/xposedcompat/utils/DexMakerUtils.java delete mode 100644 core/src/main/java/external/com/android/dex/Annotation.java delete mode 100644 core/src/main/java/external/com/android/dex/CallSiteId.java delete mode 100644 core/src/main/java/external/com/android/dex/ClassData.java delete mode 100644 core/src/main/java/external/com/android/dex/ClassDef.java delete mode 100644 core/src/main/java/external/com/android/dex/Code.java delete mode 100644 core/src/main/java/external/com/android/dex/Dex.java delete mode 100644 core/src/main/java/external/com/android/dex/DexException.java delete mode 100644 core/src/main/java/external/com/android/dex/DexFormat.java delete mode 100644 core/src/main/java/external/com/android/dex/DexIndexOverflowException.java delete mode 100644 core/src/main/java/external/com/android/dex/EncodedValue.java delete mode 100644 core/src/main/java/external/com/android/dex/EncodedValueCodec.java delete mode 100644 core/src/main/java/external/com/android/dex/EncodedValueReader.java delete mode 100644 core/src/main/java/external/com/android/dex/FieldId.java delete mode 100644 core/src/main/java/external/com/android/dex/Leb128.java delete mode 100644 core/src/main/java/external/com/android/dex/MethodHandle.java delete mode 100644 core/src/main/java/external/com/android/dex/MethodId.java delete mode 100644 core/src/main/java/external/com/android/dex/Mutf8.java delete mode 100644 core/src/main/java/external/com/android/dex/ProtoId.java delete mode 100644 core/src/main/java/external/com/android/dex/SizeOf.java delete mode 100644 core/src/main/java/external/com/android/dex/TableOfContents.java delete mode 100644 core/src/main/java/external/com/android/dex/TypeList.java delete mode 100644 core/src/main/java/external/com/android/dex/util/ByteArrayByteInput.java delete mode 100644 core/src/main/java/external/com/android/dex/util/ByteInput.java delete mode 100644 core/src/main/java/external/com/android/dex/util/ByteOutput.java delete mode 100644 core/src/main/java/external/com/android/dex/util/ExceptionWithContext.java delete mode 100644 core/src/main/java/external/com/android/dex/util/FileUtils.java delete mode 100644 core/src/main/java/external/com/android/dex/util/Unsigned.java delete mode 100644 core/src/main/java/external/com/android/dx/AnnotationId.java delete mode 100644 core/src/main/java/external/com/android/dx/AppDataDirGuesser.java delete mode 100644 core/src/main/java/external/com/android/dx/BinaryOp.java delete mode 100644 core/src/main/java/external/com/android/dx/Code.java delete mode 100644 core/src/main/java/external/com/android/dx/Comparison.java delete mode 100644 core/src/main/java/external/com/android/dx/Constants.java delete mode 100644 core/src/main/java/external/com/android/dx/DexMaker.java delete mode 100644 core/src/main/java/external/com/android/dx/FieldId.java delete mode 100644 core/src/main/java/external/com/android/dx/Label.java delete mode 100644 core/src/main/java/external/com/android/dx/Local.java delete mode 100644 core/src/main/java/external/com/android/dx/MethodId.java delete mode 100644 core/src/main/java/external/com/android/dx/TypeId.java delete mode 100644 core/src/main/java/external/com/android/dx/TypeList.java delete mode 100644 core/src/main/java/external/com/android/dx/UnaryOp.java delete mode 100644 core/src/main/java/external/com/android/dx/Version.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttAnnotationDefault.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttBootstrapMethods.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttCode.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttConstantValue.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttDeprecated.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttEnclosingMethod.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttExceptions.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttInnerClasses.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttLineNumberTable.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttLocalVariableTable.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttLocalVariableTypeTable.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttRuntimeInvisibleAnnotations.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttRuntimeInvisibleParameterAnnotations.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttRuntimeVisibleAnnotations.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttRuntimeVisibleParameterAnnotations.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttSignature.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttSourceDebugExtension.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttSourceFile.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/AttSynthetic.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/BaseAnnotations.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/BaseAttribute.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/BaseLocalVariables.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/BaseParameterAnnotations.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/InnerClassList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/RawAttribute.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/attrib/package.html delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/BaseMachine.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/BasicBlocker.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/BootstrapMethodArgumentsList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/BootstrapMethodsList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/ByteBlock.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/ByteBlockList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/ByteCatchList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/ByteOps.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/BytecodeArray.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/ConcreteMethod.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/ExecutionStack.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/Frame.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/LineNumberList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/LocalVariableList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/LocalsArray.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/LocalsArraySet.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/Machine.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/Merger.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/OneLocalsArray.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/ReturnAddress.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/Ropper.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/RopperMachine.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/SimException.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/Simulator.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/SwitchList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/ValueAwareMachine.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/code/package.html delete mode 100644 core/src/main/java/external/com/android/dx/cf/cst/ConstantPoolParser.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/cst/ConstantTags.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/cst/MethodHandleKind.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/direct/AnnotationParser.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/direct/AttributeFactory.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/direct/AttributeListParser.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/direct/ClassPathOpener.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/direct/CodeObserver.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/direct/DirectClassFile.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/direct/FieldListParser.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/direct/MemberListParser.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/direct/MethodListParser.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/direct/StdAttributeFactory.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/direct/package.html delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/Attribute.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/AttributeList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/ClassFile.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/Field.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/FieldList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/HasAttribute.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/Member.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/Method.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/MethodList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/ParseException.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/ParseObserver.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/StdAttributeList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/StdField.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/StdFieldList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/StdMember.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/StdMethod.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/StdMethodList.java delete mode 100644 core/src/main/java/external/com/android/dx/cf/iface/package.html delete mode 100644 core/src/main/java/external/com/android/dx/command/Main.java delete mode 100644 core/src/main/java/external/com/android/dx/command/UsageException.java delete mode 100644 core/src/main/java/external/com/android/dx/command/annotool/AnnotationLister.java delete mode 100644 core/src/main/java/external/com/android/dx/command/annotool/Main.java delete mode 100644 core/src/main/java/external/com/android/dx/command/dexer/DxContext.java delete mode 100644 core/src/main/java/external/com/android/dx/command/dexer/Main.java delete mode 100644 core/src/main/java/external/com/android/dx/command/dump/Args.java delete mode 100644 core/src/main/java/external/com/android/dx/command/dump/BaseDumper.java delete mode 100644 core/src/main/java/external/com/android/dx/command/dump/BlockDumper.java delete mode 100644 core/src/main/java/external/com/android/dx/command/dump/ClassDumper.java delete mode 100644 core/src/main/java/external/com/android/dx/command/dump/DotDumper.java delete mode 100644 core/src/main/java/external/com/android/dx/command/dump/Main.java delete mode 100644 core/src/main/java/external/com/android/dx/command/dump/SsaDumper.java delete mode 100644 core/src/main/java/external/com/android/dx/command/findusages/FindUsages.java delete mode 100644 core/src/main/java/external/com/android/dx/command/findusages/Main.java delete mode 100644 core/src/main/java/external/com/android/dx/command/grep/Grep.java delete mode 100644 core/src/main/java/external/com/android/dx/command/grep/Main.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/DexOptions.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/cf/AttributeTranslator.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/cf/CfOptions.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/cf/CfTranslator.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/cf/CodeStatistics.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/cf/OptimizerOptions.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/cf/package.html delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/ArrayData.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/BlockAddresses.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/CatchBuilder.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/CatchHandlerList.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/CatchTable.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/CodeAddress.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/CstInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/DalvCode.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/DalvInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/DalvInsnList.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/Dop.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/Dops.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/FixedSizeInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/HighRegisterPrefix.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/InsnFormat.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/LocalList.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/LocalSnapshot.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/LocalStart.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/MultiCstInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/OddSpacer.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/OutputCollector.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/OutputFinisher.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/PositionList.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/RopToDop.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/RopTranslator.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/SimpleInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/StdCatchBuilder.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/SwitchData.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/TargetInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/VariableSizeInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/ZeroSizeInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form10t.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form10x.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form11n.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form11x.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form12x.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form20t.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form21c.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form21h.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form21s.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form21t.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form22b.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form22c.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form22s.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form22t.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form22x.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form23x.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form30t.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form31c.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form31i.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form31t.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form32x.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form35c.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form3rc.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form45cc.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form4rcc.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/Form51l.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/code/form/SpecialFormat.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/AnnotationItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/AnnotationSetItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/AnnotationSetRefItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/AnnotationUtils.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/AnnotationsDirectoryItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/CallSiteIdItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/CallSiteIdsSection.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/CallSiteItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/CatchStructs.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/ClassDataItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/ClassDefItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/ClassDefsSection.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/CodeItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/DebugInfoConstants.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/DebugInfoDecoder.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/DebugInfoEncoder.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/DebugInfoItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/DexFile.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/EncodedArrayItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/EncodedField.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/EncodedMember.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/EncodedMethod.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/FieldAnnotationStruct.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/FieldIdItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/FieldIdsSection.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/HeaderItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/HeaderSection.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/IdItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/IndexedItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/Item.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/ItemType.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/MapItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/MemberIdItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/MemberIdsSection.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/MethodAnnotationStruct.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/MethodHandleItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/MethodHandlesSection.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/MethodIdItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/MethodIdsSection.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/MixedItemSection.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/OffsettedItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/ParameterAnnotationStruct.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/ProtoIdItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/ProtoIdsSection.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/Section.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/Statistics.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/StringDataItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/StringIdItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/StringIdsSection.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/TypeIdItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/TypeIdsSection.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/TypeListItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/UniformItemSection.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/UniformListItem.java delete mode 100644 core/src/main/java/external/com/android/dx/dex/file/ValueEncoder.java delete mode 100644 core/src/main/java/external/com/android/dx/io/CodeReader.java delete mode 100644 core/src/main/java/external/com/android/dx/io/DexIndexPrinter.java delete mode 100644 core/src/main/java/external/com/android/dx/io/IndexType.java delete mode 100644 core/src/main/java/external/com/android/dx/io/OpcodeInfo.java delete mode 100644 core/src/main/java/external/com/android/dx/io/Opcodes.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/AddressMap.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/BaseCodeCursor.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/CodeCursor.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/CodeInput.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/CodeOutput.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/DecodedInstruction.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/FillArrayDataPayloadDecodedInstruction.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/FiveRegisterDecodedInstruction.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/FourRegisterDecodedInstruction.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/InstructionCodec.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/InvokePolymorphicDecodedInstruction.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/InvokePolymorphicRangeDecodedInstruction.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/OneRegisterDecodedInstruction.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/PackedSwitchPayloadDecodedInstruction.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/RegisterRangeDecodedInstruction.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/ShortArrayCodeInput.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/ShortArrayCodeOutput.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/SparseSwitchPayloadDecodedInstruction.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/ThreeRegisterDecodedInstruction.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/TwoRegisterDecodedInstruction.java delete mode 100644 core/src/main/java/external/com/android/dx/io/instructions/ZeroRegisterDecodedInstruction.java delete mode 100644 core/src/main/java/external/com/android/dx/merge/CollisionPolicy.java delete mode 100644 core/src/main/java/external/com/android/dx/merge/DexMerger.java delete mode 100644 core/src/main/java/external/com/android/dx/merge/IndexMap.java delete mode 100644 core/src/main/java/external/com/android/dx/merge/InstructionTransformer.java delete mode 100644 core/src/main/java/external/com/android/dx/merge/SortableType.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/annotation/Annotation.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/annotation/AnnotationVisibility.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/annotation/Annotations.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/annotation/AnnotationsList.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/annotation/NameValuePair.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/AccessFlags.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/BasicBlock.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/BasicBlockList.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/ConservativeTranslationAdvice.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/CstInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/DexTranslationAdvice.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/Exceptions.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/FillArrayDataInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/Insn.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/InsnList.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/InvokePolymorphicInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/LocalItem.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/LocalVariableExtractor.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/LocalVariableInfo.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/PlainCstInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/PlainInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/RegOps.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/RegisterSpec.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/RegisterSpecList.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/RegisterSpecSet.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/Rop.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/RopMethod.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/Rops.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/SourcePosition.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/SwitchInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/ThrowingCstInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/ThrowingInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/TranslationAdvice.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/code/package.html delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/Constant.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/ConstantPool.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstAnnotation.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstArray.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstBaseMethodRef.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstBoolean.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstByte.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstCallSite.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstCallSiteRef.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstChar.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstDouble.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstEnumRef.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstFieldRef.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstFloat.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstInteger.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstInterfaceMethodRef.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstInvokeDynamic.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstKnownNull.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstLiteral32.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstLiteral64.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstLiteralBits.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstLong.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstMemberRef.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstMethodHandle.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstMethodRef.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstNat.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstProtoRef.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstShort.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstString.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/CstType.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/StdConstantPool.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/TypedConstant.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/Zeroes.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/cst/package.html delete mode 100644 core/src/main/java/external/com/android/dx/rop/package-info.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/type/Prototype.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/type/StdTypeList.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/type/Type.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/type/TypeBearer.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/type/TypeList.java delete mode 100644 core/src/main/java/external/com/android/dx/rop/type/package.html delete mode 100644 core/src/main/java/external/com/android/dx/ssa/BasicRegisterMapper.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/ConstCollector.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/DeadCodeRemover.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/DomFront.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/Dominators.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/EscapeAnalysis.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/InterferenceRegisterMapper.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/LiteralOpUpgrader.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/LocalVariableExtractor.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/LocalVariableInfo.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/MoveParamCombiner.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/NormalSsaInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/Optimizer.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/PhiInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/PhiTypeResolver.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/RegisterMapper.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/SCCP.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/SetFactory.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/SsaBasicBlock.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/SsaConverter.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/SsaInsn.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/SsaMethod.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/SsaRenamer.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/back/FirstFitAllocator.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/back/FirstFitLocalCombiningAllocator.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/back/IdenticalBlockCombiner.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/back/InterferenceGraph.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/back/LivenessAnalyzer.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/back/NullRegisterAllocator.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/back/RegisterAllocator.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/back/SsaToRop.java delete mode 100644 core/src/main/java/external/com/android/dx/ssa/package-info.java delete mode 100644 core/src/main/java/external/com/android/dx/stock/ProxyBuilder.java delete mode 100644 core/src/main/java/external/com/android/dx/util/AnnotatedOutput.java delete mode 100644 core/src/main/java/external/com/android/dx/util/BitIntSet.java delete mode 100644 core/src/main/java/external/com/android/dx/util/Bits.java delete mode 100644 core/src/main/java/external/com/android/dx/util/ByteArray.java delete mode 100644 core/src/main/java/external/com/android/dx/util/ByteArrayAnnotatedOutput.java delete mode 100644 core/src/main/java/external/com/android/dx/util/FixedSizeList.java delete mode 100644 core/src/main/java/external/com/android/dx/util/Hex.java delete mode 100644 core/src/main/java/external/com/android/dx/util/HexParser.java delete mode 100644 core/src/main/java/external/com/android/dx/util/IndentingWriter.java delete mode 100644 core/src/main/java/external/com/android/dx/util/IntIterator.java delete mode 100644 core/src/main/java/external/com/android/dx/util/IntList.java delete mode 100644 core/src/main/java/external/com/android/dx/util/IntSet.java delete mode 100644 core/src/main/java/external/com/android/dx/util/LabeledItem.java delete mode 100644 core/src/main/java/external/com/android/dx/util/LabeledList.java delete mode 100644 core/src/main/java/external/com/android/dx/util/ListIntSet.java delete mode 100644 core/src/main/java/external/com/android/dx/util/MutabilityControl.java delete mode 100644 core/src/main/java/external/com/android/dx/util/MutabilityException.java delete mode 100644 core/src/main/java/external/com/android/dx/util/Output.java delete mode 100644 core/src/main/java/external/com/android/dx/util/ToHuman.java delete mode 100644 core/src/main/java/external/com/android/dx/util/TwoColumnOutput.java delete mode 100644 core/src/main/java/external/com/android/dx/util/Warning.java delete mode 100644 core/src/main/java/external/com/android/dx/util/Writers.java delete mode 100644 core/src/main/java/external/com/android/dx/util/package.html delete mode 100644 core/src/main/java/external/com/android/multidex/ArchivePathElement.java delete mode 100644 core/src/main/java/external/com/android/multidex/ClassPathElement.java delete mode 100644 core/src/main/java/external/com/android/multidex/ClassReferenceListBuilder.java delete mode 100644 core/src/main/java/external/com/android/multidex/FolderPathElement.java delete mode 100644 core/src/main/java/external/com/android/multidex/MainDexListBuilder.java delete mode 100644 core/src/main/java/external/com/android/multidex/Path.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/annotation/ApiSensitive.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/annotation/Level.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/config/BaseHookProvider.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/config/LSPdConfigGlobal.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/core/BaseImpl.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/core/Impl.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/core/Proxy.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/hook/HookProvider.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/nativebridge/SandHook.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/proxy/BaseProxy.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/proxy/BaseRouter.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/proxy/NormalProxy.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/proxy/Router.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/sandhook/config/SandHookProvider.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/sandhook/core/SandHookImpl.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/sandhook/core/SandHookRouter.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/util/ClassLoaderUtils.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/util/DexUtils.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/util/FileUtils.java create mode 100644 core/src/main/java/io/github/lsposed/lspd/util/Logger.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/util/ProcessUtils.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/util/Unsafe.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/yahfa/config/YahfaHookProvider.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/yahfa/core/YahfaRouter.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/yahfa/dexmaker/DexLog.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/yahfa/dexmaker/DexMakerUtils.java delete mode 100644 core/src/main/java/io/github/lsposed/lspd/yahfa/dexmaker/MethodInfo.java rename core/src/main/java/io/github/lsposed/lspd/yahfa/{core/YahfaImpl.java => hooker/YahfaHooker.java} (50%) delete mode 100644 sandhook-annotation/.gitignore delete mode 100644 sandhook-annotation/build.gradle.kts delete mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookClass.java delete mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMethod.java delete mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMethodBackup.java delete mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookMode.java delete mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/HookReflectClass.java delete mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/MethodParams.java delete mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/MethodReflectParams.java delete mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/Param.java delete mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/SkipParamCheck.java delete mode 100644 sandhook-annotation/src/main/java/com/swift/sandhook/annotation/ThisObject.java delete mode 100644 sandhook-hooklib/.gitignore delete mode 100644 sandhook-hooklib/build.gradle.kts delete mode 100644 sandhook-hooklib/proguard-rules.pro delete mode 100644 sandhook-hooklib/src/main/AndroidManifest.xml delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/ArtMethodSizeTest.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/ClassNeverCall.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/HookLog.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/PendingHookHandler.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/SandHook.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/SandHookConfig.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/SandHookMethodResolver.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/blacklist/HookBlackList.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/utils/ArtDexOptimizer.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/utils/ClassStatusUtils.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/utils/FileUtils.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/utils/ParamWrapper.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/utils/ReflectionUtils.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/utils/Unsafe.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/wrapper/HookErrorException.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/wrapper/HookWrapper.java delete mode 100644 sandhook-hooklib/src/main/java/com/swift/sandhook/wrapper/StubMethodsFactory.java delete mode 100644 sandhook-hooklib/src/main/res/values/strings.xml diff --git a/app/src/main/java/io/github/lsposed/manager/ConfigManager.java b/app/src/main/java/io/github/lsposed/manager/ConfigManager.java index 8ca537f2..ff24299c 100644 --- a/app/src/main/java/io/github/lsposed/manager/ConfigManager.java +++ b/app/src/main/java/io/github/lsposed/manager/ConfigManager.java @@ -163,37 +163,6 @@ public class ConfigManager { } } - public static int getVariant() { - try { - return LSPosedManagerServiceClient.getVariant(); - } catch (RemoteException | NullPointerException e) { - Log.e(App.TAG, Log.getStackTraceString(e)); - return 1; - } - } - - public static String getVariantString() { - int variant = getVariant(); - switch (variant) { - case 1: - return "YAHFA"; - case 2: - return "SandHook"; - default: - return "Unknown"; - } - } - - public static boolean setVariant(int variant) { - try { - LSPosedManagerServiceClient.setVariant(variant); - return true; - } catch (RemoteException | NullPointerException e) { - Log.e(App.TAG, Log.getStackTraceString(e)); - return false; - } - } - public static boolean isPermissive() { try { return LSPosedManagerServiceClient.isPermissive(); diff --git a/app/src/main/java/io/github/lsposed/manager/receivers/LSPosedManagerServiceClient.java b/app/src/main/java/io/github/lsposed/manager/receivers/LSPosedManagerServiceClient.java index f7d5121a..c46370cf 100644 --- a/app/src/main/java/io/github/lsposed/manager/receivers/LSPosedManagerServiceClient.java +++ b/app/src/main/java/io/github/lsposed/manager/receivers/LSPosedManagerServiceClient.java @@ -115,16 +115,6 @@ public class LSPosedManagerServiceClient { service.setVerboseLog(enabled); } - public static int getVariant() throws RemoteException, NullPointerException { - ensureService(); - return service.getVariant(); - } - - public static void setVariant(int variant) throws RemoteException, NullPointerException { - ensureService(); - service.setVariant(variant); - } - public static boolean isPermissive() throws RemoteException, NullPointerException { ensureService(); return service.isPermissive(); diff --git a/app/src/main/java/io/github/lsposed/manager/ui/activity/MainActivity.java b/app/src/main/java/io/github/lsposed/manager/ui/activity/MainActivity.java index d9afc721..c80e0a97 100644 --- a/app/src/main/java/io/github/lsposed/manager/ui/activity/MainActivity.java +++ b/app/src/main/java/io/github/lsposed/manager/ui/activity/MainActivity.java @@ -92,7 +92,7 @@ public class MainActivity extends BaseActivity { String installXposedVersion = ConfigManager.getXposedVersionName(); int cardBackgroundColor; if (installXposedVersion != null) { - binding.statusTitle.setText(getString(R.string.Activated, ConfigManager.getVariantString())); + binding.statusTitle.setText(getString(R.string.Activated, "YAHFA")); if (!ConfigManager.isPermissive()) { if (Helpers.currentHoliday == Helpers.Holidays.LUNARNEWYEAR) { cardBackgroundColor = 0xfff05654; diff --git a/build.gradle.kts b/build.gradle.kts index 77b2fcf0..806f66f4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -41,7 +41,7 @@ val commitCount = Git(repo).log().add(refId).call().count() val defaultManagerPackageName by extra("io.github.lsposed.manager") val verCode by extra(commitCount + 4200) -val verName by extra("v1.2.2") +val verName by extra("v1.3.0") val androidTargetSdkVersion by extra(30) val androidMinSdkVersion by extra(27) val androidBuildToolsVersion by extra("30.0.3") diff --git a/core/build.gradle.kts b/core/build.gradle.kts index e96a433b..36d86f27 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -66,7 +66,6 @@ val verName: String by rootProject.extra dependencies { implementation("dev.rikka.ndk:riru:10") implementation("com.android.tools.build:apksig:4.1.2") - implementation(project(":sandhook-hooklib")) compileOnly(project(":hiddenapi-stubs")) compileOnly("androidx.annotation:annotation:1.1.0") implementation(project(":interface")) diff --git a/core/src/main/aidl/io/github/lsposed/lspd/service/ILSPApplicationService.aidl b/core/src/main/aidl/io/github/lsposed/lspd/service/ILSPApplicationService.aidl index a08db967..e878961d 100644 --- a/core/src/main/aidl/io/github/lsposed/lspd/service/ILSPApplicationService.aidl +++ b/core/src/main/aidl/io/github/lsposed/lspd/service/ILSPApplicationService.aidl @@ -5,8 +5,6 @@ interface ILSPApplicationService { IBinder requestManagerBinder() = 3; - int getVariant() = 4; - boolean isResourcesHookEnabled() = 5; String[] getModulesList(String processName) = 6; diff --git a/core/src/main/cpp/external/CMakeLists.txt b/core/src/main/cpp/external/CMakeLists.txt index b0ce1505..85f9b4da 100644 --- a/core/src/main/cpp/external/CMakeLists.txt +++ b/core/src/main/cpp/external/CMakeLists.txt @@ -15,8 +15,5 @@ add_subdirectory(Dobby) target_include_directories(dobby PUBLIC Dobby/include) target_include_directories(dobby PUBLIC Dobby/builtin-plugin/BionicLinkerRestriction) -add_subdirectory(SandHook) -target_include_directories(sandhook.lspd PUBLIC SandHook) - add_subdirectory(DexBuilder) target_include_directories(dex_builder PUBLIC DexBuilder) diff --git a/core/src/main/cpp/external/SandHook/CMakeLists.txt b/core/src/main/cpp/external/SandHook/CMakeLists.txt deleted file mode 100644 index e5bb4ba5..00000000 --- a/core/src/main/cpp/external/SandHook/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -cmake_minimum_required(VERSION 3.4.1) -project(sandhook.lspd) - -ENABLE_LANGUAGE(ASM) - -add_definitions(-std=c++11) - -if (${CMAKE_ANDROID_ARCH_ABI} STREQUAL armeabi-v7a OR ${CMAKE_ANDROID_ARCH_ABI} STREQUAL arm64-v8a) -set(${PROJECT_NAME}_SOURCES - sandhook.cpp - trampoline/trampoline.cpp - trampoline/trampoline_manager.cpp - utils/dlfcn_nougat.cpp - utils/hide_api.cpp - utils/utils.cpp - utils/offset.cpp - utils/elf_util.cpp - casts/cast_art_method.cpp - casts/cast_compiler_options.cpp - art/art_method.cpp - art/art_compiler_options.cpp - art/art_classlinker.cpp - trampoline/arch/arm32.S - trampoline/arch/arm64.S - inst/insts_arm32.cpp - inst/insts_arm64.cpp - nativehook/native_hook.cpp - ) -else() - set(${PROJECT_NAME}_SOURCES dummy.cpp) -endif() -add_library(${PROJECT_NAME} - STATIC - ${${PROJECT_NAME}_SOURCES}) - -target_link_libraries(${PROJECT_NAME} log) \ No newline at end of file diff --git a/core/src/main/cpp/external/SandHook/art/art_classlinker.cpp b/core/src/main/cpp/external/SandHook/art/art_classlinker.cpp deleted file mode 100644 index d54f50f2..00000000 --- a/core/src/main/cpp/external/SandHook/art/art_classlinker.cpp +++ /dev/null @@ -1,9 +0,0 @@ -// -// Created by 双草酸酯 on 11/27/20. -// -#include "../includes/art_classlinker.h" - -using namespace art; -void ClassLinker::MakeInitializedClassesVisiblyInitialized(void* self, bool wait) { - -} \ No newline at end of file diff --git a/core/src/main/cpp/external/SandHook/art/art_compiler_options.cpp b/core/src/main/cpp/external/SandHook/art/art_compiler_options.cpp deleted file mode 100644 index eaab2044..00000000 --- a/core/src/main/cpp/external/SandHook/art/art_compiler_options.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// Created by 甘尧 on 2019/2/24. -// - -#include "../includes/art_compiler_options.h" -#include "../includes/cast_compiler_options.h" -#include "../includes/hide_api.h" - -using namespace SandHook; -using namespace art; - -extern int SDK_INT; - -size_t CompilerOptions::getInlineMaxCodeUnits() { - if (SDK_INT < ANDROID_N) - return 0; - return CastCompilerOptions::inlineMaxCodeUnits->get(this); -} - -bool CompilerOptions::setInlineMaxCodeUnits(size_t units) { - if (SDK_INT < ANDROID_N) - return false; - CastCompilerOptions::inlineMaxCodeUnits->set(this, units); - return true; -} diff --git a/core/src/main/cpp/external/SandHook/art/art_method.cpp b/core/src/main/cpp/external/SandHook/art/art_method.cpp deleted file mode 100644 index e1de698d..00000000 --- a/core/src/main/cpp/external/SandHook/art/art_method.cpp +++ /dev/null @@ -1,197 +0,0 @@ -// -// Created by swift on 2019/2/3. -// -#include -#include "../includes/art_method.h" -#include "../includes/cast_art_method.h" -#include "../includes/hide_api.h" -#include "../includes/utils.h" - -extern int SDK_INT; -extern bool DEBUG; - -using namespace art::mirror; -using namespace SandHook; - -// Non-intrinsics: Caches whether we can use fast-path in the interpreter invokes. -// Intrinsics: These bits are part of the intrinsic ordinal. -static constexpr uint32_t kAccFastInterpreterToInterpreterInvoke = 0x40000000; // method. - -void ArtMethod::tryDisableInline() { - if (SDK_INT < ANDROID_O) - return; - uint32_t accessFlag = getAccessFlags(); - accessFlag &= ~ 0x08000000; - setAccessFlags(accessFlag); -} - -void ArtMethod::disableInterpreterForO() { - /*if (SDK_INT >= ANDROID_O && SDK_INT < ANDROID_R && DEBUG) { - setNative(); - }*/ -} - -void ArtMethod::disableFastInterpreterForQ() { - if (SDK_INT < ANDROID_Q) - return; - uint32_t accessFlag = getAccessFlags(); - accessFlag &= ~kAccFastInterpreterToInterpreterInvoke; - setAccessFlags(accessFlag); -} - -void ArtMethod::disableCompilable() { - if (SDK_INT < ANDROID_N) - return; - uint32_t accessFlag = getAccessFlags(); - if (SDK_INT >= ANDROID_O2) { - accessFlag |= 0x02000000; - accessFlag |= 0x00800000; - } else { - accessFlag |= 0x01000000; - } - setAccessFlags(accessFlag); -} - -bool ArtMethod::isAbstract() { - uint32_t accessFlags = getAccessFlags(); - return ((accessFlags & 0x0400) != 0); -} - -bool ArtMethod::isNative() { - uint32_t accessFlags = getAccessFlags(); - return ((accessFlags & 0x0100) != 0); -} - -bool ArtMethod::isStatic() { - uint32_t accessFlags = getAccessFlags(); - return ((accessFlags & 0x0008) != 0); -} - -bool ArtMethod::isCompiled() { - return getQuickCodeEntry() != CastArtMethod::quickToInterpreterBridge && - getQuickCodeEntry() != CastArtMethod::genericJniStub; -} - -bool ArtMethod::isThumbCode() { - #if defined(__arm__) - return (reinterpret_cast(getQuickCodeEntry()) & 0x1) == 0x1; - #else - return false; - #endif -} - -void ArtMethod::setAccessFlags(uint32_t flags) { - CastArtMethod::accessFlag->set(this, flags); -} - -void ArtMethod::setPrivate() { - uint32_t accessFlag = getAccessFlags(); - accessFlag &= ~ 0x0001; - accessFlag &= ~ 0x0004; - accessFlag |= 0x0002; - setAccessFlags(accessFlag); -} - -void ArtMethod::setStatic() { - uint32_t accessFlag = getAccessFlags(); - accessFlag |= 0x0008; - setAccessFlags(accessFlag); -}; - - -void ArtMethod::setNative() { - uint32_t accessFlag = getAccessFlags(); - accessFlag |= 0x0100; - setAccessFlags(accessFlag); -} - -uint32_t ArtMethod::getAccessFlags() { - return CastArtMethod::accessFlag->get(this); -} - -uint32_t ArtMethod::getDexMethodIndex() { - return CastArtMethod::dexMethodIndex->get(this); -} - -void* ArtMethod::getQuickCodeEntry() { - return CastArtMethod::entryPointQuickCompiled->get(this); -} - -void* ArtMethod::getInterpreterCodeEntry() { - return CastArtMethod::entryPointFromInterpreter->get(this); -} - -GCRoot ArtMethod::getDeclaringClass() { - return CastArtMethod::declaringClass->get(this); -} - -uint16_t ArtMethod::getHotnessCount() { - return CastArtMethod::hotnessCount->get(this); -} - -void ArtMethod::setQuickCodeEntry(void *entry) { - CastArtMethod::entryPointQuickCompiled->set(this, entry); -} - -void ArtMethod::setJniCodeEntry(void *entry) { - CastArtMethod::entryPointFromJNI->set(this, entry); -} - -void ArtMethod::setInterpreterCodeEntry(void *entry) { - CastArtMethod::entryPointFromInterpreter->set(this, entry); -} - -void ArtMethod::setDexCacheResolveList(void *list) { - CastArtMethod::dexCacheResolvedMethods->set(this, list); -} - -void ArtMethod::setDexCacheResolveItem(uint32_t index, void* item) { - CastArtMethod::dexCacheResolvedMethods->setElement(this, index, item); -} - -void ArtMethod::setDeclaringClass(GCRoot classPtr) { - CastArtMethod::declaringClass->set(this, classPtr); -} - -void ArtMethod::setHotnessCount(uint16_t count) { - CastArtMethod::hotnessCount->set(this, count); -} - -bool ArtMethod::compile(JNIEnv* env) { - if (isCompiled()) - return true; - //some unknown error when trigger jit for jni method manually - if (isNative()) - return false; - Size threadId = getAddressFromJavaByCallMethod(env, "com/swift/sandhook/SandHook", "getThreadId"); - if (threadId == 0) - return false; - return compileMethod(this, reinterpret_cast(threadId)) && isCompiled(); -} - -bool ArtMethod::deCompile() { - if (!isCompiled()) - return true; - if ((isNative() && CastArtMethod::canGetJniBridge) || (!isNative() && CastArtMethod::canGetInterpreterBridge)) { - setQuickCodeEntry(isNative() ? CastArtMethod::genericJniStub : CastArtMethod::quickToInterpreterBridge); - if (SDK_INT < ANDROID_N) { - //TODO SetEntryPointFromInterpreterCode - } - flushCache(); - return true; - } else { - return false; - } -} - -void ArtMethod::flushCache() { -// flushCacheExt(reinterpret_cast(this), size()); -} - -void ArtMethod::backup(ArtMethod *backup) { - memcpy(backup, this, size()); -} - -Size ArtMethod::size() { - return CastArtMethod::size; -} diff --git a/core/src/main/cpp/external/SandHook/casts/cast_art_method.cpp b/core/src/main/cpp/external/SandHook/casts/cast_art_method.cpp deleted file mode 100644 index b67d70ed..00000000 --- a/core/src/main/cpp/external/SandHook/casts/cast_art_method.cpp +++ /dev/null @@ -1,290 +0,0 @@ -// -// Created by swift on 2019/2/3. -// - -#include "../includes/cast_art_method.h" -#include "../includes/utils.h" -#include "../includes/never_call.h" -#include "../includes/log.h" - -extern int SDK_INT; - -namespace SandHook { - - class CastDexCacheResolvedMethods : public ArrayMember { - protected: - Size calOffset(JNIEnv *jniEnv, art::mirror::ArtMethod *p) override { - if (SDK_INT >= ANDROID_P) - return getParentSize() + 1; - int offset = 0; - Size addr = getAddressFromJava(jniEnv, "com/swift/sandhook/SandHookMethodResolver", - "resolvedMethodsAddress"); - if (addr != 0) { - offset = findOffset(p, getParentSize(), 2, addr); - if (offset >= 0) { - return static_cast(offset); - } - } - if (SDK_INT == ANDROID_M) { - return 4; - } else if (SDK_INT >= ANDROID_L && SDK_INT <= ANDROID_L2) { - return 4 * 3; - } - return getParentSize() + 1; - } - - public: - Size arrayStart(mirror::ArtMethod *parent) override { - void *p = IMember::get(parent); - if (SDK_INT <= ANDROID_M) { - return reinterpret_cast(p) + 4 * 3; - } else { - return reinterpret_cast(p); - } - } - - }; - - class CastEntryPointFormInterpreter : public IMember { - protected: - Size calOffset(JNIEnv *jniEnv, art::mirror::ArtMethod *p) override { - if (SDK_INT == ANDROID_L2) { - return RoundUpToPtrSize(4 * 7 + 4 * 2); - } else if (SDK_INT == ANDROID_M) { - return getParentSize() - 3 * BYTE_POINT; - } else if (SDK_INT <= ANDROID_L) { - Size addr = getAddressFromJava(jniEnv, "com/swift/sandhook/SandHookMethodResolver", - "entryPointFromInterpreter"); - int offset = 0; - if (addr != 0) { - offset = findOffset(p, getParentSize(), 2, addr); - if (offset >= 0) { - return static_cast(offset); - } - } - return getParentSize() - 4 * 8 - 4 * 4; - } - else - return getParentSize() + 1; - } - }; - - class CastEntryPointQuickCompiled : public IMember { - protected: - Size calOffset(JNIEnv *jniEnv, art::mirror::ArtMethod *p) override { - if (SDK_INT >= ANDROID_M) { - return getParentSize() - BYTE_POINT; - } else if (SDK_INT <= ANDROID_L) { - Size addr = getAddressFromJava(jniEnv, "com/swift/sandhook/SandHookMethodResolver", - "entryPointFromCompiledCode"); - int offset = 0; - if (addr != 0) { - offset = findOffset(p, getParentSize(), 2, addr); - if (offset >= 0) { - return static_cast(offset); - } - } - return getParentSize() - 4 - 2 * BYTE_POINT; - } else { - return CastArtMethod::entryPointFromInterpreter->getOffset() + 2 * BYTE_POINT; - } - } - }; - - class CastEntryPointFromJni : public IMember { - protected: - Size calOffset(JNIEnv *jniEnv, art::mirror::ArtMethod *p) override { - Size jniAddr = reinterpret_cast(Java_com_swift_sandhook_ClassNeverCall_neverCallNative); - int offset = findOffset(p, getParentSize(), 2, jniAddr); - if (offset >= 0) { - return static_cast(offset); - } - if (SDK_INT >= ANDROID_L2 && SDK_INT <= ANDROID_N) { - return getParentSize() - 2 * BYTE_POINT; - } else { - return getParentSize() - 8 * 2 - 4 * 4; - } - } - }; - - - class CastAccessFlag : public IMember { - protected: - Size calOffset(JNIEnv *jniEnv, art::mirror::ArtMethod *p) override { - uint32_t accessFlag = getIntFromJava(jniEnv, "com/swift/sandhook/SandHook", - "testAccessFlag"); - if (accessFlag == 0) { - accessFlag = 524313; - //kAccPublicApi - if (SDK_INT >= ANDROID_Q) { - accessFlag |= 0x10000000; - } - } - int offset = findOffset(p, getParentSize(), 2, accessFlag); - if (offset < 0) { - if (SDK_INT >= ANDROID_N) { - return 4; - } else if (SDK_INT == ANDROID_L2) { - return 20; - } else if (SDK_INT == ANDROID_L) { - return 56; - } else { - return getParentSize() + 1; - } - } else { - return static_cast(offset); - } - } - }; - - class CastShadowClass : public IMember { - protected: - Size calOffset(JNIEnv *jniEnv, mirror::ArtMethod *p) override { - if (SDK_INT < ANDROID_N) - return getParentSize() + 1; - return 0; - } - }; - - - class CastDexMethodIndex : public IMember { - protected: - Size calOffset(JNIEnv *jniEnv, art::mirror::ArtMethod *p) override { - if (SDK_INT >= ANDROID_P) { - return CastArtMethod::accessFlag->getOffset() - + CastArtMethod::accessFlag->size() - + sizeof(uint32_t); - } - int offset = 0; - jint index = getIntFromJava(jniEnv, "com/swift/sandhook/SandHookMethodResolver", - "dexMethodIndex"); - if (index != 0) { - offset = findOffset(p, getParentSize(), 2, static_cast(index)); - if (offset >= 0) { - return static_cast(offset); - } - } - return getParentSize() + 1; - } - }; - - class CastHotnessCount : public IMember { - protected: - Size calOffset(JNIEnv *jniEnv, mirror::ArtMethod *p) override { - if (SDK_INT <= ANDROID_N) - return getParentSize() + 1; - return CastArtMethod::dexMethodIndex->getOffset() - + CastArtMethod::dexMethodIndex->size() - + sizeof(uint16_t); - } - }; - - - void CastArtMethod::init(JNIEnv *env) { - //init ArtMethodSize - jclass sizeTestClass = env->FindClass("com/swift/sandhook/ArtMethodSizeTest"); - jobject artMethod1 = getMethodObject(env, "com.swift.sandhook.ArtMethodSizeTest", "method1"); - jobject artMethod2 = getMethodObject(env, "com.swift.sandhook.ArtMethodSizeTest", "method2"); - - env->CallStaticVoidMethod(sizeTestClass, env->FromReflectedMethod(artMethod1)); - - std::atomic_thread_fence(std::memory_order_acquire); - - art::mirror::ArtMethod *m1 = getArtMethod(env, artMethod1); - art::mirror::ArtMethod *m2 = getArtMethod(env, artMethod2); - - size = m2 - m1; - - //init Members - - accessFlag = new CastAccessFlag(); - accessFlag->init(env, m1, size); - - entryPointFromInterpreter = new CastEntryPointFormInterpreter(); - entryPointFromInterpreter->init(env, m1, size); - - entryPointQuickCompiled = new CastEntryPointQuickCompiled(); - entryPointQuickCompiled->init(env, m1, size); - - dexMethodIndex = new CastDexMethodIndex(); - dexMethodIndex->init(env, m1, size); - - dexCacheResolvedMethods = new CastDexCacheResolvedMethods(); - dexCacheResolvedMethods->init(env, m1, size); - - declaringClass = new CastShadowClass(); - declaringClass->init(env, m1, size); - - - hotnessCount = new CastHotnessCount(); - hotnessCount->init(env, m1, size); - - auto neverCallTestClass = "com.swift.sandhook.ClassNeverCall"; - - art::mirror::ArtMethod *neverCall = getArtMethod(env, getMethodObject(env, - neverCallTestClass, - "neverCall")); - art::mirror::ArtMethod *neverCall2 = getArtMethod(env, getMethodObject(env, - neverCallTestClass, - "neverCall2")); - - bool beAot = entryPointQuickCompiled->get(neverCall) != entryPointQuickCompiled->get(neverCall2); - if (beAot) { - quickToInterpreterBridge = getInterpreterBridge(false); - if (quickToInterpreterBridge == nullptr) { - quickToInterpreterBridge = entryPointQuickCompiled->get(neverCall); - canGetInterpreterBridge = false; - } - } else { - quickToInterpreterBridge = entryPointQuickCompiled->get(neverCall); - } - - - art::mirror::ArtMethod *neverCallNative = getArtMethod(env, getMethodObject(env, - neverCallTestClass, - "neverCallNative")); - art::mirror::ArtMethod *neverCallNative2 = getArtMethod(env, getMethodObject(env, - neverCallTestClass, - "neverCallNative2")); - - beAot = entryPointQuickCompiled->get(neverCallNative) != entryPointQuickCompiled->get(neverCallNative2); - if (beAot) { - genericJniStub = getInterpreterBridge(true); - if (genericJniStub == nullptr) { - genericJniStub = entryPointQuickCompiled->get(neverCallNative); - canGetJniBridge = false; - } - } else { - genericJniStub = entryPointQuickCompiled->get(neverCallNative); - } - - entryPointFromJNI = new CastEntryPointFromJni(); - entryPointFromJNI->init(env, neverCallNative, size); - - art::mirror::ArtMethod *neverCallStatic = getArtMethod(env, getMethodObject(env, - neverCallTestClass, - "neverCallStatic")); - staticResolveStub = entryPointQuickCompiled->get(neverCallStatic); - - } - - void CastArtMethod::copy(art::mirror::ArtMethod *from, art::mirror::ArtMethod *to) { - memcpy(to, from, size); - } - - Size CastArtMethod::size = 0; - IMember *CastArtMethod::entryPointQuickCompiled = nullptr; - IMember *CastArtMethod::entryPointFromInterpreter = nullptr; - IMember *CastArtMethod::entryPointFromJNI = nullptr; - ArrayMember *CastArtMethod::dexCacheResolvedMethods = nullptr; - IMember *CastArtMethod::dexMethodIndex = nullptr; - IMember *CastArtMethod::accessFlag = nullptr; - IMember *CastArtMethod::declaringClass = nullptr; - IMember *CastArtMethod::hotnessCount = nullptr; - void *CastArtMethod::quickToInterpreterBridge = nullptr; - void *CastArtMethod::genericJniStub = nullptr; - void *CastArtMethod::staticResolveStub = nullptr; - bool CastArtMethod::canGetInterpreterBridge = true; - bool CastArtMethod::canGetJniBridge = true; - -} \ No newline at end of file diff --git a/core/src/main/cpp/external/SandHook/casts/cast_compiler_options.cpp b/core/src/main/cpp/external/SandHook/casts/cast_compiler_options.cpp deleted file mode 100644 index 60944962..00000000 --- a/core/src/main/cpp/external/SandHook/casts/cast_compiler_options.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// -// Created by 甘尧 on 2019/2/24. -// - -#include "../includes/cast_compiler_options.h" -#include "../includes/hide_api.h" - -extern int SDK_INT; - -namespace SandHook { - - - class CastInlineMaxCodeUnits : public IMember { - protected: - Size calOffset(JNIEnv *jniEnv, art::CompilerOptions *p) override { - if (SDK_INT < ANDROID_N) - return getParentSize() + 1; - if (SDK_INT >= ANDROID_Q) { - return BYTE_POINT + 3 * sizeof(size_t); - } - if (SDK_INT >= ANDROID_O) { - return BYTE_POINT + 5 * sizeof(size_t); - } else { - return BYTE_POINT + 6 * sizeof(size_t); - } - } - }; - - void CastCompilerOptions::init(JNIEnv *jniEnv) { - inlineMaxCodeUnits->init(jniEnv, nullptr, sizeof(art::CompilerOptions)); - } - - IMember* CastCompilerOptions::inlineMaxCodeUnits = new CastInlineMaxCodeUnits(); - -} diff --git a/core/src/main/cpp/external/SandHook/dummy.cpp b/core/src/main/cpp/external/SandHook/dummy.cpp deleted file mode 100644 index 8d299843..00000000 --- a/core/src/main/cpp/external/SandHook/dummy.cpp +++ /dev/null @@ -1,10 +0,0 @@ -// -// Created by Kotori0 on 2021/1/30. -// -#include "sandhook.h" -#include "includes/log.h" - -bool JNI_Load_Ex(JNIEnv* env, jclass classSandHook, jclass classNeverCall) { - LOGE("Sandhook: Unsupported platform."); - return false; -} \ No newline at end of file diff --git a/core/src/main/cpp/external/SandHook/includes/arch.h b/core/src/main/cpp/external/SandHook/includes/arch.h deleted file mode 100644 index cbc52ccc..00000000 --- a/core/src/main/cpp/external/SandHook/includes/arch.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// Created by 甘尧 on 2019/1/12. -// - -#ifndef SANDHOOK_ARCH_H -#define SANDHOOK_ARCH_H - -#define BYTE_POINT sizeof(void*) - -typedef size_t Size; - -//32bit -#if defined(__i386__) || defined(__arm__) -//64bit -#elif defined(__aarch64__) || defined(__x86_64__) -#else -#endif - -#if defined(__arm__) -static void clearCacheArm32(char* begin, char *end) -{ - const int syscall = 0xf0002; - __asm __volatile ( - "mov r0, %0\n" - "mov r1, %1\n" - "mov r3, %2\n" - "mov r2, #0x0\n" - "svc 0x00000000\n" - : - : "r" (begin), "r" (end), "r" (syscall) - : "r0", "r1", "r3" - ); -} -#endif - -#define ANDROID_K 19 -#define ANDROID_L 21 -#define ANDROID_L2 22 -#define ANDROID_M 23 -#define ANDROID_N 24 -#define ANDROID_N2 25 -#define ANDROID_O 26 -#define ANDROID_O2 27 -#define ANDROID_P 28 -#define ANDROID_Q 29 -#define ANDROID_R 30 -#define ANDROID_S 31 - -#endif //SANDHOOK_ARCH_H \ No newline at end of file diff --git a/core/src/main/cpp/external/SandHook/includes/arch_base.h b/core/src/main/cpp/external/SandHook/includes/arch_base.h deleted file mode 100644 index 34c05938..00000000 --- a/core/src/main/cpp/external/SandHook/includes/arch_base.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// Created by SwiftGan on 2019/1/17. -// - -#ifndef SANDHOOK_BASE_H -#define SANDHOOK_BASE_H - -#define FUNCTION_START(x) \ -.text; \ -.align 4; \ -.global x; \ -x: \ - -#define FUNCTION_START_T(x) \ -.syntax unified; \ -.text; \ -.align 4; \ -.thumb; \ -.thumb_func; \ -.global x; \ -x: \ - -#define FUNCTION_END(x) .size x, .-x - -#define REPLACEMENT_HOOK_TRAMPOLINE replacement_hook_trampoline -#define INLINE_HOOK_TRAMPOLINE inline_hook_trampoline -#define DIRECT_JUMP_TRAMPOLINE direct_jump_trampoline -#define CALL_ORIGIN_TRAMPOLINE call_origin_trampoline - -#define INLINE_HOOK_TRAMPOLINE_T inline_hook_trampoline_t -#define DIRECT_JUMP_TRAMPOLINE_T direct_jump_trampoline_t -#define CALL_ORIGIN_TRAMPOLINE_T call_origin_trampoline_t - -#endif //SANDHOOK_BASE_H diff --git a/core/src/main/cpp/external/SandHook/includes/art_classlinker.h b/core/src/main/cpp/external/SandHook/includes/art_classlinker.h deleted file mode 100644 index 18eaccd2..00000000 --- a/core/src/main/cpp/external/SandHook/includes/art_classlinker.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// Created by 双草酸酯 on 11/27/20. -// - -#ifndef SANDHOOK_ART_CLASSLINKER_H -#define SANDHOOK_ART_CLASSLINKER_H - -#endif //SANDHOOK_ART_CLASSLINKER_H -namespace art { -class ClassLinker { -public: - void MakeInitializedClassesVisiblyInitialized(void* self, bool wait); -}; -} \ No newline at end of file diff --git a/core/src/main/cpp/external/SandHook/includes/art_collector_type.h b/core/src/main/cpp/external/SandHook/includes/art_collector_type.h deleted file mode 100644 index 3de50771..00000000 --- a/core/src/main/cpp/external/SandHook/includes/art_collector_type.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef ART_RUNTIME_GC_COLLECTOR_TYPE_H_ -#define ART_RUNTIME_GC_COLLECTOR_TYPE_H_ - -#include - -namespace art { - namespace gc { - -// Which types of collections are able to be performed. - enum CollectorType { - // No collector selected. - kCollectorTypeNone, - // Non concurrent mark-sweep. - kCollectorTypeMS, - // Concurrent mark-sweep. - kCollectorTypeCMS, - // Semi-space / mark-sweep hybrid, enables compaction. - kCollectorTypeSS, - // Heap trimming collector, doesn't do any actual collecting. - kCollectorTypeHeapTrim, - // A (mostly) concurrent copying collector. - kCollectorTypeCC, - // The background compaction of the concurrent copying collector. - kCollectorTypeCCBackground, - // Instrumentation critical section fake collector. - kCollectorTypeInstrumentation, - // Fake collector for adding or removing application image spaces. - kCollectorTypeAddRemoveAppImageSpace, - // Fake collector used to implement exclusion between GC and debugger. - kCollectorTypeDebugger, - // A homogeneous space compaction collector used in background transition - // when both foreground and background collector are CMS. - kCollectorTypeHomogeneousSpaceCompact, - // Class linker fake collector. - kCollectorTypeClassLinker, - // JIT Code cache fake collector. - kCollectorTypeJitCodeCache, - // Hprof fake collector. - kCollectorTypeHprof, - // Fake collector for installing/removing a system-weak holder. - kCollectorTypeAddRemoveSystemWeakHolder, - // Fake collector type for GetObjectsAllocated - kCollectorTypeGetObjectsAllocated, - // Fake collector type for ScopedGCCriticalSection - kCollectorTypeCriticalSection, - }; - } // namespace gc -} // namespace art - -#endif // ART_RUNTIME_GC_COLLECTOR_TYPE_H_ diff --git a/core/src/main/cpp/external/SandHook/includes/art_compiler_options.h b/core/src/main/cpp/external/SandHook/includes/art_compiler_options.h deleted file mode 100644 index 0a462353..00000000 --- a/core/src/main/cpp/external/SandHook/includes/art_compiler_options.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// Created by 甘尧 on 2019/2/23. -// - -#ifndef ART_COMPILER_OPTIONS_H -#define ART_COMPILER_OPTIONS_H - -#include - -namespace art { - class CompilerOptions { - public: - void* compiler_filter_; - size_t huge_method_threshold_; - size_t large_method_threshold_; - size_t small_method_threshold_; - size_t tiny_method_threshold_; - size_t num_dex_methods_threshold_; - size_t inline_depth_limit_; - size_t inline_max_code_units_; - - size_t getInlineMaxCodeUnits(); - bool setInlineMaxCodeUnits(size_t units); - - }; -} - -#endif //ART_COMPILER_OPTIONS_H diff --git a/core/src/main/cpp/external/SandHook/includes/art_gc_cause.h b/core/src/main/cpp/external/SandHook/includes/art_gc_cause.h deleted file mode 100644 index a039cc0d..00000000 --- a/core/src/main/cpp/external/SandHook/includes/art_gc_cause.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef ART_RUNTIME_GC_GC_CAUSE_H_ -#define ART_RUNTIME_GC_GC_CAUSE_H_ - -#include - -namespace art { - namespace gc { - -// What caused the GC? - enum GcCause { - // Invalid GC cause used as a placeholder. - kGcCauseNone, - // GC triggered by a failed allocation. Thread doing allocation is blocked waiting for GC before - // retrying allocation. - kGcCauseForAlloc, - // A background GC trying to ensure there is free memory ahead of allocations. - kGcCauseBackground, - // An explicit System.gc() call. - kGcCauseExplicit, - // GC triggered for a native allocation when NativeAllocationGcWatermark is exceeded. - // (This may be a blocking GC depending on whether we run a non-concurrent collector). - kGcCauseForNativeAlloc, - // GC triggered for a collector transition. - kGcCauseCollectorTransition, - // Not a real GC cause, used when we disable moving GC (currently for GetPrimitiveArrayCritical). - kGcCauseDisableMovingGc, - // Not a real GC cause, used when we trim the heap. - kGcCauseTrim, - // Not a real GC cause, used to implement exclusion between GC and instrumentation. - kGcCauseInstrumentation, - // Not a real GC cause, used to add or remove app image spaces. - kGcCauseAddRemoveAppImageSpace, - // Not a real GC cause, used to implement exclusion between GC and debugger. - kGcCauseDebugger, - // GC triggered for background transition when both foreground and background collector are CMS. - kGcCauseHomogeneousSpaceCompact, - // Class linker cause, used to guard filling art methods with special values. - kGcCauseClassLinker, - // Not a real GC cause, used to implement exclusion between code cache metadata and GC. - kGcCauseJitCodeCache, - // Not a real GC cause, used to add or remove system-weak holders. - kGcCauseAddRemoveSystemWeakHolder, - // Not a real GC cause, used to prevent hprof running in the middle of GC. - kGcCauseHprof, - // Not a real GC cause, used to prevent GetObjectsAllocated running in the middle of GC. - kGcCauseGetObjectsAllocated, - // GC cause for the profile saver. - kGcCauseProfileSaver, - // GC cause for running an empty checkpoint. - kGcCauseRunEmptyCheckpoint, - }; - } // namespace gc -} // namespace art - -#endif // ART_RUNTIME_GC_GC_CAUSE_H_ diff --git a/core/src/main/cpp/external/SandHook/includes/art_jit.h b/core/src/main/cpp/external/SandHook/includes/art_jit.h deleted file mode 100644 index c59f48cf..00000000 --- a/core/src/main/cpp/external/SandHook/includes/art_jit.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// Created by 甘尧 on 2019/2/23. -// - -#ifndef SANDHOOK_ART_JIT_H -#define SANDHOOK_ART_JIT_H - -namespace art { - namespace jit { - - //7.0 - 9.0 - class JitCompiler { - public: - virtual ~JitCompiler(); - std::unique_ptr compilerOptions; - }; - - class Jit { - public: - //void* getCompilerOptions(); - }; - - - - }; -} - -#endif //SANDHOOK_ART_JIT_H diff --git a/core/src/main/cpp/external/SandHook/includes/art_method.h b/core/src/main/cpp/external/SandHook/includes/art_method.h deleted file mode 100644 index 58fb8ec4..00000000 --- a/core/src/main/cpp/external/SandHook/includes/art_method.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * - * Copyright (c) 2011 The Android Open Source Project - * Copyright (c) 2015, alipay.com - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef ART_H -#define ART_H - -#include -#include "arch.h" - -//7.0 - 10.0 -#define GCRoot uint32_t - -namespace art { -namespace mirror { -class Object { -public: -}; -class Class: public Object { -public: -}; - -class ArtField { -public: -}; - -class ArtMethod { -public: - - bool isAbstract(); - bool isNative(); - bool isStatic(); - bool isCompiled(); - bool isThumbCode(); - - void setAccessFlags(uint32_t flags); - void disableCompilable(); - void tryDisableInline(); - void disableInterpreterForO(); - void disableFastInterpreterForQ(); - void setPrivate(); - void setStatic(); - void setNative(); - - void setQuickCodeEntry(void* entry); - void setJniCodeEntry(void* entry); - void setInterpreterCodeEntry(void* entry); - void setDexCacheResolveList(void* list); - void setDexCacheResolveItem(uint32_t index, void* item); - void setDeclaringClass(GCRoot classPtr); - void setHotnessCount(uint16_t count); - - void* getQuickCodeEntry(); - void* getInterpreterCodeEntry(); - uint32_t getAccessFlags(); - uint32_t getDexMethodIndex(); - GCRoot getDeclaringClass(); - uint16_t getHotnessCount(); - - bool compile(JNIEnv* env); - bool deCompile(); - void flushCache(); - void backup(ArtMethod* backup); - - static Size size(); - -}; - -} - -} - -#endif //ART_H diff --git a/core/src/main/cpp/external/SandHook/includes/art_runtime.h b/core/src/main/cpp/external/SandHook/includes/art_runtime.h deleted file mode 100644 index e27d68ae..00000000 --- a/core/src/main/cpp/external/SandHook/includes/art_runtime.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// Created by 甘尧 on 2019/2/23. -// - -#ifndef SANDHOOK_ART_RUNTIME_H -#define SANDHOOK_ART_RUNTIME_H - -#include "art_jit.h" - -namespace art { - class Runtime { - - public: - jit::Jit* getJit(); - }; -} - -#endif //SANDHOOK_ART_RUNTIME_H diff --git a/core/src/main/cpp/external/SandHook/includes/cast.h b/core/src/main/cpp/external/SandHook/includes/cast.h deleted file mode 100644 index 6748c686..00000000 --- a/core/src/main/cpp/external/SandHook/includes/cast.h +++ /dev/null @@ -1,123 +0,0 @@ -// -// Created by 甘尧 on 2019/1/12. -// - - -#ifndef SANDHOOK_ICAST_H -#define SANDHOOK_ICAST_H - -#include -#include -#include -#include "arch.h" -#include "utils.h" - - -namespace SandHook { - - template - class cast { - public: - cast(T t) { - this->origin = t; - }; - - virtual Size getSize() { return sizeof(T); }; - - private: - T origin; - }; - - template - class IMember { - public: - - virtual void init(JNIEnv *jniEnv, PType* p, Size size) { - this->parentSize = size; - offset = calOffset(jniEnv, p); - } - - Size size() { - return sizeof(MType); - } - - virtual Size getOffset() { - return offset; - } - - virtual Size getParentSize() { - return parentSize; - } - - virtual MType get(PType* p) { - if (offset > parentSize) - return 0; - return *reinterpret_cast((Size)p + getOffset()); - }; - - virtual void set(PType* p, MType t) { - if (offset > parentSize) - return; - memcpy(reinterpret_cast((Size)p + getOffset()), &t, size()); - }; - - template - int findOffset(void *start, size_t len, size_t step, T value) { - - if (nullptr == start) { - return -1; - } - - for (int i = 0; i <= len; i += step) { - T current_value = *reinterpret_cast((size_t) start + i); - if (value == current_value) { - return i; - } - } - return -1; - } - - private: - Size offset = 0; - protected: - Size parentSize = 0; - virtual Size calOffset(JNIEnv *jniEnv, PType* p) = 0; - - }; - - template - class ArrayMember : public IMember { - public: - - virtual void init(JNIEnv *jniEnv, PType* p, Size parentSize) override { - IMember::init(jniEnv, p, parentSize); - elementSize = calElementSize(jniEnv, p); - } - - virtual Size getElementSize() { - return elementSize; - } - - virtual Size arrayStart(PType* parent) { - void* p = IMember::get(parent); - return reinterpret_cast(p); - } - - using IMember::getParentSize; - - virtual void setElement(PType* parent, int position, ElementType elementPoint) { - Size array = arrayStart(parent); - memcpy(reinterpret_cast(array + position * getElementSize()), &elementPoint, getElementSize()); - } - - private: - Size elementSize = 0; - protected: - virtual Size calElementSize(JNIEnv *jniEnv, PType* p) { - return sizeof(ElementType); - }; - }; - -} - -#endif //SANDHOOK_ICAST_H \ No newline at end of file diff --git a/core/src/main/cpp/external/SandHook/includes/cast_art_method.h b/core/src/main/cpp/external/SandHook/includes/cast_art_method.h deleted file mode 100644 index 1cdb37bb..00000000 --- a/core/src/main/cpp/external/SandHook/includes/cast_art_method.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// Created by 甘尧 on 2019/1/12. -// - -#ifndef SANDHOOK_CAST_ART_METHOD_H -#define SANDHOOK_CAST_ART_METHOD_H - -#include "cast.h" -#include "trampoline_manager.h" - -namespace SandHook { - - class CastArtMethod { - public: - static Size size; - static IMember* entryPointQuickCompiled; - static IMember* entryPointFromInterpreter; - static IMember* entryPointFromJNI; - static ArrayMember* dexCacheResolvedMethods; - static IMember* dexMethodIndex; - static IMember* accessFlag; - static IMember* declaringClass; - static IMember* hotnessCount; - static void* quickToInterpreterBridge; - static void* genericJniStub; - static void* staticResolveStub; - static bool canGetJniBridge; - static bool canGetInterpreterBridge; - - static void init(JNIEnv *env); - static void copy(art::mirror::ArtMethod* from, art::mirror::ArtMethod* to); - - }; - -} - -#endif //SANDHOOK_CAST_ART_METHOD_H - - diff --git a/core/src/main/cpp/external/SandHook/includes/cast_compiler_options.h b/core/src/main/cpp/external/SandHook/includes/cast_compiler_options.h deleted file mode 100644 index 5b98a9d4..00000000 --- a/core/src/main/cpp/external/SandHook/includes/cast_compiler_options.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// Created by 甘尧 on 2019/1/12. -// - -#ifndef SANDHOOK_CAST_COMPILER_OPTIONS_H -#define SANDHOOK_CAST_COMPILER_OPTIONS_H - -#include "cast.h" -#include "art_compiler_options.h" - -namespace SandHook { - - class CastCompilerOptions { - public: - static void init(JNIEnv *jniEnv); - static IMember* inlineMaxCodeUnits; - }; - - -} - -#endif //SANDHOOK_CAST_COMPILER_OPTIONS_H - - diff --git a/core/src/main/cpp/external/SandHook/includes/dlfcn_nougat.h b/core/src/main/cpp/external/SandHook/includes/dlfcn_nougat.h deleted file mode 100644 index 1fbaa5c4..00000000 --- a/core/src/main/cpp/external/SandHook/includes/dlfcn_nougat.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef DLFCN_NOUGAT_H -#define DLFCN_NOUGAT_H - -//see implementation in https://tech.meituan.com/2017/07/20/android-remote-debug.html -extern "C" { -int fake_dlclose(void *handle); - -void *fake_dlopen(const char *filename, int flags); - -void *fake_dlsym(void *handle, const char *name); - -const char *fake_dlerror(); - -void *getSymCompat(const char *filename, const char *name); -} - -#endif //DLFCN_NOUGAT_H diff --git a/core/src/main/cpp/external/SandHook/includes/elf_util.h b/core/src/main/cpp/external/SandHook/includes/elf_util.h deleted file mode 100644 index 79141764..00000000 --- a/core/src/main/cpp/external/SandHook/includes/elf_util.h +++ /dev/null @@ -1,72 +0,0 @@ -// -// Created by Swift Gan on 2019/3/14. -// -#ifndef SANDHOOK_ELF_UTIL_H -#define SANDHOOK_ELF_UTIL_H - -#include - -#if defined(__LP64__) -typedef Elf64_Ehdr Elf_Ehdr; -typedef Elf64_Shdr Elf_Shdr; -typedef Elf64_Addr Elf_Addr; -typedef Elf64_Dyn Elf_Dyn; -typedef Elf64_Rela Elf_Rela; -typedef Elf64_Sym Elf_Sym; -typedef Elf64_Off Elf_Off; - -#define ELF_R_SYM(i) ELF64_R_SYM(i) -#else -typedef Elf32_Ehdr Elf_Ehdr; -typedef Elf32_Shdr Elf_Shdr; -typedef Elf32_Addr Elf_Addr; -typedef Elf32_Dyn Elf_Dyn; -typedef Elf32_Rel Elf_Rela; -typedef Elf32_Sym Elf_Sym; -typedef Elf32_Off Elf_Off; - -#define ELF_R_SYM(i) ELF32_R_SYM(i) -#endif - -namespace SandHook { - - class ElfImg { - public: - - ElfImg(const char* elf); - - Elf_Addr getSymbOffset(const char* name); - - void* getModuleBase(const char* name); - - Elf_Addr getSymbAddress(const char* name); - - ~ElfImg(); - - private: - const char* elf = nullptr; - void* base = nullptr; - char* buffer = nullptr; - off_t size = 0; - off_t bias = -4396; - Elf_Ehdr* header = nullptr; - Elf_Shdr* section_header = nullptr; - Elf_Shdr* symtab = nullptr; - Elf_Shdr* strtab = nullptr; - Elf_Shdr* dynsym = nullptr; - Elf_Off dynsym_count = 0; - Elf_Sym* symtab_start = nullptr; - Elf_Sym* dynsym_start = nullptr; - Elf_Sym* strtab_start = nullptr; - Elf_Off symtab_count = 0; - Elf_Off symstr_offset = 0; - Elf_Off symstr_offset_for_symtab = 0; - Elf_Off symtab_offset = 0; - Elf_Off dynsym_offset = 0; - Elf_Off symtab_size = 0; - Elf_Off dynsym_size = 0; - }; - -} - -#endif //SANDHOOK_ELF_UTIL_H diff --git a/core/src/main/cpp/external/SandHook/includes/hide_api.h b/core/src/main/cpp/external/SandHook/includes/hide_api.h deleted file mode 100644 index e7966790..00000000 --- a/core/src/main/cpp/external/SandHook/includes/hide_api.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// Created by swift on 2019/1/21. -// - -#ifndef SANDHOOK_HIDE_API_H -#define SANDHOOK_HIDE_API_H - -#include -#include "dlfcn_nougat.h" -#include "dlfcn.h" -#include -#include "../includes/art_compiler_options.h" -#include "../includes/art_jit.h" -#include "../includes/art_method.h" - -#if defined(__aarch64__) -# define __get_tls() ({ void** __val; __asm__("mrs %0, tpidr_el0" : "=r"(__val)); __val; }) -#elif defined(__arm__) -# define __get_tls() ({ void** __val; __asm__("mrc p15, 0, %0, c13, c0, 3" : "=r"(__val)); __val; }) -#endif - -#define TLS_SLOT_ART_THREAD 7 - -using namespace art::mirror; - -extern "C" { - - void initHideApi(JNIEnv *env); - bool compileMethod(void *artMethod, void *thread); - - void suspendVM(void *); - void resumeVM(void *); - - bool canGetObject(); - jobject getJavaObject(JNIEnv* env, void* thread, void* address); - void *getCurrentThread(); - - art::jit::JitCompiler* getGlobalJitCompiler(); - - art::CompilerOptions* getCompilerOptions(art::jit::JitCompiler* compiler); - - art::CompilerOptions* getGlobalCompilerOptions(); - - bool disableJitInline(art::CompilerOptions* compilerOptions); - - void* getInterpreterBridge(bool isNative); - - bool replaceUpdateCompilerOptionsQ(); - - bool forceProcessProfiles(); - - bool hookClassInit(void(*callback)(void*)); - - JNIEnv *attachAndGetEvn(); - - ArtMethod* getArtMethod(JNIEnv *env, jobject method); -} - -#endif //SANDHOOK_HIDE_API_H diff --git a/core/src/main/cpp/external/SandHook/includes/inst.h b/core/src/main/cpp/external/SandHook/includes/inst.h deleted file mode 100644 index 70fd4846..00000000 --- a/core/src/main/cpp/external/SandHook/includes/inst.h +++ /dev/null @@ -1,122 +0,0 @@ -// -// Created by swift on 2019/2/3. -// - -#ifndef SANDHOOK_INST_VISTOR_H -#define SANDHOOK_INST_VISTOR_H - -#include -#include "arch.h" - -#define CASE(inst,mask,match,type) \ -if ((inst & mask) == match) { return type; } \ - -namespace SandHook { - - union Arm32Code { - uint32_t code; - struct { - uint32_t cond:4; - uint32_t empty:2; - uint32_t opcode:4; - uint32_t s:1; - uint32_t rn:4; - uint32_t rd:4; - uint32_t operand2:12; - } units; - }; - - union Arm16Code { - uint16_t code; - struct { - uint32_t cond:16; - } units; - }; - - enum InstArch { - ARM32 = 0, - Thumb16, - Thumb32, - Arm64, - X86, - X64 - }; - - enum class InstType_Thumb32 { - // BLX