From c29cbaa0363c246931d3709cc3a781f412237bc4 Mon Sep 17 00:00:00 2001 From: exo <> Date: Tue, 16 Jun 2020 20:20:14 +0200 Subject: [PATCH] publish project --- .gitignore | 90 ++ .gitmodules | 3 + README.md | 29 + examples/bc-java | 1 + examples/bouncydroid/config.txt | 4 + .../drawable/IconCompatParcelizer.java | 34 + .../CustomVersionedParcelable.java | 6 + .../versionedparcelable/ParcelImpl.java | 35 + .../at/acn2020/bouncydroid/MainActivity.java | 49 + .../jadx/at/acn2020/bouncydroid/R.java | 1272 +++++++++++++++++ examples/bouncydroid/jadx/b/a/a.java | 155 ++ examples/bouncydroid/jadx/b/a/b.java | 134 ++ examples/bouncydroid/jadx/b/a/c.java | 4 + examples/bouncydroid/jadx/c/a/a/a.java | 59 + examples/bouncydroid/jadx/d/a/a/a.java | 4 + examples/bouncydroid/jadx/d/a/a/b.java | 38 + examples/bouncydroid/jadx/d/a/a/c.java | 4 + examples/bouncydroid/jadx/d/a/a/d.java | 11 + examples/bouncydroid/jadx/d/a/a/e.java | 7 + examples/bouncydroid/jadx/d/a/a/f.java | 7 + examples/bouncydroid/jadx/d/a/a/g.java | 7 + examples/bouncydroid/jadx/d/a/a/h.java | 7 + examples/bouncydroid/jadx/d/a/a/i/a.java | 448 ++++++ examples/bouncydroid/jadx/d/a/a/j/a.java | 4 + examples/bouncydroid/jadx/d/a/a/j/b.java | 31 + examples/bouncydroid/jadx/d/a/a/j/c.java | 118 ++ examples/bouncydroid/jadx/d/a/a/k/a.java | 23 + examples/bouncydroid/jadx/d/a/a/k/b.java | 14 + examples/bouncydroid/jadx/d/a/b/a.java | 12 + examples/bouncydroid/jadx/d/a/b/b.java | 9 + logging.properties | 3 + pom.xml | 80 ++ results/.gitkeep | 0 run-tests.sh | 7 + src/org/reversing/ald/Args.java | 24 + src/org/reversing/ald/Main.java | 83 ++ .../ald/codegen/MethodProcessor.java | 24 + .../ald/codegen/PackageProcessor.java | 27 + .../ald/codegen/TranslationPrinter.java | 39 + .../reversing/ald/codegen/TypeProcessor.java | 57 + src/org/reversing/ald/data/Codebase.java | 38 + .../reversing/ald/data/StringTranslation.java | 9 + src/org/reversing/ald/data/Translation.java | 57 + .../ald/matching/CodebaseMatcher.java | 212 +++ .../ald/matching/ExecutableSignature.java | 45 + src/org/reversing/ald/matching/MatchUtil.java | 14 + src/org/reversing/ald/util/SignatureUtil.java | 39 + 47 files changed, 3377 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 README.md create mode 160000 examples/bc-java create mode 100644 examples/bouncydroid/config.txt create mode 100644 examples/bouncydroid/jadx/androidx/core/graphics/drawable/IconCompatParcelizer.java create mode 100644 examples/bouncydroid/jadx/androidx/versionedparcelable/CustomVersionedParcelable.java create mode 100644 examples/bouncydroid/jadx/androidx/versionedparcelable/ParcelImpl.java create mode 100644 examples/bouncydroid/jadx/at/acn2020/bouncydroid/MainActivity.java create mode 100644 examples/bouncydroid/jadx/at/acn2020/bouncydroid/R.java create mode 100644 examples/bouncydroid/jadx/b/a/a.java create mode 100644 examples/bouncydroid/jadx/b/a/b.java create mode 100644 examples/bouncydroid/jadx/b/a/c.java create mode 100644 examples/bouncydroid/jadx/c/a/a/a.java create mode 100644 examples/bouncydroid/jadx/d/a/a/a.java create mode 100644 examples/bouncydroid/jadx/d/a/a/b.java create mode 100644 examples/bouncydroid/jadx/d/a/a/c.java create mode 100644 examples/bouncydroid/jadx/d/a/a/d.java create mode 100644 examples/bouncydroid/jadx/d/a/a/e.java create mode 100644 examples/bouncydroid/jadx/d/a/a/f.java create mode 100644 examples/bouncydroid/jadx/d/a/a/g.java create mode 100644 examples/bouncydroid/jadx/d/a/a/h.java create mode 100644 examples/bouncydroid/jadx/d/a/a/i/a.java create mode 100644 examples/bouncydroid/jadx/d/a/a/j/a.java create mode 100644 examples/bouncydroid/jadx/d/a/a/j/b.java create mode 100644 examples/bouncydroid/jadx/d/a/a/j/c.java create mode 100644 examples/bouncydroid/jadx/d/a/a/k/a.java create mode 100644 examples/bouncydroid/jadx/d/a/a/k/b.java create mode 100644 examples/bouncydroid/jadx/d/a/b/a.java create mode 100644 examples/bouncydroid/jadx/d/a/b/b.java create mode 100644 logging.properties create mode 100644 pom.xml create mode 100644 results/.gitkeep create mode 100644 run-tests.sh create mode 100644 src/org/reversing/ald/Args.java create mode 100644 src/org/reversing/ald/Main.java create mode 100644 src/org/reversing/ald/codegen/MethodProcessor.java create mode 100644 src/org/reversing/ald/codegen/PackageProcessor.java create mode 100644 src/org/reversing/ald/codegen/TranslationPrinter.java create mode 100644 src/org/reversing/ald/codegen/TypeProcessor.java create mode 100644 src/org/reversing/ald/data/Codebase.java create mode 100644 src/org/reversing/ald/data/StringTranslation.java create mode 100644 src/org/reversing/ald/data/Translation.java create mode 100644 src/org/reversing/ald/matching/CodebaseMatcher.java create mode 100644 src/org/reversing/ald/matching/ExecutableSignature.java create mode 100644 src/org/reversing/ald/matching/MatchUtil.java create mode 100644 src/org/reversing/ald/util/SignatureUtil.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..15262c5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,90 @@ +results/ +target/ +.idea/ +.idea/* + +# Built application files +*.apk +*.aar +*.ap_ +*.aab + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ +# Uncomment the following line in case you need and you don't have the release build type files in your app +# release/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# IntelliJ +*.iml +.idea/workspace.xml +.idea/tasks.xml +.idea/gradle.xml +.idea/assetWizardSettings.xml +.idea/dictionaries +.idea/libraries +# Android Studio 3 in .gitignore file. +.idea/caches +.idea/modules.xml +# Comment next line if keeping position of elements in Navigation Editor is relevant for you +.idea/navEditor.xml + +# Keystore files +# Uncomment the following lines if you do not want to check your keystore files in. +#*.jks +#*.keystore + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild +.cxx/ + +# Google Services (e.g. APIs or Firebase) +# google-services.json + +# Freeline +freeline.py +freeline/ +freeline_project_description.json + +# fastlane +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots +fastlane/test_output +fastlane/readme.md + +# Version control +vcs.xml + +# lint +lint/intermediates/ +lint/generated/ +lint/outputs/ +lint/tmp/ +# lint/reports/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..b45a3cb --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "examples/bc-java"] + path = examples/bc-java + url = https://github.com/bcgit/bc-java diff --git a/README.md b/README.md new file mode 100644 index 0000000..65bfd65 --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ +## Getting started + +Run the following command to initialize the git submodules: + +``` +git submodule update --init --recursive +``` + +Then run the tests via + +``` +./run-tests.sh +``` + +The output can be found in the directory `results`. + +## Running + +use the following maven command to run the program: + +``` +mvn compile exec:exec -DappRoot= -DlibPath= +``` + +Example: + +``` +mvn compile exec:exec -DappRoot=../app-debug/sources -DlibPath=../bc-java/core/src/main/java +``` \ No newline at end of file diff --git a/examples/bc-java b/examples/bc-java new file mode 160000 index 0000000..a529fa2 --- /dev/null +++ b/examples/bc-java @@ -0,0 +1 @@ +Subproject commit a529fa25060c8ff274bcd43f30a4548b359a72db diff --git a/examples/bouncydroid/config.txt b/examples/bouncydroid/config.txt new file mode 100644 index 0000000..22082dd --- /dev/null +++ b/examples/bouncydroid/config.txt @@ -0,0 +1,4 @@ +d.a.a.j.c org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher +d.a.a.i.a org.bouncycastle.crypto.engines.AESEngine +d.a.a.k.a org.bouncycastle.crypto.params.KeyParameter +d.a.a.a org.bouncycastle.crypto.BlockCipher \ No newline at end of file diff --git a/examples/bouncydroid/jadx/androidx/core/graphics/drawable/IconCompatParcelizer.java b/examples/bouncydroid/jadx/androidx/core/graphics/drawable/IconCompatParcelizer.java new file mode 100644 index 0000000..ce1ad77 --- /dev/null +++ b/examples/bouncydroid/jadx/androidx/core/graphics/drawable/IconCompatParcelizer.java @@ -0,0 +1,34 @@ +package androidx.core.graphics.drawable; + +import android.content.res.ColorStateList; +import android.os.Parcelable; +import android.support.v4.graphics.drawable.IconCompat; +import b.a.a; + +public class IconCompatParcelizer { + public static IconCompat read(a parcel) { + IconCompat obj = new IconCompat(); + obj.f787a = parcel.a(obj.f787a, 1); + obj.f789c = parcel.a(obj.f789c, 2); + obj.f790d = parcel.a(obj.f790d, 3); + obj.e = parcel.a(obj.e, 4); + obj.f = parcel.a(obj.f, 5); + obj.g = (ColorStateList) parcel.a(obj.g, 6); + obj.i = parcel.a(obj.i, 7); + obj.c(); + return obj; + } + + public static void write(IconCompat obj, a parcel) { + parcel.i(); + parcel.c(); + obj.a(false); + parcel.b(obj.f787a, 1); + parcel.b(obj.f789c, 2); + parcel.b(obj.f790d, 3); + parcel.b(obj.e, 4); + parcel.b(obj.f, 5); + parcel.b((Parcelable) obj.g, 6); + parcel.b(obj.i, 7); + } +} diff --git a/examples/bouncydroid/jadx/androidx/versionedparcelable/CustomVersionedParcelable.java b/examples/bouncydroid/jadx/androidx/versionedparcelable/CustomVersionedParcelable.java new file mode 100644 index 0000000..de1ab3d --- /dev/null +++ b/examples/bouncydroid/jadx/androidx/versionedparcelable/CustomVersionedParcelable.java @@ -0,0 +1,6 @@ +package androidx.versionedparcelable; + +import b.a.c; + +public abstract class CustomVersionedParcelable implements c { +} diff --git a/examples/bouncydroid/jadx/androidx/versionedparcelable/ParcelImpl.java b/examples/bouncydroid/jadx/androidx/versionedparcelable/ParcelImpl.java new file mode 100644 index 0000000..97742ac --- /dev/null +++ b/examples/bouncydroid/jadx/androidx/versionedparcelable/ParcelImpl.java @@ -0,0 +1,35 @@ +package androidx.versionedparcelable; + +import android.os.Parcel; +import android.os.Parcelable; +import b.a.b; +import b.a.c; + +public class ParcelImpl implements Parcelable { + public static final Parcelable.Creator CREATOR = new a(); + + /* renamed from: b reason: collision with root package name */ + public final c f886b; + + public ParcelImpl(Parcel in) { + this.f886b = new b(in).h(); + } + + public int describeContents() { + return 0; + } + + public void writeToParcel(Parcel dest, int flags) { + new b(dest).a(this.f886b); + } + + public static class a implements Parcelable.Creator { + public ParcelImpl createFromParcel(Parcel in) { + return new ParcelImpl(in); + } + + public ParcelImpl[] newArray(int size) { + return new ParcelImpl[size]; + } + } +} diff --git a/examples/bouncydroid/jadx/at/acn2020/bouncydroid/MainActivity.java b/examples/bouncydroid/jadx/at/acn2020/bouncydroid/MainActivity.java new file mode 100644 index 0000000..102db2e --- /dev/null +++ b/examples/bouncydroid/jadx/at/acn2020/bouncydroid/MainActivity.java @@ -0,0 +1,49 @@ +package at.acn2020.bouncydroid; + +import a.b.e.a.c; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; +import c.a.a.a; +import java.io.ByteArrayOutputStream; +import java.io.StringBufferInputStream; +import java.security.SecureRandom; +import javax.crypto.spec.SecretKeySpec; + +public class MainActivity extends c { + public static final char[] p = "0123456789ABCDEF".toCharArray(); + public EditText n; + public EditText o; + + public static String a(byte[] bytes) { + char[] hexChars = new char[(bytes.length * 2)]; + for (int j = 0; j < bytes.length; j++) { + int v = bytes[j] & 255; + char[] cArr = p; + hexChars[j * 2] = cArr[v >>> 4]; + hexChars[(j * 2) + 1] = cArr[v & 15]; + } + return new String(hexChars); + } + + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView((int) R.layout.activity_main); + this.n = (EditText) findViewById(R.id.plaintext); + this.o = (EditText) findViewById(R.id.ciphertext); + byte[] keyBytes = new byte[32]; + new SecureRandom().nextBytes(keyBytes); + new SecretKeySpec(keyBytes, "AES"); + } + + public void encrypt(View view) { + String pt = this.n.getText().toString(); + Log.d("test", pt); + a encrypter = new a(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + encrypter.a(new StringBufferInputStream(pt), baos); + this.o.setText(a(baos.toByteArray()), TextView.BufferType.EDITABLE); + } +} diff --git a/examples/bouncydroid/jadx/at/acn2020/bouncydroid/R.java b/examples/bouncydroid/jadx/at/acn2020/bouncydroid/R.java new file mode 100644 index 0000000..d63c282 --- /dev/null +++ b/examples/bouncydroid/jadx/at/acn2020/bouncydroid/R.java @@ -0,0 +1,1272 @@ +package at.acn2020.bouncydroid; + +/* This class is generated by JADX */ +public final class R { + + public static final class anim { + public static final int abc_fade_in = 2130771968; + public static final int abc_fade_out = 2130771969; + public static final int abc_grow_fade_in_from_bottom = 2130771970; + public static final int abc_popup_enter = 2130771971; + public static final int abc_popup_exit = 2130771972; + public static final int abc_shrink_fade_out_from_bottom = 2130771973; + public static final int abc_slide_in_bottom = 2130771974; + public static final int abc_slide_in_top = 2130771975; + public static final int abc_slide_out_bottom = 2130771976; + public static final int abc_slide_out_top = 2130771977; + public static final int abc_tooltip_enter = 2130771978; + public static final int abc_tooltip_exit = 2130771979; + } + + public static final class attr { + public static final int actionBarDivider = 2130837504; + public static final int actionBarItemBackground = 2130837505; + public static final int actionBarPopupTheme = 2130837506; + public static final int actionBarSize = 2130837507; + public static final int actionBarSplitStyle = 2130837508; + public static final int actionBarStyle = 2130837509; + public static final int actionBarTabBarStyle = 2130837510; + public static final int actionBarTabStyle = 2130837511; + public static final int actionBarTabTextStyle = 2130837512; + public static final int actionBarTheme = 2130837513; + public static final int actionBarWidgetTheme = 2130837514; + public static final int actionButtonStyle = 2130837515; + public static final int actionDropDownStyle = 2130837516; + public static final int actionLayout = 2130837517; + public static final int actionMenuTextAppearance = 2130837518; + public static final int actionMenuTextColor = 2130837519; + public static final int actionModeBackground = 2130837520; + public static final int actionModeCloseButtonStyle = 2130837521; + public static final int actionModeCloseDrawable = 2130837522; + public static final int actionModeCopyDrawable = 2130837523; + public static final int actionModeCutDrawable = 2130837524; + public static final int actionModeFindDrawable = 2130837525; + public static final int actionModePasteDrawable = 2130837526; + public static final int actionModePopupWindowStyle = 2130837527; + public static final int actionModeSelectAllDrawable = 2130837528; + public static final int actionModeShareDrawable = 2130837529; + public static final int actionModeSplitBackground = 2130837530; + public static final int actionModeStyle = 2130837531; + public static final int actionModeWebSearchDrawable = 2130837532; + public static final int actionOverflowButtonStyle = 2130837533; + public static final int actionOverflowMenuStyle = 2130837534; + public static final int actionProviderClass = 2130837535; + public static final int actionViewClass = 2130837536; + public static final int activityChooserViewStyle = 2130837537; + public static final int alertDialogButtonGroupStyle = 2130837538; + public static final int alertDialogCenterButtons = 2130837539; + public static final int alertDialogStyle = 2130837540; + public static final int alertDialogTheme = 2130837541; + public static final int allowStacking = 2130837542; + public static final int alpha = 2130837543; + public static final int alphabeticModifiers = 2130837544; + public static final int arrowHeadLength = 2130837545; + public static final int arrowShaftLength = 2130837546; + public static final int autoCompleteTextViewStyle = 2130837547; + public static final int autoSizeMaxTextSize = 2130837548; + public static final int autoSizeMinTextSize = 2130837549; + public static final int autoSizePresetSizes = 2130837550; + public static final int autoSizeStepGranularity = 2130837551; + public static final int autoSizeTextType = 2130837552; + public static final int background = 2130837553; + public static final int backgroundSplit = 2130837554; + public static final int backgroundStacked = 2130837555; + public static final int backgroundTint = 2130837556; + public static final int backgroundTintMode = 2130837557; + public static final int barLength = 2130837558; + public static final int barrierAllowsGoneWidgets = 2130837559; + public static final int barrierDirection = 2130837560; + public static final int borderlessButtonStyle = 2130837561; + public static final int buttonBarButtonStyle = 2130837562; + public static final int buttonBarNegativeButtonStyle = 2130837563; + public static final int buttonBarNeutralButtonStyle = 2130837564; + public static final int buttonBarPositiveButtonStyle = 2130837565; + public static final int buttonBarStyle = 2130837566; + public static final int buttonGravity = 2130837567; + public static final int buttonIconDimen = 2130837568; + public static final int buttonPanelSideLayout = 2130837569; + public static final int buttonStyle = 2130837570; + public static final int buttonStyleSmall = 2130837571; + public static final int buttonTint = 2130837572; + public static final int buttonTintMode = 2130837573; + public static final int chainUseRtl = 2130837574; + public static final int checkboxStyle = 2130837575; + public static final int checkedTextViewStyle = 2130837576; + public static final int closeIcon = 2130837577; + public static final int closeItemLayout = 2130837578; + public static final int collapseContentDescription = 2130837579; + public static final int collapseIcon = 2130837580; + public static final int color = 2130837581; + public static final int colorAccent = 2130837582; + public static final int colorBackgroundFloating = 2130837583; + public static final int colorButtonNormal = 2130837584; + public static final int colorControlActivated = 2130837585; + public static final int colorControlHighlight = 2130837586; + public static final int colorControlNormal = 2130837587; + public static final int colorError = 2130837588; + public static final int colorPrimary = 2130837589; + public static final int colorPrimaryDark = 2130837590; + public static final int colorSwitchThumbNormal = 2130837591; + public static final int commitIcon = 2130837592; + public static final int constraintSet = 2130837593; + public static final int constraint_referenced_ids = 2130837594; + public static final int content = 2130837595; + public static final int contentDescription = 2130837596; + public static final int contentInsetEnd = 2130837597; + public static final int contentInsetEndWithActions = 2130837598; + public static final int contentInsetLeft = 2130837599; + public static final int contentInsetRight = 2130837600; + public static final int contentInsetStart = 2130837601; + public static final int contentInsetStartWithNavigation = 2130837602; + public static final int controlBackground = 2130837603; + public static final int coordinatorLayoutStyle = 2130837604; + public static final int customNavigationLayout = 2130837605; + public static final int defaultQueryHint = 2130837606; + public static final int dialogCornerRadius = 2130837607; + public static final int dialogPreferredPadding = 2130837608; + public static final int dialogTheme = 2130837609; + public static final int displayOptions = 2130837610; + public static final int divider = 2130837611; + public static final int dividerHorizontal = 2130837612; + public static final int dividerPadding = 2130837613; + public static final int dividerVertical = 2130837614; + public static final int drawableSize = 2130837615; + public static final int drawerArrowStyle = 2130837616; + public static final int dropDownListViewStyle = 2130837617; + public static final int dropdownListPreferredItemHeight = 2130837618; + public static final int editTextBackground = 2130837619; + public static final int editTextColor = 2130837620; + public static final int editTextStyle = 2130837621; + public static final int elevation = 2130837622; + public static final int emptyVisibility = 2130837623; + public static final int expandActivityOverflowButtonDrawable = 2130837624; + public static final int firstBaselineToTopHeight = 2130837625; + public static final int font = 2130837626; + public static final int fontFamily = 2130837627; + public static final int fontProviderAuthority = 2130837628; + public static final int fontProviderCerts = 2130837629; + public static final int fontProviderFetchStrategy = 2130837630; + public static final int fontProviderFetchTimeout = 2130837631; + public static final int fontProviderPackage = 2130837632; + public static final int fontProviderQuery = 2130837633; + public static final int fontStyle = 2130837634; + public static final int fontVariationSettings = 2130837635; + public static final int fontWeight = 2130837636; + public static final int gapBetweenBars = 2130837637; + public static final int goIcon = 2130837638; + public static final int height = 2130837639; + public static final int hideOnContentScroll = 2130837640; + public static final int homeAsUpIndicator = 2130837641; + public static final int homeLayout = 2130837642; + public static final int icon = 2130837643; + public static final int iconTint = 2130837644; + public static final int iconTintMode = 2130837645; + public static final int iconifiedByDefault = 2130837646; + public static final int imageButtonStyle = 2130837647; + public static final int indeterminateProgressStyle = 2130837648; + public static final int initialActivityCount = 2130837649; + public static final int isLightTheme = 2130837650; + public static final int itemPadding = 2130837651; + public static final int keylines = 2130837652; + public static final int lastBaselineToBottomHeight = 2130837653; + public static final int layout = 2130837654; + public static final int layout_anchor = 2130837655; + public static final int layout_anchorGravity = 2130837656; + public static final int layout_behavior = 2130837657; + public static final int layout_constrainedHeight = 2130837658; + public static final int layout_constrainedWidth = 2130837659; + public static final int layout_constraintBaseline_creator = 2130837660; + public static final int layout_constraintBaseline_toBaselineOf = 2130837661; + public static final int layout_constraintBottom_creator = 2130837662; + public static final int layout_constraintBottom_toBottomOf = 2130837663; + public static final int layout_constraintBottom_toTopOf = 2130837664; + public static final int layout_constraintCircle = 2130837665; + public static final int layout_constraintCircleAngle = 2130837666; + public static final int layout_constraintCircleRadius = 2130837667; + public static final int layout_constraintDimensionRatio = 2130837668; + public static final int layout_constraintEnd_toEndOf = 2130837669; + public static final int layout_constraintEnd_toStartOf = 2130837670; + public static final int layout_constraintGuide_begin = 2130837671; + public static final int layout_constraintGuide_end = 2130837672; + public static final int layout_constraintGuide_percent = 2130837673; + public static final int layout_constraintHeight_default = 2130837674; + public static final int layout_constraintHeight_max = 2130837675; + public static final int layout_constraintHeight_min = 2130837676; + public static final int layout_constraintHeight_percent = 2130837677; + public static final int layout_constraintHorizontal_bias = 2130837678; + public static final int layout_constraintHorizontal_chainStyle = 2130837679; + public static final int layout_constraintHorizontal_weight = 2130837680; + public static final int layout_constraintLeft_creator = 2130837681; + public static final int layout_constraintLeft_toLeftOf = 2130837682; + public static final int layout_constraintLeft_toRightOf = 2130837683; + public static final int layout_constraintRight_creator = 2130837684; + public static final int layout_constraintRight_toLeftOf = 2130837685; + public static final int layout_constraintRight_toRightOf = 2130837686; + public static final int layout_constraintStart_toEndOf = 2130837687; + public static final int layout_constraintStart_toStartOf = 2130837688; + public static final int layout_constraintTop_creator = 2130837689; + public static final int layout_constraintTop_toBottomOf = 2130837690; + public static final int layout_constraintTop_toTopOf = 2130837691; + public static final int layout_constraintVertical_bias = 2130837692; + public static final int layout_constraintVertical_chainStyle = 2130837693; + public static final int layout_constraintVertical_weight = 2130837694; + public static final int layout_constraintWidth_default = 2130837695; + public static final int layout_constraintWidth_max = 2130837696; + public static final int layout_constraintWidth_min = 2130837697; + public static final int layout_constraintWidth_percent = 2130837698; + public static final int layout_dodgeInsetEdges = 2130837699; + public static final int layout_editor_absoluteX = 2130837700; + public static final int layout_editor_absoluteY = 2130837701; + public static final int layout_goneMarginBottom = 2130837702; + public static final int layout_goneMarginEnd = 2130837703; + public static final int layout_goneMarginLeft = 2130837704; + public static final int layout_goneMarginRight = 2130837705; + public static final int layout_goneMarginStart = 2130837706; + public static final int layout_goneMarginTop = 2130837707; + public static final int layout_insetEdge = 2130837708; + public static final int layout_keyline = 2130837709; + public static final int layout_optimizationLevel = 2130837710; + public static final int lineHeight = 2130837711; + public static final int listChoiceBackgroundIndicator = 2130837712; + public static final int listDividerAlertDialog = 2130837713; + public static final int listItemLayout = 2130837714; + public static final int listLayout = 2130837715; + public static final int listMenuViewStyle = 2130837716; + public static final int listPopupWindowStyle = 2130837717; + public static final int listPreferredItemHeight = 2130837718; + public static final int listPreferredItemHeightLarge = 2130837719; + public static final int listPreferredItemHeightSmall = 2130837720; + public static final int listPreferredItemPaddingLeft = 2130837721; + public static final int listPreferredItemPaddingRight = 2130837722; + public static final int logo = 2130837723; + public static final int logoDescription = 2130837724; + public static final int maxButtonHeight = 2130837725; + public static final int measureWithLargestChild = 2130837726; + public static final int multiChoiceItemLayout = 2130837727; + public static final int navigationContentDescription = 2130837728; + public static final int navigationIcon = 2130837729; + public static final int navigationMode = 2130837730; + public static final int numericModifiers = 2130837731; + public static final int overlapAnchor = 2130837732; + public static final int paddingBottomNoButtons = 2130837733; + public static final int paddingEnd = 2130837734; + public static final int paddingStart = 2130837735; + public static final int paddingTopNoTitle = 2130837736; + public static final int panelBackground = 2130837737; + public static final int panelMenuListTheme = 2130837738; + public static final int panelMenuListWidth = 2130837739; + public static final int popupMenuStyle = 2130837740; + public static final int popupTheme = 2130837741; + public static final int popupWindowStyle = 2130837742; + public static final int preserveIconSpacing = 2130837743; + public static final int progressBarPadding = 2130837744; + public static final int progressBarStyle = 2130837745; + public static final int queryBackground = 2130837746; + public static final int queryHint = 2130837747; + public static final int radioButtonStyle = 2130837748; + public static final int ratingBarStyle = 2130837749; + public static final int ratingBarStyleIndicator = 2130837750; + public static final int ratingBarStyleSmall = 2130837751; + public static final int searchHintIcon = 2130837752; + public static final int searchIcon = 2130837753; + public static final int searchViewStyle = 2130837754; + public static final int seekBarStyle = 2130837755; + public static final int selectableItemBackground = 2130837756; + public static final int selectableItemBackgroundBorderless = 2130837757; + public static final int showAsAction = 2130837758; + public static final int showDividers = 2130837759; + public static final int showText = 2130837760; + public static final int showTitle = 2130837761; + public static final int singleChoiceItemLayout = 2130837762; + public static final int spinBars = 2130837763; + public static final int spinnerDropDownItemStyle = 2130837764; + public static final int spinnerStyle = 2130837765; + public static final int splitTrack = 2130837766; + public static final int srcCompat = 2130837767; + public static final int state_above_anchor = 2130837768; + public static final int statusBarBackground = 2130837769; + public static final int subMenuArrow = 2130837770; + public static final int submitBackground = 2130837771; + public static final int subtitle = 2130837772; + public static final int subtitleTextAppearance = 2130837773; + public static final int subtitleTextColor = 2130837774; + public static final int subtitleTextStyle = 2130837775; + public static final int suggestionRowLayout = 2130837776; + public static final int switchMinWidth = 2130837777; + public static final int switchPadding = 2130837778; + public static final int switchStyle = 2130837779; + public static final int switchTextAppearance = 2130837780; + public static final int textAllCaps = 2130837781; + public static final int textAppearanceLargePopupMenu = 2130837782; + public static final int textAppearanceListItem = 2130837783; + public static final int textAppearanceListItemSecondary = 2130837784; + public static final int textAppearanceListItemSmall = 2130837785; + public static final int textAppearancePopupMenuHeader = 2130837786; + public static final int textAppearanceSearchResultSubtitle = 2130837787; + public static final int textAppearanceSearchResultTitle = 2130837788; + public static final int textAppearanceSmallPopupMenu = 2130837789; + public static final int textColorAlertDialogListItem = 2130837790; + public static final int textColorSearchUrl = 2130837791; + public static final int theme = 2130837792; + public static final int thickness = 2130837793; + public static final int thumbTextPadding = 2130837794; + public static final int thumbTint = 2130837795; + public static final int thumbTintMode = 2130837796; + public static final int tickMark = 2130837797; + public static final int tickMarkTint = 2130837798; + public static final int tickMarkTintMode = 2130837799; + public static final int tint = 2130837800; + public static final int tintMode = 2130837801; + public static final int title = 2130837802; + public static final int titleMargin = 2130837803; + public static final int titleMarginBottom = 2130837804; + public static final int titleMarginEnd = 2130837805; + public static final int titleMarginStart = 2130837806; + public static final int titleMarginTop = 2130837807; + public static final int titleMargins = 2130837808; + public static final int titleTextAppearance = 2130837809; + public static final int titleTextColor = 2130837810; + public static final int titleTextStyle = 2130837811; + public static final int toolbarNavigationButtonStyle = 2130837812; + public static final int toolbarStyle = 2130837813; + public static final int tooltipForegroundColor = 2130837814; + public static final int tooltipFrameBackground = 2130837815; + public static final int tooltipText = 2130837816; + public static final int track = 2130837817; + public static final int trackTint = 2130837818; + public static final int trackTintMode = 2130837819; + public static final int ttcIndex = 2130837820; + public static final int viewInflaterClass = 2130837821; + public static final int voiceIcon = 2130837822; + public static final int windowActionBar = 2130837823; + public static final int windowActionBarOverlay = 2130837824; + public static final int windowActionModeOverlay = 2130837825; + public static final int windowFixedHeightMajor = 2130837826; + public static final int windowFixedHeightMinor = 2130837827; + public static final int windowFixedWidthMajor = 2130837828; + public static final int windowFixedWidthMinor = 2130837829; + public static final int windowMinWidthMajor = 2130837830; + public static final int windowMinWidthMinor = 2130837831; + public static final int windowNoTitle = 2130837832; + } + + public static final class bool { + public static final int abc_action_bar_embed_tabs = 2130903040; + public static final int abc_allow_stacked_button_bar = 2130903041; + public static final int abc_config_actionMenuItemAllCaps = 2130903042; + } + + public static final class color { + public static final int abc_background_cache_hint_selector_material_dark = 2130968576; + public static final int abc_background_cache_hint_selector_material_light = 2130968577; + public static final int abc_btn_colored_borderless_text_material = 2130968578; + public static final int abc_btn_colored_text_material = 2130968579; + public static final int abc_color_highlight_material = 2130968580; + public static final int abc_hint_foreground_material_dark = 2130968581; + public static final int abc_hint_foreground_material_light = 2130968582; + public static final int abc_input_method_navigation_guard = 2130968583; + public static final int abc_primary_text_disable_only_material_dark = 2130968584; + public static final int abc_primary_text_disable_only_material_light = 2130968585; + public static final int abc_primary_text_material_dark = 2130968586; + public static final int abc_primary_text_material_light = 2130968587; + public static final int abc_search_url_text = 2130968588; + public static final int abc_search_url_text_normal = 2130968589; + public static final int abc_search_url_text_pressed = 2130968590; + public static final int abc_search_url_text_selected = 2130968591; + public static final int abc_secondary_text_material_dark = 2130968592; + public static final int abc_secondary_text_material_light = 2130968593; + public static final int abc_tint_btn_checkable = 2130968594; + public static final int abc_tint_default = 2130968595; + public static final int abc_tint_edittext = 2130968596; + public static final int abc_tint_seek_thumb = 2130968597; + public static final int abc_tint_spinner = 2130968598; + public static final int abc_tint_switch_track = 2130968599; + public static final int accent_material_dark = 2130968600; + public static final int accent_material_light = 2130968601; + public static final int background_floating_material_dark = 2130968602; + public static final int background_floating_material_light = 2130968603; + public static final int background_material_dark = 2130968604; + public static final int background_material_light = 2130968605; + public static final int bright_foreground_disabled_material_dark = 2130968606; + public static final int bright_foreground_disabled_material_light = 2130968607; + public static final int bright_foreground_inverse_material_dark = 2130968608; + public static final int bright_foreground_inverse_material_light = 2130968609; + public static final int bright_foreground_material_dark = 2130968610; + public static final int bright_foreground_material_light = 2130968611; + public static final int button_material_dark = 2130968612; + public static final int button_material_light = 2130968613; + public static final int colorAccent = 2130968614; + public static final int colorPrimary = 2130968615; + public static final int colorPrimaryDark = 2130968616; + public static final int dim_foreground_disabled_material_dark = 2130968617; + public static final int dim_foreground_disabled_material_light = 2130968618; + public static final int dim_foreground_material_dark = 2130968619; + public static final int dim_foreground_material_light = 2130968620; + public static final int error_color_material_dark = 2130968621; + public static final int error_color_material_light = 2130968622; + public static final int foreground_material_dark = 2130968623; + public static final int foreground_material_light = 2130968624; + public static final int highlighted_text_material_dark = 2130968625; + public static final int highlighted_text_material_light = 2130968626; + public static final int material_blue_grey_800 = 2130968627; + public static final int material_blue_grey_900 = 2130968628; + public static final int material_blue_grey_950 = 2130968629; + public static final int material_deep_teal_200 = 2130968630; + public static final int material_deep_teal_500 = 2130968631; + public static final int material_grey_100 = 2130968632; + public static final int material_grey_300 = 2130968633; + public static final int material_grey_50 = 2130968634; + public static final int material_grey_600 = 2130968635; + public static final int material_grey_800 = 2130968636; + public static final int material_grey_850 = 2130968637; + public static final int material_grey_900 = 2130968638; + public static final int notification_action_color_filter = 2130968639; + public static final int notification_icon_bg_color = 2130968640; + public static final int primary_dark_material_dark = 2130968641; + public static final int primary_dark_material_light = 2130968642; + public static final int primary_material_dark = 2130968643; + public static final int primary_material_light = 2130968644; + public static final int primary_text_default_material_dark = 2130968645; + public static final int primary_text_default_material_light = 2130968646; + public static final int primary_text_disabled_material_dark = 2130968647; + public static final int primary_text_disabled_material_light = 2130968648; + public static final int ripple_material_dark = 2130968649; + public static final int ripple_material_light = 2130968650; + public static final int secondary_text_default_material_dark = 2130968651; + public static final int secondary_text_default_material_light = 2130968652; + public static final int secondary_text_disabled_material_dark = 2130968653; + public static final int secondary_text_disabled_material_light = 2130968654; + public static final int switch_thumb_disabled_material_dark = 2130968655; + public static final int switch_thumb_disabled_material_light = 2130968656; + public static final int switch_thumb_material_dark = 2130968657; + public static final int switch_thumb_material_light = 2130968658; + public static final int switch_thumb_normal_material_dark = 2130968659; + public static final int switch_thumb_normal_material_light = 2130968660; + public static final int tooltip_background_dark = 2130968661; + public static final int tooltip_background_light = 2130968662; + } + + public static final class dimen { + public static final int abc_action_bar_content_inset_material = 2131034112; + public static final int abc_action_bar_content_inset_with_nav = 2131034113; + public static final int abc_action_bar_default_height_material = 2131034114; + public static final int abc_action_bar_default_padding_end_material = 2131034115; + public static final int abc_action_bar_default_padding_start_material = 2131034116; + public static final int abc_action_bar_elevation_material = 2131034117; + public static final int abc_action_bar_icon_vertical_padding_material = 2131034118; + public static final int abc_action_bar_overflow_padding_end_material = 2131034119; + public static final int abc_action_bar_overflow_padding_start_material = 2131034120; + public static final int abc_action_bar_stacked_max_height = 2131034121; + public static final int abc_action_bar_stacked_tab_max_width = 2131034122; + public static final int abc_action_bar_subtitle_bottom_margin_material = 2131034123; + public static final int abc_action_bar_subtitle_top_margin_material = 2131034124; + public static final int abc_action_button_min_height_material = 2131034125; + public static final int abc_action_button_min_width_material = 2131034126; + public static final int abc_action_button_min_width_overflow_material = 2131034127; + public static final int abc_alert_dialog_button_bar_height = 2131034128; + public static final int abc_alert_dialog_button_dimen = 2131034129; + public static final int abc_button_inset_horizontal_material = 2131034130; + public static final int abc_button_inset_vertical_material = 2131034131; + public static final int abc_button_padding_horizontal_material = 2131034132; + public static final int abc_button_padding_vertical_material = 2131034133; + public static final int abc_cascading_menus_min_smallest_width = 2131034134; + public static final int abc_config_prefDialogWidth = 2131034135; + public static final int abc_control_corner_material = 2131034136; + public static final int abc_control_inset_material = 2131034137; + public static final int abc_control_padding_material = 2131034138; + public static final int abc_dialog_corner_radius_material = 2131034139; + public static final int abc_dialog_fixed_height_major = 2131034140; + public static final int abc_dialog_fixed_height_minor = 2131034141; + public static final int abc_dialog_fixed_width_major = 2131034142; + public static final int abc_dialog_fixed_width_minor = 2131034143; + public static final int abc_dialog_list_padding_bottom_no_buttons = 2131034144; + public static final int abc_dialog_list_padding_top_no_title = 2131034145; + public static final int abc_dialog_min_width_major = 2131034146; + public static final int abc_dialog_min_width_minor = 2131034147; + public static final int abc_dialog_padding_material = 2131034148; + public static final int abc_dialog_padding_top_material = 2131034149; + public static final int abc_dialog_title_divider_material = 2131034150; + public static final int abc_disabled_alpha_material_dark = 2131034151; + public static final int abc_disabled_alpha_material_light = 2131034152; + public static final int abc_dropdownitem_icon_width = 2131034153; + public static final int abc_dropdownitem_text_padding_left = 2131034154; + public static final int abc_dropdownitem_text_padding_right = 2131034155; + public static final int abc_edit_text_inset_bottom_material = 2131034156; + public static final int abc_edit_text_inset_horizontal_material = 2131034157; + public static final int abc_edit_text_inset_top_material = 2131034158; + public static final int abc_floating_window_z = 2131034159; + public static final int abc_list_item_padding_horizontal_material = 2131034160; + public static final int abc_panel_menu_list_width = 2131034161; + public static final int abc_progress_bar_height_material = 2131034162; + public static final int abc_search_view_preferred_height = 2131034163; + public static final int abc_search_view_preferred_width = 2131034164; + public static final int abc_seekbar_track_background_height_material = 2131034165; + public static final int abc_seekbar_track_progress_height_material = 2131034166; + public static final int abc_select_dialog_padding_start_material = 2131034167; + public static final int abc_switch_padding = 2131034168; + public static final int abc_text_size_body_1_material = 2131034169; + public static final int abc_text_size_body_2_material = 2131034170; + public static final int abc_text_size_button_material = 2131034171; + public static final int abc_text_size_caption_material = 2131034172; + public static final int abc_text_size_display_1_material = 2131034173; + public static final int abc_text_size_display_2_material = 2131034174; + public static final int abc_text_size_display_3_material = 2131034175; + public static final int abc_text_size_display_4_material = 2131034176; + public static final int abc_text_size_headline_material = 2131034177; + public static final int abc_text_size_large_material = 2131034178; + public static final int abc_text_size_medium_material = 2131034179; + public static final int abc_text_size_menu_header_material = 2131034180; + public static final int abc_text_size_menu_material = 2131034181; + public static final int abc_text_size_small_material = 2131034182; + public static final int abc_text_size_subhead_material = 2131034183; + public static final int abc_text_size_subtitle_material_toolbar = 2131034184; + public static final int abc_text_size_title_material = 2131034185; + public static final int abc_text_size_title_material_toolbar = 2131034186; + public static final int compat_button_inset_horizontal_material = 2131034187; + public static final int compat_button_inset_vertical_material = 2131034188; + public static final int compat_button_padding_horizontal_material = 2131034189; + public static final int compat_button_padding_vertical_material = 2131034190; + public static final int compat_control_corner_material = 2131034191; + public static final int compat_notification_large_icon_max_height = 2131034192; + public static final int compat_notification_large_icon_max_width = 2131034193; + public static final int disabled_alpha_material_dark = 2131034194; + public static final int disabled_alpha_material_light = 2131034195; + public static final int highlight_alpha_material_colored = 2131034196; + public static final int highlight_alpha_material_dark = 2131034197; + public static final int highlight_alpha_material_light = 2131034198; + public static final int hint_alpha_material_dark = 2131034199; + public static final int hint_alpha_material_light = 2131034200; + public static final int hint_pressed_alpha_material_dark = 2131034201; + public static final int hint_pressed_alpha_material_light = 2131034202; + public static final int notification_action_icon_size = 2131034203; + public static final int notification_action_text_size = 2131034204; + public static final int notification_big_circle_margin = 2131034205; + public static final int notification_content_margin_start = 2131034206; + public static final int notification_large_icon_height = 2131034207; + public static final int notification_large_icon_width = 2131034208; + public static final int notification_main_column_padding_top = 2131034209; + public static final int notification_media_narrow_margin = 2131034210; + public static final int notification_right_icon_size = 2131034211; + public static final int notification_right_side_padding_top = 2131034212; + public static final int notification_small_icon_background_padding = 2131034213; + public static final int notification_small_icon_size_as_large = 2131034214; + public static final int notification_subtext_size = 2131034215; + public static final int notification_top_pad = 2131034216; + public static final int notification_top_pad_large_text = 2131034217; + public static final int tooltip_corner_radius = 2131034218; + public static final int tooltip_horizontal_padding = 2131034219; + public static final int tooltip_margin = 2131034220; + public static final int tooltip_precise_anchor_extra_offset = 2131034221; + public static final int tooltip_precise_anchor_threshold = 2131034222; + public static final int tooltip_vertical_padding = 2131034223; + public static final int tooltip_y_offset_non_touch = 2131034224; + public static final int tooltip_y_offset_touch = 2131034225; + } + + public static final class drawable { + public static final int $ic_launcher_foreground__0 = 2131099648; + public static final int abc_ab_share_pack_mtrl_alpha = 2131099649; + public static final int abc_action_bar_item_background_material = 2131099650; + public static final int abc_btn_borderless_material = 2131099651; + public static final int abc_btn_check_material = 2131099652; + public static final int abc_btn_check_to_on_mtrl_000 = 2131099653; + public static final int abc_btn_check_to_on_mtrl_015 = 2131099654; + public static final int abc_btn_colored_material = 2131099655; + public static final int abc_btn_default_mtrl_shape = 2131099656; + public static final int abc_btn_radio_material = 2131099657; + public static final int abc_btn_radio_to_on_mtrl_000 = 2131099658; + public static final int abc_btn_radio_to_on_mtrl_015 = 2131099659; + public static final int abc_btn_switch_to_on_mtrl_00001 = 2131099660; + public static final int abc_btn_switch_to_on_mtrl_00012 = 2131099661; + public static final int abc_cab_background_internal_bg = 2131099662; + public static final int abc_cab_background_top_material = 2131099663; + public static final int abc_cab_background_top_mtrl_alpha = 2131099664; + public static final int abc_control_background_material = 2131099665; + public static final int abc_dialog_material_background = 2131099666; + public static final int abc_edit_text_material = 2131099667; + public static final int abc_ic_ab_back_material = 2131099668; + public static final int abc_ic_arrow_drop_right_black_24dp = 2131099669; + public static final int abc_ic_clear_material = 2131099670; + public static final int abc_ic_commit_search_api_mtrl_alpha = 2131099671; + public static final int abc_ic_go_search_api_material = 2131099672; + public static final int abc_ic_menu_copy_mtrl_am_alpha = 2131099673; + public static final int abc_ic_menu_cut_mtrl_alpha = 2131099674; + public static final int abc_ic_menu_overflow_material = 2131099675; + public static final int abc_ic_menu_paste_mtrl_am_alpha = 2131099676; + public static final int abc_ic_menu_selectall_mtrl_alpha = 2131099677; + public static final int abc_ic_menu_share_mtrl_alpha = 2131099678; + public static final int abc_ic_search_api_material = 2131099679; + public static final int abc_ic_star_black_16dp = 2131099680; + public static final int abc_ic_star_black_36dp = 2131099681; + public static final int abc_ic_star_black_48dp = 2131099682; + public static final int abc_ic_star_half_black_16dp = 2131099683; + public static final int abc_ic_star_half_black_36dp = 2131099684; + public static final int abc_ic_star_half_black_48dp = 2131099685; + public static final int abc_ic_voice_search_api_material = 2131099686; + public static final int abc_item_background_holo_dark = 2131099687; + public static final int abc_item_background_holo_light = 2131099688; + public static final int abc_list_divider_material = 2131099689; + public static final int abc_list_divider_mtrl_alpha = 2131099690; + public static final int abc_list_focused_holo = 2131099691; + public static final int abc_list_longpressed_holo = 2131099692; + public static final int abc_list_pressed_holo_dark = 2131099693; + public static final int abc_list_pressed_holo_light = 2131099694; + public static final int abc_list_selector_background_transition_holo_dark = 2131099695; + public static final int abc_list_selector_background_transition_holo_light = 2131099696; + public static final int abc_list_selector_disabled_holo_dark = 2131099697; + public static final int abc_list_selector_disabled_holo_light = 2131099698; + public static final int abc_list_selector_holo_dark = 2131099699; + public static final int abc_list_selector_holo_light = 2131099700; + public static final int abc_menu_hardkey_panel_mtrl_mult = 2131099701; + public static final int abc_popup_background_mtrl_mult = 2131099702; + public static final int abc_ratingbar_indicator_material = 2131099703; + public static final int abc_ratingbar_material = 2131099704; + public static final int abc_ratingbar_small_material = 2131099705; + public static final int abc_scrubber_control_off_mtrl_alpha = 2131099706; + public static final int abc_scrubber_control_to_pressed_mtrl_000 = 2131099707; + public static final int abc_scrubber_control_to_pressed_mtrl_005 = 2131099708; + public static final int abc_scrubber_primary_mtrl_alpha = 2131099709; + public static final int abc_scrubber_track_mtrl_alpha = 2131099710; + public static final int abc_seekbar_thumb_material = 2131099711; + public static final int abc_seekbar_tick_mark_material = 2131099712; + public static final int abc_seekbar_track_material = 2131099713; + public static final int abc_spinner_mtrl_am_alpha = 2131099714; + public static final int abc_spinner_textfield_background_material = 2131099715; + public static final int abc_switch_thumb_material = 2131099716; + public static final int abc_switch_track_mtrl_alpha = 2131099717; + public static final int abc_tab_indicator_material = 2131099718; + public static final int abc_tab_indicator_mtrl_alpha = 2131099719; + public static final int abc_text_cursor_material = 2131099720; + public static final int abc_text_select_handle_left_mtrl_dark = 2131099721; + public static final int abc_text_select_handle_left_mtrl_light = 2131099722; + public static final int abc_text_select_handle_middle_mtrl_dark = 2131099723; + public static final int abc_text_select_handle_middle_mtrl_light = 2131099724; + public static final int abc_text_select_handle_right_mtrl_dark = 2131099725; + public static final int abc_text_select_handle_right_mtrl_light = 2131099726; + public static final int abc_textfield_activated_mtrl_alpha = 2131099727; + public static final int abc_textfield_default_mtrl_alpha = 2131099728; + public static final int abc_textfield_search_activated_mtrl_alpha = 2131099729; + public static final int abc_textfield_search_default_mtrl_alpha = 2131099730; + public static final int abc_textfield_search_material = 2131099731; + public static final int abc_vector_test = 2131099732; + public static final int ic_launcher_background = 2131099733; + public static final int ic_launcher_foreground = 2131099734; + public static final int notification_action_background = 2131099735; + public static final int notification_bg = 2131099736; + public static final int notification_bg_low = 2131099737; + public static final int notification_bg_low_normal = 2131099738; + public static final int notification_bg_low_pressed = 2131099739; + public static final int notification_bg_normal = 2131099740; + public static final int notification_bg_normal_pressed = 2131099741; + public static final int notification_icon_background = 2131099742; + public static final int notification_template_icon_bg = 2131099743; + public static final int notification_template_icon_low_bg = 2131099744; + public static final int notification_tile_bg = 2131099745; + public static final int notify_panel_notification_icon_bg = 2131099746; + public static final int tooltip_frame_dark = 2131099747; + public static final int tooltip_frame_light = 2131099748; + } + + public static final class id { + public static final int ALT = 2131165184; + public static final int CTRL = 2131165185; + public static final int FUNCTION = 2131165186; + public static final int META = 2131165187; + public static final int SHIFT = 2131165188; + public static final int SYM = 2131165189; + public static final int action_bar = 2131165190; + public static final int action_bar_activity_content = 2131165191; + public static final int action_bar_container = 2131165192; + public static final int action_bar_root = 2131165193; + public static final int action_bar_spinner = 2131165194; + public static final int action_bar_subtitle = 2131165195; + public static final int action_bar_title = 2131165196; + public static final int action_container = 2131165197; + public static final int action_context_bar = 2131165198; + public static final int action_divider = 2131165199; + public static final int action_image = 2131165200; + public static final int action_menu_divider = 2131165201; + public static final int action_menu_presenter = 2131165202; + public static final int action_mode_bar = 2131165203; + public static final int action_mode_bar_stub = 2131165204; + public static final int action_mode_close_button = 2131165205; + public static final int action_text = 2131165206; + public static final int actions = 2131165207; + public static final int activity_chooser_view_content = 2131165208; + public static final int add = 2131165209; + public static final int alertTitle = 2131165210; + public static final int all = 2131165211; + public static final int always = 2131165212; + public static final int async = 2131165213; + public static final int barrier = 2131165214; + public static final int beginning = 2131165215; + public static final int blocking = 2131165216; + public static final int bottom = 2131165217; + public static final int button = 2131165218; + public static final int buttonPanel = 2131165219; + public static final int center = 2131165220; + public static final int center_horizontal = 2131165221; + public static final int center_vertical = 2131165222; + public static final int chains = 2131165223; + public static final int checkbox = 2131165224; + public static final int chronometer = 2131165225; + public static final int ciphertext = 2131165226; + public static final int clip_horizontal = 2131165227; + public static final int clip_vertical = 2131165228; + public static final int collapseActionView = 2131165229; + public static final int content = 2131165230; + public static final int contentPanel = 2131165231; + public static final int custom = 2131165232; + public static final int customPanel = 2131165233; + public static final int decor_content_parent = 2131165234; + public static final int default_activity_button = 2131165235; + public static final int dimensions = 2131165236; + public static final int direct = 2131165237; + public static final int disableHome = 2131165238; + public static final int edit_query = 2131165239; + public static final int end = 2131165240; + public static final int expand_activities_button = 2131165241; + public static final int expanded_menu = 2131165242; + public static final int fill = 2131165243; + public static final int fill_horizontal = 2131165244; + public static final int fill_vertical = 2131165245; + public static final int forever = 2131165246; + public static final int gone = 2131165247; + public static final int group_divider = 2131165248; + public static final int groups = 2131165249; + public static final int home = 2131165250; + public static final int homeAsUp = 2131165251; + public static final int icon = 2131165252; + public static final int icon_group = 2131165253; + public static final int ifRoom = 2131165254; + public static final int image = 2131165255; + public static final int info = 2131165256; + public static final int invisible = 2131165257; + public static final int italic = 2131165258; + public static final int left = 2131165259; + public static final int line1 = 2131165260; + public static final int line3 = 2131165261; + public static final int listMode = 2131165262; + public static final int list_item = 2131165263; + public static final int message = 2131165264; + public static final int middle = 2131165265; + public static final int multiply = 2131165266; + public static final int never = 2131165267; + public static final int none = 2131165268; + public static final int normal = 2131165269; + public static final int notification_background = 2131165270; + public static final int notification_main_column = 2131165271; + public static final int notification_main_column_container = 2131165272; + public static final int packed = 2131165273; + public static final int parent = 2131165274; + public static final int parentPanel = 2131165275; + public static final int percent = 2131165276; + public static final int plaintext = 2131165277; + public static final int progress_circular = 2131165278; + public static final int progress_horizontal = 2131165279; + public static final int radio = 2131165280; + public static final int right = 2131165281; + public static final int right_icon = 2131165282; + public static final int right_side = 2131165283; + public static final int screen = 2131165284; + public static final int scrollIndicatorDown = 2131165285; + public static final int scrollIndicatorUp = 2131165286; + public static final int scrollView = 2131165287; + public static final int search_badge = 2131165288; + public static final int search_bar = 2131165289; + public static final int search_button = 2131165290; + public static final int search_close_btn = 2131165291; + public static final int search_edit_frame = 2131165292; + public static final int search_go_btn = 2131165293; + public static final int search_mag_icon = 2131165294; + public static final int search_plate = 2131165295; + public static final int search_src_text = 2131165296; + public static final int search_voice_btn = 2131165297; + public static final int select_dialog_listview = 2131165298; + public static final int shortcut = 2131165299; + public static final int showCustom = 2131165300; + public static final int showHome = 2131165301; + public static final int showTitle = 2131165302; + public static final int spacer = 2131165303; + public static final int split_action_bar = 2131165304; + public static final int spread = 2131165305; + public static final int spread_inside = 2131165306; + public static final int src_atop = 2131165307; + public static final int src_in = 2131165308; + public static final int src_over = 2131165309; + public static final int standard = 2131165310; + public static final int start = 2131165311; + public static final int submenuarrow = 2131165312; + public static final int submit_area = 2131165313; + public static final int tabMode = 2131165314; + public static final int tag_transition_group = 2131165315; + public static final int tag_unhandled_key_event_manager = 2131165316; + public static final int tag_unhandled_key_listeners = 2131165317; + public static final int text = 2131165318; + public static final int text2 = 2131165319; + public static final int textSpacerNoButtons = 2131165320; + public static final int textSpacerNoTitle = 2131165321; + public static final int time = 2131165322; + public static final int title = 2131165323; + public static final int titleDividerNoCustom = 2131165324; + public static final int title_template = 2131165325; + public static final int top = 2131165326; + public static final int topPanel = 2131165327; + public static final int uniform = 2131165328; + public static final int up = 2131165329; + public static final int useLogo = 2131165330; + public static final int withText = 2131165331; + public static final int wrap = 2131165332; + public static final int wrap_content = 2131165333; + } + + public static final class integer { + public static final int abc_config_activityDefaultDur = 2131230720; + public static final int abc_config_activityShortDur = 2131230721; + public static final int cancel_button_image_alpha = 2131230722; + public static final int config_tooltipAnimTime = 2131230723; + public static final int status_bar_notification_info_maxnum = 2131230724; + } + + public static final class layout { + public static final int abc_action_bar_title_item = 2131296256; + public static final int abc_action_bar_up_container = 2131296257; + public static final int abc_action_menu_item_layout = 2131296258; + public static final int abc_action_menu_layout = 2131296259; + public static final int abc_action_mode_bar = 2131296260; + public static final int abc_action_mode_close_item_material = 2131296261; + public static final int abc_activity_chooser_view = 2131296262; + public static final int abc_activity_chooser_view_list_item = 2131296263; + public static final int abc_alert_dialog_button_bar_material = 2131296264; + public static final int abc_alert_dialog_material = 2131296265; + public static final int abc_alert_dialog_title_material = 2131296266; + public static final int abc_cascading_menu_item_layout = 2131296267; + public static final int abc_dialog_title_material = 2131296268; + public static final int abc_expanded_menu_layout = 2131296269; + public static final int abc_list_menu_item_checkbox = 2131296270; + public static final int abc_list_menu_item_icon = 2131296271; + public static final int abc_list_menu_item_layout = 2131296272; + public static final int abc_list_menu_item_radio = 2131296273; + public static final int abc_popup_menu_header_item_layout = 2131296274; + public static final int abc_popup_menu_item_layout = 2131296275; + public static final int abc_screen_content_include = 2131296276; + public static final int abc_screen_simple = 2131296277; + public static final int abc_screen_simple_overlay_action_mode = 2131296278; + public static final int abc_screen_toolbar = 2131296279; + public static final int abc_search_dropdown_item_icons_2line = 2131296280; + public static final int abc_search_view = 2131296281; + public static final int abc_select_dialog_material = 2131296282; + public static final int abc_tooltip = 2131296283; + public static final int activity_main = 2131296284; + public static final int notification_action = 2131296285; + public static final int notification_action_tombstone = 2131296286; + public static final int notification_template_custom_big = 2131296287; + public static final int notification_template_icon_group = 2131296288; + public static final int notification_template_part_chronometer = 2131296289; + public static final int notification_template_part_time = 2131296290; + public static final int select_dialog_item_material = 2131296291; + public static final int select_dialog_multichoice_material = 2131296292; + public static final int select_dialog_singlechoice_material = 2131296293; + public static final int support_simple_spinner_dropdown_item = 2131296294; + } + + public static final class mipmap { + public static final int ic_launcher = 2131361792; + public static final int ic_launcher_round = 2131361793; + } + + public static final class string { + public static final int abc_action_bar_home_description = 2131427328; + public static final int abc_action_bar_up_description = 2131427329; + public static final int abc_action_menu_overflow_description = 2131427330; + public static final int abc_action_mode_done = 2131427331; + public static final int abc_activity_chooser_view_see_all = 2131427332; + public static final int abc_activitychooserview_choose_application = 2131427333; + public static final int abc_capital_off = 2131427334; + public static final int abc_capital_on = 2131427335; + public static final int abc_font_family_body_1_material = 2131427336; + public static final int abc_font_family_body_2_material = 2131427337; + public static final int abc_font_family_button_material = 2131427338; + public static final int abc_font_family_caption_material = 2131427339; + public static final int abc_font_family_display_1_material = 2131427340; + public static final int abc_font_family_display_2_material = 2131427341; + public static final int abc_font_family_display_3_material = 2131427342; + public static final int abc_font_family_display_4_material = 2131427343; + public static final int abc_font_family_headline_material = 2131427344; + public static final int abc_font_family_menu_material = 2131427345; + public static final int abc_font_family_subhead_material = 2131427346; + public static final int abc_font_family_title_material = 2131427347; + public static final int abc_menu_alt_shortcut_label = 2131427348; + public static final int abc_menu_ctrl_shortcut_label = 2131427349; + public static final int abc_menu_delete_shortcut_label = 2131427350; + public static final int abc_menu_enter_shortcut_label = 2131427351; + public static final int abc_menu_function_shortcut_label = 2131427352; + public static final int abc_menu_meta_shortcut_label = 2131427353; + public static final int abc_menu_shift_shortcut_label = 2131427354; + public static final int abc_menu_space_shortcut_label = 2131427355; + public static final int abc_menu_sym_shortcut_label = 2131427356; + public static final int abc_prepend_shortcut_label = 2131427357; + public static final int abc_search_hint = 2131427358; + public static final int abc_searchview_description_clear = 2131427359; + public static final int abc_searchview_description_query = 2131427360; + public static final int abc_searchview_description_search = 2131427361; + public static final int abc_searchview_description_submit = 2131427362; + public static final int abc_searchview_description_voice = 2131427363; + public static final int abc_shareactionprovider_share_with = 2131427364; + public static final int abc_shareactionprovider_share_with_application = 2131427365; + public static final int abc_toolbar_collapse_description = 2131427366; + public static final int app_name = 2131427367; + public static final int search_menu_title = 2131427368; + public static final int status_bar_notification_info_overflow = 2131427369; + } + + public static final class style { + public static final int AlertDialog_AppCompat = 2131492864; + public static final int AlertDialog_AppCompat_Light = 2131492865; + public static final int Animation_AppCompat_Dialog = 2131492866; + public static final int Animation_AppCompat_DropDownUp = 2131492867; + public static final int Animation_AppCompat_Tooltip = 2131492868; + public static final int AppTheme = 2131492869; + public static final int Base_AlertDialog_AppCompat = 2131492870; + public static final int Base_AlertDialog_AppCompat_Light = 2131492871; + public static final int Base_Animation_AppCompat_Dialog = 2131492872; + public static final int Base_Animation_AppCompat_DropDownUp = 2131492873; + public static final int Base_Animation_AppCompat_Tooltip = 2131492874; + public static final int Base_DialogWindowTitle_AppCompat = 2131492875; + public static final int Base_DialogWindowTitleBackground_AppCompat = 2131492876; + public static final int Base_TextAppearance_AppCompat = 2131492877; + public static final int Base_TextAppearance_AppCompat_Body1 = 2131492878; + public static final int Base_TextAppearance_AppCompat_Body2 = 2131492879; + public static final int Base_TextAppearance_AppCompat_Button = 2131492880; + public static final int Base_TextAppearance_AppCompat_Caption = 2131492881; + public static final int Base_TextAppearance_AppCompat_Display1 = 2131492882; + public static final int Base_TextAppearance_AppCompat_Display2 = 2131492883; + public static final int Base_TextAppearance_AppCompat_Display3 = 2131492884; + public static final int Base_TextAppearance_AppCompat_Display4 = 2131492885; + public static final int Base_TextAppearance_AppCompat_Headline = 2131492886; + public static final int Base_TextAppearance_AppCompat_Inverse = 2131492887; + public static final int Base_TextAppearance_AppCompat_Large = 2131492888; + public static final int Base_TextAppearance_AppCompat_Large_Inverse = 2131492889; + public static final int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131492890; + public static final int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131492891; + public static final int Base_TextAppearance_AppCompat_Medium = 2131492892; + public static final int Base_TextAppearance_AppCompat_Medium_Inverse = 2131492893; + public static final int Base_TextAppearance_AppCompat_Menu = 2131492894; + public static final int Base_TextAppearance_AppCompat_SearchResult = 2131492895; + public static final int Base_TextAppearance_AppCompat_SearchResult_Subtitle = 2131492896; + public static final int Base_TextAppearance_AppCompat_SearchResult_Title = 2131492897; + public static final int Base_TextAppearance_AppCompat_Small = 2131492898; + public static final int Base_TextAppearance_AppCompat_Small_Inverse = 2131492899; + public static final int Base_TextAppearance_AppCompat_Subhead = 2131492900; + public static final int Base_TextAppearance_AppCompat_Subhead_Inverse = 2131492901; + public static final int Base_TextAppearance_AppCompat_Title = 2131492902; + public static final int Base_TextAppearance_AppCompat_Title_Inverse = 2131492903; + public static final int Base_TextAppearance_AppCompat_Tooltip = 2131492904; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131492905; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131492906; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131492907; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Title = 2131492908; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131492909; + public static final int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131492910; + public static final int Base_TextAppearance_AppCompat_Widget_ActionMode_Title = 2131492911; + public static final int Base_TextAppearance_AppCompat_Widget_Button = 2131492912; + public static final int Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131492913; + public static final int Base_TextAppearance_AppCompat_Widget_Button_Colored = 2131492914; + public static final int Base_TextAppearance_AppCompat_Widget_Button_Inverse = 2131492915; + public static final int Base_TextAppearance_AppCompat_Widget_DropDownItem = 2131492916; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131492917; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131492918; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131492919; + public static final int Base_TextAppearance_AppCompat_Widget_Switch = 2131492920; + public static final int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131492921; + public static final int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131492922; + public static final int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131492923; + public static final int Base_TextAppearance_Widget_AppCompat_Toolbar_Title = 2131492924; + public static final int Base_Theme_AppCompat = 2131492925; + public static final int Base_Theme_AppCompat_CompactMenu = 2131492926; + public static final int Base_Theme_AppCompat_Dialog = 2131492927; + public static final int Base_Theme_AppCompat_Dialog_Alert = 2131492928; + public static final int Base_Theme_AppCompat_Dialog_FixedSize = 2131492929; + public static final int Base_Theme_AppCompat_Dialog_MinWidth = 2131492930; + public static final int Base_Theme_AppCompat_DialogWhenLarge = 2131492931; + public static final int Base_Theme_AppCompat_Light = 2131492932; + public static final int Base_Theme_AppCompat_Light_DarkActionBar = 2131492933; + public static final int Base_Theme_AppCompat_Light_Dialog = 2131492934; + public static final int Base_Theme_AppCompat_Light_Dialog_Alert = 2131492935; + public static final int Base_Theme_AppCompat_Light_Dialog_FixedSize = 2131492936; + public static final int Base_Theme_AppCompat_Light_Dialog_MinWidth = 2131492937; + public static final int Base_Theme_AppCompat_Light_DialogWhenLarge = 2131492938; + public static final int Base_ThemeOverlay_AppCompat = 2131492939; + public static final int Base_ThemeOverlay_AppCompat_ActionBar = 2131492940; + public static final int Base_ThemeOverlay_AppCompat_Dark = 2131492941; + public static final int Base_ThemeOverlay_AppCompat_Dark_ActionBar = 2131492942; + public static final int Base_ThemeOverlay_AppCompat_Dialog = 2131492943; + public static final int Base_ThemeOverlay_AppCompat_Dialog_Alert = 2131492944; + public static final int Base_ThemeOverlay_AppCompat_Light = 2131492945; + public static final int Base_V21_Theme_AppCompat = 2131492946; + public static final int Base_V21_Theme_AppCompat_Dialog = 2131492947; + public static final int Base_V21_Theme_AppCompat_Light = 2131492948; + public static final int Base_V21_Theme_AppCompat_Light_Dialog = 2131492949; + public static final int Base_V21_ThemeOverlay_AppCompat_Dialog = 2131492950; + public static final int Base_V22_Theme_AppCompat = 2131492951; + public static final int Base_V22_Theme_AppCompat_Light = 2131492952; + public static final int Base_V23_Theme_AppCompat = 2131492953; + public static final int Base_V23_Theme_AppCompat_Light = 2131492954; + public static final int Base_V26_Theme_AppCompat = 2131492955; + public static final int Base_V26_Theme_AppCompat_Light = 2131492956; + public static final int Base_V26_Widget_AppCompat_Toolbar = 2131492957; + public static final int Base_V28_Theme_AppCompat = 2131492958; + public static final int Base_V28_Theme_AppCompat_Light = 2131492959; + public static final int Base_V7_Theme_AppCompat = 2131492960; + public static final int Base_V7_Theme_AppCompat_Dialog = 2131492961; + public static final int Base_V7_Theme_AppCompat_Light = 2131492962; + public static final int Base_V7_Theme_AppCompat_Light_Dialog = 2131492963; + public static final int Base_V7_ThemeOverlay_AppCompat_Dialog = 2131492964; + public static final int Base_V7_Widget_AppCompat_AutoCompleteTextView = 2131492965; + public static final int Base_V7_Widget_AppCompat_EditText = 2131492966; + public static final int Base_V7_Widget_AppCompat_Toolbar = 2131492967; + public static final int Base_Widget_AppCompat_ActionBar = 2131492968; + public static final int Base_Widget_AppCompat_ActionBar_Solid = 2131492969; + public static final int Base_Widget_AppCompat_ActionBar_TabBar = 2131492970; + public static final int Base_Widget_AppCompat_ActionBar_TabText = 2131492971; + public static final int Base_Widget_AppCompat_ActionBar_TabView = 2131492972; + public static final int Base_Widget_AppCompat_ActionButton = 2131492973; + public static final int Base_Widget_AppCompat_ActionButton_CloseMode = 2131492974; + public static final int Base_Widget_AppCompat_ActionButton_Overflow = 2131492975; + public static final int Base_Widget_AppCompat_ActionMode = 2131492976; + public static final int Base_Widget_AppCompat_ActivityChooserView = 2131492977; + public static final int Base_Widget_AppCompat_AutoCompleteTextView = 2131492978; + public static final int Base_Widget_AppCompat_Button = 2131492979; + public static final int Base_Widget_AppCompat_Button_Borderless = 2131492980; + public static final int Base_Widget_AppCompat_Button_Borderless_Colored = 2131492981; + public static final int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131492982; + public static final int Base_Widget_AppCompat_Button_Colored = 2131492983; + public static final int Base_Widget_AppCompat_Button_Small = 2131492984; + public static final int Base_Widget_AppCompat_ButtonBar = 2131492985; + public static final int Base_Widget_AppCompat_ButtonBar_AlertDialog = 2131492986; + public static final int Base_Widget_AppCompat_CompoundButton_CheckBox = 2131492987; + public static final int Base_Widget_AppCompat_CompoundButton_RadioButton = 2131492988; + public static final int Base_Widget_AppCompat_CompoundButton_Switch = 2131492989; + public static final int Base_Widget_AppCompat_DrawerArrowToggle = 2131492990; + public static final int Base_Widget_AppCompat_DrawerArrowToggle_Common = 2131492991; + public static final int Base_Widget_AppCompat_DropDownItem_Spinner = 2131492992; + public static final int Base_Widget_AppCompat_EditText = 2131492993; + public static final int Base_Widget_AppCompat_ImageButton = 2131492994; + public static final int Base_Widget_AppCompat_Light_ActionBar = 2131492995; + public static final int Base_Widget_AppCompat_Light_ActionBar_Solid = 2131492996; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabBar = 2131492997; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabText = 2131492998; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131492999; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabView = 2131493000; + public static final int Base_Widget_AppCompat_Light_PopupMenu = 2131493001; + public static final int Base_Widget_AppCompat_Light_PopupMenu_Overflow = 2131493002; + public static final int Base_Widget_AppCompat_ListMenuView = 2131493003; + public static final int Base_Widget_AppCompat_ListPopupWindow = 2131493004; + public static final int Base_Widget_AppCompat_ListView = 2131493005; + public static final int Base_Widget_AppCompat_ListView_DropDown = 2131493006; + public static final int Base_Widget_AppCompat_ListView_Menu = 2131493007; + public static final int Base_Widget_AppCompat_PopupMenu = 2131493008; + public static final int Base_Widget_AppCompat_PopupMenu_Overflow = 2131493009; + public static final int Base_Widget_AppCompat_PopupWindow = 2131493010; + public static final int Base_Widget_AppCompat_ProgressBar = 2131493011; + public static final int Base_Widget_AppCompat_ProgressBar_Horizontal = 2131493012; + public static final int Base_Widget_AppCompat_RatingBar = 2131493013; + public static final int Base_Widget_AppCompat_RatingBar_Indicator = 2131493014; + public static final int Base_Widget_AppCompat_RatingBar_Small = 2131493015; + public static final int Base_Widget_AppCompat_SearchView = 2131493016; + public static final int Base_Widget_AppCompat_SearchView_ActionBar = 2131493017; + public static final int Base_Widget_AppCompat_SeekBar = 2131493018; + public static final int Base_Widget_AppCompat_SeekBar_Discrete = 2131493019; + public static final int Base_Widget_AppCompat_Spinner = 2131493020; + public static final int Base_Widget_AppCompat_Spinner_Underlined = 2131493021; + public static final int Base_Widget_AppCompat_TextView_SpinnerItem = 2131493022; + public static final int Base_Widget_AppCompat_Toolbar = 2131493023; + public static final int Base_Widget_AppCompat_Toolbar_Button_Navigation = 2131493024; + public static final int Platform_AppCompat = 2131493025; + public static final int Platform_AppCompat_Light = 2131493026; + public static final int Platform_ThemeOverlay_AppCompat = 2131493027; + public static final int Platform_ThemeOverlay_AppCompat_Dark = 2131493028; + public static final int Platform_ThemeOverlay_AppCompat_Light = 2131493029; + public static final int Platform_V21_AppCompat = 2131493030; + public static final int Platform_V21_AppCompat_Light = 2131493031; + public static final int Platform_V25_AppCompat = 2131493032; + public static final int Platform_V25_AppCompat_Light = 2131493033; + public static final int Platform_Widget_AppCompat_Spinner = 2131493034; + public static final int RtlOverlay_DialogWindowTitle_AppCompat = 2131493035; + public static final int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem = 2131493036; + public static final int RtlOverlay_Widget_AppCompat_DialogTitle_Icon = 2131493037; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem = 2131493038; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup = 2131493039; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem_Shortcut = 2131493040; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem_SubmenuArrow = 2131493041; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text = 2131493042; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem_Title = 2131493043; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown = 2131493044; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 = 2131493045; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 = 2131493046; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Query = 2131493047; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Text = 2131493048; + public static final int RtlOverlay_Widget_AppCompat_SearchView_MagIcon = 2131493049; + public static final int RtlUnderlay_Widget_AppCompat_ActionButton = 2131493050; + public static final int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow = 2131493051; + public static final int TextAppearance_AppCompat = 2131493052; + public static final int TextAppearance_AppCompat_Body1 = 2131493053; + public static final int TextAppearance_AppCompat_Body2 = 2131493054; + public static final int TextAppearance_AppCompat_Button = 2131493055; + public static final int TextAppearance_AppCompat_Caption = 2131493056; + public static final int TextAppearance_AppCompat_Display1 = 2131493057; + public static final int TextAppearance_AppCompat_Display2 = 2131493058; + public static final int TextAppearance_AppCompat_Display3 = 2131493059; + public static final int TextAppearance_AppCompat_Display4 = 2131493060; + public static final int TextAppearance_AppCompat_Headline = 2131493061; + public static final int TextAppearance_AppCompat_Inverse = 2131493062; + public static final int TextAppearance_AppCompat_Large = 2131493063; + public static final int TextAppearance_AppCompat_Large_Inverse = 2131493064; + public static final int TextAppearance_AppCompat_Light_SearchResult_Subtitle = 2131493065; + public static final int TextAppearance_AppCompat_Light_SearchResult_Title = 2131493066; + public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131493067; + public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131493068; + public static final int TextAppearance_AppCompat_Medium = 2131493069; + public static final int TextAppearance_AppCompat_Medium_Inverse = 2131493070; + public static final int TextAppearance_AppCompat_Menu = 2131493071; + public static final int TextAppearance_AppCompat_SearchResult_Subtitle = 2131493072; + public static final int TextAppearance_AppCompat_SearchResult_Title = 2131493073; + public static final int TextAppearance_AppCompat_Small = 2131493074; + public static final int TextAppearance_AppCompat_Small_Inverse = 2131493075; + public static final int TextAppearance_AppCompat_Subhead = 2131493076; + public static final int TextAppearance_AppCompat_Subhead_Inverse = 2131493077; + public static final int TextAppearance_AppCompat_Title = 2131493078; + public static final int TextAppearance_AppCompat_Title_Inverse = 2131493079; + public static final int TextAppearance_AppCompat_Tooltip = 2131493080; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131493081; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131493082; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131493083; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Title = 2131493084; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131493085; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131493086; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = 2131493087; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Title = 2131493088; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = 2131493089; + public static final int TextAppearance_AppCompat_Widget_Button = 2131493090; + public static final int TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131493091; + public static final int TextAppearance_AppCompat_Widget_Button_Colored = 2131493092; + public static final int TextAppearance_AppCompat_Widget_Button_Inverse = 2131493093; + public static final int TextAppearance_AppCompat_Widget_DropDownItem = 2131493094; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131493095; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131493096; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131493097; + public static final int TextAppearance_AppCompat_Widget_Switch = 2131493098; + public static final int TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131493099; + public static final int TextAppearance_Compat_Notification = 2131493100; + public static final int TextAppearance_Compat_Notification_Info = 2131493101; + public static final int TextAppearance_Compat_Notification_Line2 = 2131493102; + public static final int TextAppearance_Compat_Notification_Time = 2131493103; + public static final int TextAppearance_Compat_Notification_Title = 2131493104; + public static final int TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131493105; + public static final int TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131493106; + public static final int TextAppearance_Widget_AppCompat_Toolbar_Title = 2131493107; + public static final int Theme_AppCompat = 2131493108; + public static final int Theme_AppCompat_CompactMenu = 2131493109; + public static final int Theme_AppCompat_DayNight = 2131493110; + public static final int Theme_AppCompat_DayNight_DarkActionBar = 2131493111; + public static final int Theme_AppCompat_DayNight_Dialog = 2131493112; + public static final int Theme_AppCompat_DayNight_Dialog_Alert = 2131493113; + public static final int Theme_AppCompat_DayNight_Dialog_MinWidth = 2131493114; + public static final int Theme_AppCompat_DayNight_DialogWhenLarge = 2131493115; + public static final int Theme_AppCompat_DayNight_NoActionBar = 2131493116; + public static final int Theme_AppCompat_Dialog = 2131493117; + public static final int Theme_AppCompat_Dialog_Alert = 2131493118; + public static final int Theme_AppCompat_Dialog_MinWidth = 2131493119; + public static final int Theme_AppCompat_DialogWhenLarge = 2131493120; + public static final int Theme_AppCompat_Light = 2131493121; + public static final int Theme_AppCompat_Light_DarkActionBar = 2131493122; + public static final int Theme_AppCompat_Light_Dialog = 2131493123; + public static final int Theme_AppCompat_Light_Dialog_Alert = 2131493124; + public static final int Theme_AppCompat_Light_Dialog_MinWidth = 2131493125; + public static final int Theme_AppCompat_Light_DialogWhenLarge = 2131493126; + public static final int Theme_AppCompat_Light_NoActionBar = 2131493127; + public static final int Theme_AppCompat_NoActionBar = 2131493128; + public static final int ThemeOverlay_AppCompat = 2131493129; + public static final int ThemeOverlay_AppCompat_ActionBar = 2131493130; + public static final int ThemeOverlay_AppCompat_Dark = 2131493131; + public static final int ThemeOverlay_AppCompat_Dark_ActionBar = 2131493132; + public static final int ThemeOverlay_AppCompat_Dialog = 2131493133; + public static final int ThemeOverlay_AppCompat_Dialog_Alert = 2131493134; + public static final int ThemeOverlay_AppCompat_Light = 2131493135; + public static final int Widget_AppCompat_ActionBar = 2131493136; + public static final int Widget_AppCompat_ActionBar_Solid = 2131493137; + public static final int Widget_AppCompat_ActionBar_TabBar = 2131493138; + public static final int Widget_AppCompat_ActionBar_TabText = 2131493139; + public static final int Widget_AppCompat_ActionBar_TabView = 2131493140; + public static final int Widget_AppCompat_ActionButton = 2131493141; + public static final int Widget_AppCompat_ActionButton_CloseMode = 2131493142; + public static final int Widget_AppCompat_ActionButton_Overflow = 2131493143; + public static final int Widget_AppCompat_ActionMode = 2131493144; + public static final int Widget_AppCompat_ActivityChooserView = 2131493145; + public static final int Widget_AppCompat_AutoCompleteTextView = 2131493146; + public static final int Widget_AppCompat_Button = 2131493147; + public static final int Widget_AppCompat_Button_Borderless = 2131493148; + public static final int Widget_AppCompat_Button_Borderless_Colored = 2131493149; + public static final int Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131493150; + public static final int Widget_AppCompat_Button_Colored = 2131493151; + public static final int Widget_AppCompat_Button_Small = 2131493152; + public static final int Widget_AppCompat_ButtonBar = 2131493153; + public static final int Widget_AppCompat_ButtonBar_AlertDialog = 2131493154; + public static final int Widget_AppCompat_CompoundButton_CheckBox = 2131493155; + public static final int Widget_AppCompat_CompoundButton_RadioButton = 2131493156; + public static final int Widget_AppCompat_CompoundButton_Switch = 2131493157; + public static final int Widget_AppCompat_DrawerArrowToggle = 2131493158; + public static final int Widget_AppCompat_DropDownItem_Spinner = 2131493159; + public static final int Widget_AppCompat_EditText = 2131493160; + public static final int Widget_AppCompat_ImageButton = 2131493161; + public static final int Widget_AppCompat_Light_ActionBar = 2131493162; + public static final int Widget_AppCompat_Light_ActionBar_Solid = 2131493163; + public static final int Widget_AppCompat_Light_ActionBar_Solid_Inverse = 2131493164; + public static final int Widget_AppCompat_Light_ActionBar_TabBar = 2131493165; + public static final int Widget_AppCompat_Light_ActionBar_TabBar_Inverse = 2131493166; + public static final int Widget_AppCompat_Light_ActionBar_TabText = 2131493167; + public static final int Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131493168; + public static final int Widget_AppCompat_Light_ActionBar_TabView = 2131493169; + public static final int Widget_AppCompat_Light_ActionBar_TabView_Inverse = 2131493170; + public static final int Widget_AppCompat_Light_ActionButton = 2131493171; + public static final int Widget_AppCompat_Light_ActionButton_CloseMode = 2131493172; + public static final int Widget_AppCompat_Light_ActionButton_Overflow = 2131493173; + public static final int Widget_AppCompat_Light_ActionMode_Inverse = 2131493174; + public static final int Widget_AppCompat_Light_ActivityChooserView = 2131493175; + public static final int Widget_AppCompat_Light_AutoCompleteTextView = 2131493176; + public static final int Widget_AppCompat_Light_DropDownItem_Spinner = 2131493177; + public static final int Widget_AppCompat_Light_ListPopupWindow = 2131493178; + public static final int Widget_AppCompat_Light_ListView_DropDown = 2131493179; + public static final int Widget_AppCompat_Light_PopupMenu = 2131493180; + public static final int Widget_AppCompat_Light_PopupMenu_Overflow = 2131493181; + public static final int Widget_AppCompat_Light_SearchView = 2131493182; + public static final int Widget_AppCompat_Light_Spinner_DropDown_ActionBar = 2131493183; + public static final int Widget_AppCompat_ListMenuView = 2131493184; + public static final int Widget_AppCompat_ListPopupWindow = 2131493185; + public static final int Widget_AppCompat_ListView = 2131493186; + public static final int Widget_AppCompat_ListView_DropDown = 2131493187; + public static final int Widget_AppCompat_ListView_Menu = 2131493188; + public static final int Widget_AppCompat_PopupMenu = 2131493189; + public static final int Widget_AppCompat_PopupMenu_Overflow = 2131493190; + public static final int Widget_AppCompat_PopupWindow = 2131493191; + public static final int Widget_AppCompat_ProgressBar = 2131493192; + public static final int Widget_AppCompat_ProgressBar_Horizontal = 2131493193; + public static final int Widget_AppCompat_RatingBar = 2131493194; + public static final int Widget_AppCompat_RatingBar_Indicator = 2131493195; + public static final int Widget_AppCompat_RatingBar_Small = 2131493196; + public static final int Widget_AppCompat_SearchView = 2131493197; + public static final int Widget_AppCompat_SearchView_ActionBar = 2131493198; + public static final int Widget_AppCompat_SeekBar = 2131493199; + public static final int Widget_AppCompat_SeekBar_Discrete = 2131493200; + public static final int Widget_AppCompat_Spinner = 2131493201; + public static final int Widget_AppCompat_Spinner_DropDown = 2131493202; + public static final int Widget_AppCompat_Spinner_DropDown_ActionBar = 2131493203; + public static final int Widget_AppCompat_Spinner_Underlined = 2131493204; + public static final int Widget_AppCompat_TextView_SpinnerItem = 2131493205; + public static final int Widget_AppCompat_Toolbar = 2131493206; + public static final int Widget_AppCompat_Toolbar_Button_Navigation = 2131493207; + public static final int Widget_Compat_NotificationActionContainer = 2131493208; + public static final int Widget_Compat_NotificationActionText = 2131493209; + public static final int Widget_Support_CoordinatorLayout = 2131493210; + } +} diff --git a/examples/bouncydroid/jadx/b/a/a.java b/examples/bouncydroid/jadx/b/a/a.java new file mode 100644 index 0000000..9c2a816 --- /dev/null +++ b/examples/bouncydroid/jadx/b/a/a.java @@ -0,0 +1,155 @@ +package b.a; + +import android.os.Parcelable; +import java.lang.reflect.InvocationTargetException; + +public abstract class a { + public abstract void a(); + + public abstract void a(Parcelable parcelable); + + public abstract void a(String str); + + public abstract void a(byte[] bArr); + + public abstract boolean a(int i); + + public abstract a b(); + + public abstract void b(int i); + + public abstract void c(int i); + + public abstract byte[] d(); + + public abstract int e(); + + public abstract T f(); + + public abstract String g(); + + public boolean c() { + return false; + } + + public void i() { + } + + public void b(byte[] b2, int fieldId) { + b(fieldId); + a(b2); + } + + public void b(int val, int fieldId) { + b(fieldId); + c(val); + } + + public void b(String val, int fieldId) { + b(fieldId); + a(val); + } + + public void b(Parcelable p, int fieldId) { + b(fieldId); + a(p); + } + + public int a(int def, int fieldId) { + if (!a(fieldId)) { + return def; + } + return e(); + } + + public String a(String def, int fieldId) { + if (!a(fieldId)) { + return def; + } + return g(); + } + + public byte[] a(byte[] def, int fieldId) { + if (!a(fieldId)) { + return def; + } + return d(); + } + + public T a(T def, int fieldId) { + if (!a(fieldId)) { + return def; + } + return f(); + } + + public void a(c p) { + if (p == null) { + a((String) null); + return; + } + b(p); + a subParcel = b(); + a(p, subParcel); + subParcel.a(); + } + + public final void b(c p) { + try { + a(a((Class) p.getClass()).getName()); + } catch (ClassNotFoundException e) { + throw new RuntimeException(p.getClass().getSimpleName() + " does not have a Parcelizer", e); + } + } + + public T h() { + String name = g(); + if (name == null) { + return null; + } + return a(name, b()); + } + + public static T a(String parcelCls, a versionedParcel) { + Class cls = a.class; + try { + return (c) Class.forName(parcelCls, true, cls.getClassLoader()).getDeclaredMethod("read", new Class[]{cls}).invoke((Object) null, new Object[]{versionedParcel}); + } catch (IllegalAccessException e) { + throw new RuntimeException("VersionedParcel encountered IllegalAccessException", e); + } catch (InvocationTargetException e2) { + if (e2.getCause() instanceof RuntimeException) { + throw ((RuntimeException) e2.getCause()); + } + throw new RuntimeException("VersionedParcel encountered InvocationTargetException", e2); + } catch (NoSuchMethodException e3) { + throw new RuntimeException("VersionedParcel encountered NoSuchMethodException", e3); + } catch (ClassNotFoundException e4) { + throw new RuntimeException("VersionedParcel encountered ClassNotFoundException", e4); + } + } + + public static void a(T val, a versionedParcel) { + try { + c(val).getDeclaredMethod("write", new Class[]{val.getClass(), a.class}).invoke((Object) null, new Object[]{val, versionedParcel}); + } catch (IllegalAccessException e) { + throw new RuntimeException("VersionedParcel encountered IllegalAccessException", e); + } catch (InvocationTargetException e2) { + if (e2.getCause() instanceof RuntimeException) { + throw ((RuntimeException) e2.getCause()); + } + throw new RuntimeException("VersionedParcel encountered InvocationTargetException", e2); + } catch (NoSuchMethodException e3) { + throw new RuntimeException("VersionedParcel encountered NoSuchMethodException", e3); + } catch (ClassNotFoundException e4) { + throw new RuntimeException("VersionedParcel encountered ClassNotFoundException", e4); + } + } + + public static Class c(T val) { + return a((Class) val.getClass()); + } + + public static Class a(Class cls) { + return Class.forName(String.format("%s.%sParcelizer", new Object[]{cls.getPackage().getName(), cls.getSimpleName()}), false, cls.getClassLoader()); + } +} diff --git a/examples/bouncydroid/jadx/b/a/b.java b/examples/bouncydroid/jadx/b/a/b.java new file mode 100644 index 0000000..05b3d2e --- /dev/null +++ b/examples/bouncydroid/jadx/b/a/b.java @@ -0,0 +1,134 @@ +package b.a; + +import android.os.Parcel; +import android.os.Parcelable; +import android.util.SparseIntArray; + +public class b extends a { + + /* renamed from: a reason: collision with root package name */ + public final SparseIntArray f887a; + + /* renamed from: b reason: collision with root package name */ + public final Parcel f888b; + + /* renamed from: c reason: collision with root package name */ + public final int f889c; + + /* renamed from: d reason: collision with root package name */ + public final int f890d; + public final String e; + public int f; + public int g; + + public b(Parcel p) { + this(p, p.dataPosition(), p.dataSize(), ""); + } + + public b(Parcel p, int offset, int end, String prefix) { + this.f887a = new SparseIntArray(); + this.f = -1; + this.g = 0; + this.f888b = p; + this.f889c = offset; + this.f890d = end; + this.g = offset; + this.e = prefix; + } + + public final int d(int fieldId) { + int fid; + do { + int i = this.g; + if (i >= this.f890d) { + return -1; + } + this.f888b.setDataPosition(i); + int size = this.f888b.readInt(); + fid = this.f888b.readInt(); + this.g += size; + } while (fid != fieldId); + return this.f888b.dataPosition(); + } + + public boolean a(int fieldId) { + int position = d(fieldId); + if (position == -1) { + return false; + } + this.f888b.setDataPosition(position); + return true; + } + + public void b(int fieldId) { + a(); + this.f = fieldId; + this.f887a.put(fieldId, this.f888b.dataPosition()); + c(0); + c(fieldId); + } + + public void a() { + int i = this.f; + if (i >= 0) { + int currentFieldPosition = this.f887a.get(i); + int position = this.f888b.dataPosition(); + this.f888b.setDataPosition(currentFieldPosition); + this.f888b.writeInt(position - currentFieldPosition); + this.f888b.setDataPosition(position); + } + } + + public a b() { + Parcel parcel = this.f888b; + int dataPosition = parcel.dataPosition(); + int i = this.g; + if (i == this.f889c) { + i = this.f890d; + } + return new b(parcel, dataPosition, i, this.e + " "); + } + + public void a(byte[] b2) { + if (b2 != null) { + this.f888b.writeInt(b2.length); + this.f888b.writeByteArray(b2); + return; + } + this.f888b.writeInt(-1); + } + + public void c(int val) { + this.f888b.writeInt(val); + } + + public void a(String val) { + this.f888b.writeString(val); + } + + public void a(Parcelable p) { + this.f888b.writeParcelable(p, 0); + } + + public int e() { + return this.f888b.readInt(); + } + + public String g() { + return this.f888b.readString(); + } + + public byte[] d() { + int len = this.f888b.readInt(); + if (len < 0) { + return null; + } + byte[] bytes = new byte[len]; + this.f888b.readByteArray(bytes); + return bytes; + } + + public T f() { + return this.f888b.readParcelable(getClass().getClassLoader()); + } +} diff --git a/examples/bouncydroid/jadx/b/a/c.java b/examples/bouncydroid/jadx/b/a/c.java new file mode 100644 index 0000000..1aaac42 --- /dev/null +++ b/examples/bouncydroid/jadx/b/a/c.java @@ -0,0 +1,4 @@ +package b.a; + +public interface c { +} diff --git a/examples/bouncydroid/jadx/c/a/a/a.java b/examples/bouncydroid/jadx/c/a/a/a.java new file mode 100644 index 0000000..ad999c5 --- /dev/null +++ b/examples/bouncydroid/jadx/c/a/a/a.java @@ -0,0 +1,59 @@ +package c.a.a; + +import d.a.a.j.c; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +public class a { + + /* renamed from: a reason: collision with root package name */ + public c f891a; + + /* renamed from: b reason: collision with root package name */ + public c f892b; + + /* renamed from: c reason: collision with root package name */ + public byte[] f893c; + + /* renamed from: d reason: collision with root package name */ + public byte[] f894d; + public byte[] e; + + public a() { + this.f893c = new byte[16]; + this.f894d = new byte[512]; + this.e = null; + this.e = "SECRET_1SECRET_2SECRET_3".getBytes(); + a(); + } + + public final void a() { + c cVar = new c(new d.a.a.i.a()); + this.f891a = cVar; + cVar.a(true, (d.a.a.c) new d.a.a.k.a(this.e)); + c cVar2 = new c(new d.a.a.i.a()); + this.f892b = cVar2; + cVar2.a(false, (d.a.a.c) new d.a.a.k.a(this.e)); + } + + public void a(InputStream in, OutputStream out) { + while (true) { + try { + int read = in.read(this.f893c); + int noBytesRead = read; + if (read >= 0) { + out.write(this.f894d, 0, this.f891a.a(this.f893c, 0, noBytesRead, this.f894d, 0)); + int i = noBytesRead; + } else { + out.write(this.f894d, 0, this.f891a.a(this.f894d, 0)); + out.flush(); + return; + } + } catch (IOException e2) { + System.out.println(e2.getMessage()); + return; + } + } + } +} diff --git a/examples/bouncydroid/jadx/d/a/a/a.java b/examples/bouncydroid/jadx/d/a/a/a.java new file mode 100644 index 0000000..70bed3c --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/a.java @@ -0,0 +1,4 @@ +package d.a.a; + +public interface a { +} diff --git a/examples/bouncydroid/jadx/d/a/a/b.java b/examples/bouncydroid/jadx/d/a/a/b.java new file mode 100644 index 0000000..98768bb --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/b.java @@ -0,0 +1,38 @@ +package d.a.a; + +import d.a.a.i.a; + +public class b { + + /* renamed from: a reason: collision with root package name */ + public byte[] f895a; + + /* renamed from: b reason: collision with root package name */ + public int f896b; + + /* renamed from: c reason: collision with root package name */ + public boolean f897c; + + /* renamed from: d reason: collision with root package name */ + public a f898d; + + public int a() { + ((a) this.f898d).a(); + return 16; + } + + public void b() { + int i = 0; + while (true) { + byte[] bArr = this.f895a; + if (i < bArr.length) { + bArr[i] = 0; + i++; + } else { + this.f896b = 0; + ((a) this.f898d).b(); + return; + } + } + } +} diff --git a/examples/bouncydroid/jadx/d/a/a/c.java b/examples/bouncydroid/jadx/d/a/a/c.java new file mode 100644 index 0000000..3032427 --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/c.java @@ -0,0 +1,4 @@ +package d.a.a; + +public interface c { +} diff --git a/examples/bouncydroid/jadx/d/a/a/d.java b/examples/bouncydroid/jadx/d/a/a/d.java new file mode 100644 index 0000000..13c52d2 --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/d.java @@ -0,0 +1,11 @@ +package d.a.a; + +public class d extends Exception { + public d(String str) { + super(str); + } + + public Throwable getCause() { + return null; + } +} diff --git a/examples/bouncydroid/jadx/d/a/a/e.java b/examples/bouncydroid/jadx/d/a/a/e.java new file mode 100644 index 0000000..3d0a847 --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/e.java @@ -0,0 +1,7 @@ +package d.a.a; + +public class e extends h { + public e(String str) { + super(str); + } +} diff --git a/examples/bouncydroid/jadx/d/a/a/f.java b/examples/bouncydroid/jadx/d/a/a/f.java new file mode 100644 index 0000000..8e1f14c --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/f.java @@ -0,0 +1,7 @@ +package d.a.a; + +public class f extends d { + public f(String str) { + super(str); + } +} diff --git a/examples/bouncydroid/jadx/d/a/a/g.java b/examples/bouncydroid/jadx/d/a/a/g.java new file mode 100644 index 0000000..bf4ae67 --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/g.java @@ -0,0 +1,7 @@ +package d.a.a; + +public class g extends e { + public g(String str) { + super(str); + } +} diff --git a/examples/bouncydroid/jadx/d/a/a/h.java b/examples/bouncydroid/jadx/d/a/a/h.java new file mode 100644 index 0000000..413b569 --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/h.java @@ -0,0 +1,7 @@ +package d.a.a; + +public class h extends RuntimeException { + public h(String str) { + super(str); + } +} diff --git a/examples/bouncydroid/jadx/d/a/a/i/a.java b/examples/bouncydroid/jadx/d/a/a/i/a.java new file mode 100644 index 0000000..471399b --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/i/a.java @@ -0,0 +1,448 @@ +package d.a.a.i; + +import a.b.e.b.j; +import d.a.a.c; +import d.a.a.e; +import d.a.a.g; +import d.a.b.b; +import java.lang.reflect.Array; + +public class a implements d.a.a.a { + public static final byte[] i = {99, 124, 119, 123, -14, 107, 111, -59, 48, 1, 103, 43, -2, -41, -85, 118, -54, -126, -55, 125, -6, 89, 71, -16, -83, -44, -94, -81, -100, -92, 114, -64, -73, -3, -109, 38, 54, 63, -9, -52, 52, -91, -27, -15, 113, -40, 49, 21, 4, -57, 35, -61, 24, -106, 5, -102, 7, 18, Byte.MIN_VALUE, -30, -21, 39, -78, 117, 9, -125, 44, 26, 27, 110, 90, -96, 82, 59, -42, -77, 41, -29, 47, -124, 83, -47, 0, -19, 32, -4, -79, 91, 106, -53, -66, 57, 74, 76, 88, -49, -48, -17, -86, -5, 67, 77, 51, -123, 69, -7, 2, Byte.MAX_VALUE, 80, 60, -97, -88, 81, -93, 64, -113, -110, -99, 56, -11, -68, -74, -38, 33, 16, -1, -13, -46, -51, 12, 19, -20, 95, -105, 68, 23, -60, -89, 126, 61, 100, 93, 25, 115, 96, -127, 79, -36, 34, 42, -112, -120, 70, -18, -72, 20, -34, 94, 11, -37, -32, 50, 58, 10, 73, 6, 36, 92, -62, -45, -84, 98, -111, -107, -28, 121, -25, -56, 55, 109, -115, -43, 78, -87, 108, 86, -12, -22, 101, 122, -82, 8, -70, 120, 37, 46, 28, -90, -76, -58, -24, -35, 116, 31, 75, -67, -117, -118, 112, 62, -75, 102, 72, 3, -10, 14, 97, 53, 87, -71, -122, -63, 29, -98, -31, -8, -104, 17, 105, -39, -114, -108, -101, 30, -121, -23, -50, 85, 40, -33, -116, -95, -119, 13, -65, -26, 66, 104, 65, -103, 45, 15, -80, 84, -69, 22}; + public static final byte[] j = {82, 9, 106, -43, 48, 54, -91, 56, -65, 64, -93, -98, -127, -13, -41, -5, 124, -29, 57, -126, -101, 47, -1, -121, 52, -114, 67, 68, -60, -34, -23, -53, 84, 123, -108, 50, -90, -62, 35, 61, -18, 76, -107, 11, 66, -6, -61, 78, 8, 46, -95, 102, 40, -39, 36, -78, 118, 91, -94, 73, 109, -117, -47, 37, 114, -8, -10, 100, -122, 104, -104, 22, -44, -92, 92, -52, 93, 101, -74, -110, 108, 112, 72, 80, -3, -19, -71, -38, 94, 21, 70, 87, -89, -115, -99, -124, -112, -40, -85, 0, -116, -68, -45, 10, -9, -28, 88, 5, -72, -77, 69, 6, -48, 44, 30, -113, -54, 63, 15, 2, -63, -81, -67, 3, 1, 19, -118, 107, 58, -111, 17, 65, 79, 103, -36, -22, -105, -14, -49, -50, -16, -76, -26, 115, -106, -84, 116, 34, -25, -83, 53, -123, -30, -7, 55, -24, 28, 117, -33, 110, 71, -15, 26, 113, 29, 41, -59, -119, 111, -73, 98, 14, -86, 24, -66, 27, -4, 86, 62, 75, -58, -46, 121, 32, -102, -37, -64, -2, 120, -51, 90, -12, 31, -35, -88, 51, -120, 7, -57, 49, -79, 18, 16, 89, 39, Byte.MIN_VALUE, -20, 95, 96, 81, Byte.MAX_VALUE, -87, 25, -75, 74, 13, 45, -27, 122, -97, -109, -55, -100, -17, -96, -32, 59, 77, -82, 42, -11, -80, -56, -21, -69, 60, -125, 83, -103, 97, 23, 43, 4, 126, -70, 119, -42, 38, -31, 105, 20, 99, 85, 33, 12, 125}; + public static final int[] k = {1, 2, 4, 8, 16, 32, 64, 128, 27, 54, j.AppCompatTheme_tooltipForegroundColor, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, j.AppCompatTheme_toolbarNavigationButtonStyle, 212, 179, 125, 250, 239, 197, 145}; + public static final int[] l = {-1520213050, -2072216328, -1720223762, -1921287178, 234025727, -1117033514, -1318096930, 1422247313, 1345335392, 50397442, -1452841010, 2099981142, 436141799, 1658312629, -424957107, -1703512340, 1170918031, -1652391393, 1086966153, -2021818886, 368769775, -346465870, -918075506, 200339707, -324162239, 1742001331, -39673249, -357585083, -1080255453, -140204973, -1770884380, 1539358875, -1028147339, 486407649, -1366060227, 1780885068, 1513502316, 1094664062, 49805301, 1338821763, 1546925160, -190470831, 887481809, 150073849, -1821281822, 1943591083, 1395732834, 1058346282, 201589768, 1388824469, 1696801606, 1589887901, 672667696, -1583966665, 251987210, -1248159185, 151455502, 907153956, -1686077413, 1038279391, 652995533, 1764173646, -843926913, -1619692054, 453576978, -1635548387, 1949051992, 773462580, 756751158, -1301385508, -296068428, -73359269, -162377052, 1295727478, 1641469623, -827083907, 2066295122, 1055122397, 1898917726, -1752923117, -179088474, 1758581177, 0, 753790401, 1612718144, 536673507, -927878791, -312779850, -1100322092, 1187761037, -641810841, 1262041458, -565556588, -733197160, -396863312, 1255133061, 1808847035, 720367557, -441800113, 385612781, -985447546, -682799718, 1429418854, -1803188975, -817543798, 284817897, 100794884, -2122350594, -263171936, 1144798328, -1163944155, -475486133, -212774494, -22830243, -1069531008, -1970303227, -1382903233, -1130521311, 1211644016, 83228145, -541279133, -1044990345, 1977277103, 1663115586, 806359072, 452984805, 250868733, 1842533055, 1288555905, 336333848, 890442534, 804056259, -513843266, -1567123659, -867941240, 957814574, 1472513171, -223893675, -2105639172, 1195195770, -1402706744, -413311558, 723065138, -1787595802, -1604296512, -1736343271, -783331426, 2145180835, 1713513028, 2116692564, -1416589253, -2088204277, -901364084, 703524551, -742868885, 1007948840, 2044649127, -497131844, 487262998, 1994120109, 1004593371, 1446130276, 1312438900, 503974420, -615954030, 168166924, 1814307912, -463709000, 1573044895, 1859376061, -273896381, -1503501628, -1466855111, -1533700815, 937747667, -1954973198, 854058965, 1137232011, 1496790894, -1217565222, -1936880383, 1691735473, -766620004, -525751991, -1267962664, -95005012, 133494003, 636152527, -1352309302, -1904575756, -374428089, 403179536, -709182865, -2005370640, 1864705354, 1915629148, 605822008, -240736681, -944458637, 1371981463, 602466507, 2094914977, -1670089496, 555687742, -582268010, -591544991, -2037675251, -2054518257, -1871679264, 1111375484, -994724495, -1436129588, -666351472, 84083462, 32962295, 302911004, -1553899070, 1597322602, -111716434, -793134743, -1853454825, 1489093017, 656219450, -1180787161, 954327513, 335083755, -1281845205, 856756514, -1150719534, 1893325225, -1987146233, -1483434957, -1231316179, 572399164, -1836611819, 552200649, 1238290055, -11184726, 2015897680, 2061492133, -1886614525, -123625127, -2138470135, 386731290, -624967835, 837215959, -968736124, -1201116976, -1019133566, -1332111063, 1999449434, 286199582, -877612933, -61582168, -692339859, 974525996}; + public static final int[] m = {1353184337, 1399144830, -1012656358, -1772214470, -882136261, -247096033, -1420232020, -1828461749, 1442459680, -160598355, -1854485368, 625738485, -52959921, -674551099, -2143013594, -1885117771, 1230680542, 1729870373, -1743852987, -507445667, 41234371, 317738113, -1550367091, -956705941, -413167869, -1784901099, -344298049, -631680363, 763608788, -752782248, 694804553, 1154009486, 1787413109, 2021232372, 1799248025, -579749593, -1236278850, 397248752, 1722556617, -1271214467, 407560035, -2110711067, 1613975959, 1165972322, -529046351, -2068943941, 480281086, -1809118983, 1483229296, 436028815, -2022908268, -1208452270, 601060267, -503166094, 1468997603, 715871590, 120122290, 63092015, -1703164538, -1526188077, -226023376, -1297760477, -1167457534, 1552029421, 723308426, -1833666137, -252573709, -1578997426, -839591323, -708967162, 526529745, -1963022652, -1655493068, -1604979806, 853641733, 1978398372, 971801355, -1427152832, 111112542, 1360031421, -108388034, 1023860118, -1375387939, 1186850381, -1249028975, 90031217, 1876166148, -15380384, 620468249, -1746289194, -868007799, 2006899047, -1119688528, -2004121337, 945494503, -605108103, 1191869601, -384875908, -920746760, 0, -2088337399, 1223502642, -1401941730, 1316117100, -67170563, 1446544655, 517320253, 658058550, 1691946762, 564550760, -783000677, 976107044, -1318647284, 266819475, -761860428, -1634624741, 1338359936, -1574904735, 1766553434, 370807324, 179999714, -450191168, 1138762300, 488053522, 185403662, -1379431438, -1180125651, -928440812, -2061897385, 1275557295, -1143105042, -44007517, -1624899081, -1124765092, -985962940, 880737115, 1982415755, -590994485, 1761406390, 1676797112, -891538985, 277177154, 1076008723, 538035844, 2099530373, -130171950, 288553390, 1839278535, 1261411869, -214912292, -330136051, -790380169, 1813426987, -1715900247, -95906799, 577038663, -997393240, 440397984, -668172970, -275762398, -951170681, -1043253031, -22885748, 906744984, -813566554, 685669029, 646887386, -1530942145, -459458004, 227702864, -1681105046, 1648787028, -1038905866, -390539120, 1593260334, -173030526, -1098883681, 2090061929, -1456614033, -1290656305, 999926984, -1484974064, 1852021992, 2075868123, 158869197, -199730834, 28809964, -1466282109, 1701746150, 2129067946, 147831841, -420997649, -644094022, -835293366, -737566742, -696471511, -1347247055, 824393514, 815048134, -1067015627, 935087732, -1496677636, -1328508704, 366520115, 1251476721, -136647615, 240176511, 804688151, -1915335306, 1303441219, 1414376140, -553347356, -474623586, 461924940, -1205916479, 2136040774, 82468509, 1563790337, 1937016826, 776014843, 1511876531, 1389550482, 861278441, 323475053, -1939744870, 2047648055, -1911228327, -1992551445, -299390514, 902390199, -303751967, 1018251130, 1507840668, 1064563285, 2043548696, -1086863501, -355600557, 1537932639, 342834655, -2032450440, -2114736182, 1053059257, 741614648, 1598071746, 1925389590, 203809468, -1958134744, 1100287487, 1895934009, -558691320, -1662733096, -1866377628, 1636092795, 1890988757, 1952214088, 1113045200}; + + /* renamed from: a reason: collision with root package name */ + public int f899a; + + /* renamed from: b reason: collision with root package name */ + public int[][] f900b = null; + + /* renamed from: c reason: collision with root package name */ + public int f901c; + + /* renamed from: d reason: collision with root package name */ + public int f902d; + public int e; + public int f; + public boolean g; + public byte[] h; + + public static int a(int i2) { + return (((i2 & -2139062144) >>> 7) * 27) ^ ((2139062143 & i2) << 1); + } + + public static int a(int i2, int i3) { + return (i2 << (-i3)) | (i2 >>> i3); + } + + public static int b(int i2) { + int i3 = i2 & -1061109568; + int i4 = i3 ^ (i3 >>> 1); + return (i4 >>> 5) ^ (((1061109567 & i2) << 2) ^ (i4 >>> 2)); + } + + public static int c(int i2) { + int a2 = a(i2, 8) ^ i2; + int a3 = i2 ^ a(a2); + int b2 = a2 ^ b(a3); + return a3 ^ (b2 ^ a(b2, 16)); + } + + public static int d(int i2) { + byte[] bArr = i; + return (bArr[(i2 >> 24) & 255] << 24) | (bArr[i2 & 255] & 255) | ((bArr[(i2 >> 8) & 255] & 255) << 8) | ((bArr[(i2 >> 16) & 255] & 255) << 16); + } + + public int a() { + return 16; + } + + public int a(byte[] bArr, int i2, byte[] bArr2, int i3) { + if (this.f900b == null) { + throw new IllegalStateException("AES engine not initialised"); + } else if (i2 + 16 > bArr.length) { + throw new e("input buffer too short"); + } else if (i3 + 16 <= bArr2.length) { + boolean z = this.g; + b(bArr, i2); + int[][] iArr = this.f900b; + if (z) { + b(iArr); + } else { + a(iArr); + } + a(bArr2, i3); + return 16; + } else { + throw new g("output buffer too short"); + } + } + + public void a(boolean z, c cVar) { + if (cVar instanceof d.a.a.k.a) { + this.f900b = a(((d.a.a.k.a) cVar).a(), z); + this.g = z; + if (z) { + this.h = d.a.b.a.a(i); + } else { + this.h = d.a.b.a.a(j); + } + } else { + throw new IllegalArgumentException("invalid parameter passed to AES init - " + cVar.getClass().getName()); + } + } + + public final void a(byte[] bArr, int i2) { + int i3 = i2 + 1; + int i4 = this.f901c; + bArr[i2] = (byte) i4; + int i5 = i3 + 1; + bArr[i3] = (byte) (i4 >> 8); + int i6 = i5 + 1; + bArr[i5] = (byte) (i4 >> 16); + int i7 = i6 + 1; + bArr[i6] = (byte) (i4 >> 24); + int i8 = i7 + 1; + int i9 = this.f902d; + bArr[i7] = (byte) i9; + int i10 = i8 + 1; + bArr[i8] = (byte) (i9 >> 8); + int i11 = i10 + 1; + bArr[i10] = (byte) (i9 >> 16); + int i12 = i11 + 1; + bArr[i11] = (byte) (i9 >> 24); + int i13 = i12 + 1; + int i14 = this.e; + bArr[i12] = (byte) i14; + int i15 = i13 + 1; + bArr[i13] = (byte) (i14 >> 8); + int i16 = i15 + 1; + bArr[i15] = (byte) (i14 >> 16); + int i17 = i16 + 1; + bArr[i16] = (byte) (i14 >> 24); + int i18 = i17 + 1; + int i19 = this.f; + bArr[i17] = (byte) i19; + int i20 = i18 + 1; + bArr[i18] = (byte) (i19 >> 8); + bArr[i20] = (byte) (i19 >> 16); + bArr[i20 + 1] = (byte) (i19 >> 24); + } + + public final void a(int[][] iArr) { + int i2 = this.f901c; + int i3 = this.f899a; + char c2 = 0; + int i4 = i2 ^ iArr[i3][0]; + int i5 = 1; + int i6 = this.f902d ^ iArr[i3][1]; + int i7 = this.e ^ iArr[i3][2]; + int i8 = i3 - 1; + int i9 = iArr[i3][3] ^ this.f; + while (i8 > i5) { + int[] iArr2 = m; + int a2 = (((a(iArr2[(i9 >> 8) & 255], 24) ^ iArr2[i4 & 255]) ^ a(m[(i7 >> 16) & 255], 16)) ^ a(m[(i6 >> 24) & 255], 8)) ^ iArr[i8][c2]; + int[] iArr3 = m; + int a3 = (((a(iArr3[(i4 >> 8) & 255], 24) ^ iArr3[i6 & 255]) ^ a(m[(i9 >> 16) & 255], 16)) ^ a(m[(i7 >> 24) & 255], 8)) ^ iArr[i8][i5]; + int[] iArr4 = m; + int a4 = (((a(iArr4[(i6 >> 8) & 255], 24) ^ iArr4[i7 & 255]) ^ a(m[(i4 >> 16) & 255], 16)) ^ a(m[(i9 >> 24) & 255], 8)) ^ iArr[i8][2]; + int[] iArr5 = m; + int a5 = a(m[(i4 >> 24) & 255], 8) ^ ((iArr5[i9 & 255] ^ a(iArr5[(i7 >> 8) & 255], 24)) ^ a(m[(i6 >> 16) & 255], 16)); + int i10 = i8 - 1; + int i11 = a5 ^ iArr[i8][3]; + int[] iArr6 = m; + int a6 = (((a(iArr6[(i11 >> 8) & 255], 24) ^ iArr6[a2 & 255]) ^ a(m[(a4 >> 16) & 255], 16)) ^ a(m[(a3 >> 24) & 255], 8)) ^ iArr[i10][0]; + int[] iArr7 = m; + int a7 = (((a(iArr7[(a2 >> 8) & 255], 24) ^ iArr7[a3 & 255]) ^ a(m[(i11 >> 16) & 255], 16)) ^ a(m[(a4 >> 24) & 255], 8)) ^ iArr[i10][1]; + int[] iArr8 = m; + int a8 = (((a(iArr8[(a3 >> 8) & 255], 24) ^ iArr8[a4 & 255]) ^ a(m[(a2 >> 16) & 255], 16)) ^ a(m[(i11 >> 24) & 255], 8)) ^ iArr[i10][2]; + int[] iArr9 = m; + int a9 = ((iArr9[i11 & 255] ^ a(iArr9[(a4 >> 8) & 255], 24)) ^ a(m[(a3 >> 16) & 255], 16)) ^ a(m[(a2 >> 24) & 255], 8); + int i12 = i10 - 1; + i9 = iArr[i10][3] ^ a9; + i4 = a6; + i6 = a7; + i7 = a8; + i5 = 1; + i8 = i12; + c2 = 0; + } + int[] iArr10 = m; + int a10 = (((a(iArr10[(i9 >> 8) & 255], 24) ^ iArr10[i4 & 255]) ^ a(m[(i7 >> 16) & 255], 16)) ^ a(m[(i6 >> 24) & 255], 8)) ^ iArr[i8][0]; + int[] iArr11 = m; + int a11 = (((a(iArr11[(i4 >> 8) & 255], 24) ^ iArr11[i6 & 255]) ^ a(m[(i9 >> 16) & 255], 16)) ^ a(m[(i7 >> 24) & 255], 8)) ^ iArr[i8][1]; + int[] iArr12 = m; + int a12 = (((a(iArr12[(i6 >> 8) & 255], 24) ^ iArr12[i7 & 255]) ^ a(m[(i4 >> 16) & 255], 16)) ^ a(m[(i9 >> 24) & 255], 8)) ^ iArr[i8][2]; + int[] iArr13 = m; + int a13 = (a(m[(i4 >> 24) & 255], 8) ^ ((iArr13[i9 & 255] ^ a(iArr13[(i7 >> 8) & 255], 24)) ^ a(m[(i6 >> 16) & 255], 16))) ^ iArr[i8][3]; + byte[] bArr = j; + byte[] bArr2 = this.h; + this.f901c = ((((bArr[a10 & 255] & 255) ^ ((bArr2[(a13 >> 8) & 255] & 255) << 8)) ^ ((bArr2[(a12 >> 16) & 255] & 255) << 16)) ^ (bArr[(a11 >> 24) & 255] << 24)) ^ iArr[0][0]; + this.f902d = ((((bArr2[a11 & 255] & 255) ^ ((bArr2[(a10 >> 8) & 255] & 255) << 8)) ^ ((bArr[(a13 >> 16) & 255] & 255) << 16)) ^ (bArr2[(a12 >> 24) & 255] << 24)) ^ iArr[0][1]; + this.e = ((((bArr2[a12 & 255] & 255) ^ ((bArr[(a11 >> 8) & 255] & 255) << 8)) ^ ((bArr[(a10 >> 16) & 255] & 255) << 16)) ^ (bArr2[(a13 >> 24) & 255] << 24)) ^ iArr[0][2]; + this.f = ((((bArr[a13 & 255] & 255) ^ ((bArr2[(a12 >> 8) & 255] & 255) << 8)) ^ ((bArr2[(a11 >> 16) & 255] & 255) << 16)) ^ (bArr2[(a10 >> 24) & 255] << 24)) ^ iArr[0][3]; + } + + public final int[][] a(byte[] bArr, boolean z) { + byte[] bArr2 = bArr; + int length = bArr2.length; + if (length < 16 || length > 32 || (length & 7) != 0) { + throw new IllegalArgumentException("Key length not 128/192/256 bits."); + } + int i2 = length >>> 2; + int i3 = i2 + 6; + this.f899a = i3; + int[] iArr = new int[2]; + iArr[1] = 4; + iArr[0] = i3 + 1; + int[][] iArr2 = (int[][]) Array.newInstance(int.class, iArr); + if (i2 == 4) { + int a2 = b.a(bArr2, 0); + iArr2[0][0] = a2; + int a3 = b.a(bArr2, 4); + iArr2[0][1] = a3; + int a4 = b.a(bArr2, 8); + iArr2[0][2] = a4; + int a5 = b.a(bArr2, 12); + iArr2[0][3] = a5; + for (int i4 = 1; i4 <= 10; i4++) { + a2 ^= d(a(a5, 8)) ^ k[i4 - 1]; + iArr2[i4][0] = a2; + a3 ^= a2; + iArr2[i4][1] = a3; + a4 ^= a3; + iArr2[i4][2] = a4; + a5 ^= a4; + iArr2[i4][3] = a5; + } + } else if (i2 == 6) { + int a6 = b.a(bArr2, 0); + iArr2[0][0] = a6; + int a7 = b.a(bArr2, 4); + iArr2[0][1] = a7; + int a8 = b.a(bArr2, 8); + iArr2[0][2] = a8; + int a9 = b.a(bArr2, 12); + iArr2[0][3] = a9; + int a10 = b.a(bArr2, 16); + iArr2[1][0] = a10; + int a11 = b.a(bArr2, 20); + iArr2[1][1] = a11; + int d2 = a6 ^ (d(a(a11, 8)) ^ 1); + iArr2[1][2] = d2; + int i5 = a7 ^ d2; + iArr2[1][3] = i5; + int i6 = a8 ^ i5; + iArr2[2][0] = i6; + int i7 = a9 ^ i6; + iArr2[2][1] = i7; + int i8 = a10 ^ i7; + iArr2[2][2] = i8; + int i9 = a11 ^ i8; + iArr2[2][3] = i9; + int i10 = 2; + for (int i11 = 3; i11 < 12; i11 += 3) { + int d3 = d(a(i9, 8)) ^ i10; + int i12 = i10 << 1; + int i13 = d2 ^ d3; + iArr2[i11][0] = i13; + int i14 = i5 ^ i13; + iArr2[i11][1] = i14; + int i15 = i6 ^ i14; + iArr2[i11][2] = i15; + int i16 = i7 ^ i15; + iArr2[i11][3] = i16; + int i17 = i8 ^ i16; + int i18 = i11 + 1; + iArr2[i18][0] = i17; + int i19 = i9 ^ i17; + iArr2[i18][1] = i19; + int d4 = d(a(i19, 8)) ^ i12; + i10 = i12 << 1; + d2 = i13 ^ d4; + iArr2[i18][2] = d2; + i5 = i14 ^ d2; + iArr2[i18][3] = i5; + i6 = i15 ^ i5; + int i20 = i11 + 2; + iArr2[i20][0] = i6; + i7 = i16 ^ i6; + iArr2[i20][1] = i7; + i8 = i17 ^ i7; + iArr2[i20][2] = i8; + i9 = i19 ^ i8; + iArr2[i20][3] = i9; + } + int d5 = (d(a(i9, 8)) ^ i10) ^ d2; + iArr2[12][0] = d5; + int i21 = d5 ^ i5; + iArr2[12][1] = i21; + int i22 = i21 ^ i6; + iArr2[12][2] = i22; + iArr2[12][3] = i22 ^ i7; + } else if (i2 == 8) { + int a12 = b.a(bArr2, 0); + iArr2[0][0] = a12; + int a13 = b.a(bArr2, 4); + iArr2[0][1] = a13; + int a14 = b.a(bArr2, 8); + iArr2[0][2] = a14; + int a15 = b.a(bArr2, 12); + iArr2[0][3] = a15; + int a16 = b.a(bArr2, 16); + iArr2[1][0] = a16; + int a17 = b.a(bArr2, 20); + iArr2[1][1] = a17; + int a18 = b.a(bArr2, 24); + iArr2[1][2] = a18; + int a19 = b.a(bArr2, 28); + iArr2[1][3] = a19; + int i23 = 1; + for (int i24 = 2; i24 < 14; i24 += 2) { + int d6 = d(a(a19, 8)) ^ i23; + i23 <<= 1; + a12 ^= d6; + iArr2[i24][0] = a12; + a13 ^= a12; + iArr2[i24][1] = a13; + a14 ^= a13; + iArr2[i24][2] = a14; + a15 ^= a14; + iArr2[i24][3] = a15; + a16 ^= d(a15); + int i25 = i24 + 1; + iArr2[i25][0] = a16; + a17 ^= a16; + iArr2[i25][1] = a17; + a18 ^= a17; + iArr2[i25][2] = a18; + a19 ^= a18; + iArr2[i25][3] = a19; + } + int d7 = (d(a(a19, 8)) ^ i23) ^ a12; + iArr2[14][0] = d7; + int i26 = d7 ^ a13; + iArr2[14][1] = i26; + int i27 = i26 ^ a14; + iArr2[14][2] = i27; + iArr2[14][3] = i27 ^ a15; + } else { + throw new IllegalStateException("Should never get here"); + } + if (!z) { + for (int i28 = 1; i28 < this.f899a; i28++) { + for (int i29 = 0; i29 < 4; i29++) { + iArr2[i28][i29] = c(iArr2[i28][i29]); + } + } + } + return iArr2; + } + + public void b() { + } + + public final void b(byte[] bArr, int i2) { + int i3 = i2 + 1; + byte b2 = bArr[i2] & 255; + this.f901c = b2; + int i4 = i3 + 1; + byte b3 = b2 | ((bArr[i3] & 255) << 8); + this.f901c = b3; + int i5 = i4 + 1; + byte b4 = b3 | ((bArr[i4] & 255) << 16); + this.f901c = b4; + int i6 = i5 + 1; + this.f901c = b4 | (bArr[i5] << 24); + int i7 = i6 + 1; + byte b5 = bArr[i6] & 255; + this.f902d = b5; + int i8 = i7 + 1; + byte b6 = ((bArr[i7] & 255) << 8) | b5; + this.f902d = b6; + int i9 = i8 + 1; + byte b7 = b6 | ((bArr[i8] & 255) << 16); + this.f902d = b7; + int i10 = i9 + 1; + this.f902d = b7 | (bArr[i9] << 24); + int i11 = i10 + 1; + byte b8 = bArr[i10] & 255; + this.e = b8; + int i12 = i11 + 1; + byte b9 = ((bArr[i11] & 255) << 8) | b8; + this.e = b9; + int i13 = i12 + 1; + byte b10 = b9 | ((bArr[i12] & 255) << 16); + this.e = b10; + int i14 = i13 + 1; + this.e = b10 | (bArr[i13] << 24); + int i15 = i14 + 1; + byte b11 = bArr[i14] & 255; + this.f = b11; + int i16 = i15 + 1; + byte b12 = ((bArr[i15] & 255) << 8) | b11; + this.f = b12; + byte b13 = b12 | ((bArr[i16] & 255) << 16); + this.f = b13; + this.f = (bArr[i16 + 1] << 24) | b13; + } + + public final void b(int[][] iArr) { + char c2 = 0; + int i2 = this.f901c ^ iArr[0][0]; + int i3 = 1; + int i4 = this.f902d ^ iArr[0][1]; + int i5 = this.e ^ iArr[0][2]; + int i6 = this.f ^ iArr[0][3]; + int i7 = 1; + while (i7 < this.f899a - i3) { + int[] iArr2 = l; + int a2 = (((a(iArr2[(i4 >> 8) & 255], 24) ^ iArr2[i2 & 255]) ^ a(l[(i5 >> 16) & 255], 16)) ^ a(l[(i6 >> 24) & 255], 8)) ^ iArr[i7][c2]; + int[] iArr3 = l; + int a3 = (((a(iArr3[(i5 >> 8) & 255], 24) ^ iArr3[i4 & 255]) ^ a(l[(i6 >> 16) & 255], 16)) ^ a(l[(i2 >> 24) & 255], 8)) ^ iArr[i7][i3]; + int[] iArr4 = l; + int a4 = (((a(iArr4[(i6 >> 8) & 255], 24) ^ iArr4[i5 & 255]) ^ a(l[(i2 >> 16) & 255], 16)) ^ a(l[(i4 >> 24) & 255], 8)) ^ iArr[i7][2]; + int[] iArr5 = l; + int a5 = ((a(iArr5[(i2 >> 8) & 255], 24) ^ iArr5[i6 & 255]) ^ a(l[(i4 >> 16) & 255], 16)) ^ a(l[(i5 >> 24) & 255], 8); + int i8 = i7 + 1; + int i9 = a5 ^ iArr[i7][3]; + int[] iArr6 = l; + int a6 = (((a(iArr6[(a3 >> 8) & 255], 24) ^ iArr6[a2 & 255]) ^ a(l[(a4 >> 16) & 255], 16)) ^ a(l[(i9 >> 24) & 255], 8)) ^ iArr[i8][0]; + int[] iArr7 = l; + int a7 = (((a(iArr7[(a4 >> 8) & 255], 24) ^ iArr7[a3 & 255]) ^ a(l[(i9 >> 16) & 255], 16)) ^ a(l[(a2 >> 24) & 255], 8)) ^ iArr[i8][1]; + int[] iArr8 = l; + int a8 = (((a(iArr8[(i9 >> 8) & 255], 24) ^ iArr8[a4 & 255]) ^ a(l[(a2 >> 16) & 255], 16)) ^ a(l[(a3 >> 24) & 255], 8)) ^ iArr[i8][2]; + int[] iArr9 = l; + int a9 = ((iArr9[i9 & 255] ^ a(iArr9[(a2 >> 8) & 255], 24)) ^ a(l[(a3 >> 16) & 255], 16)) ^ a(l[(a4 >> 24) & 255], 8); + int i10 = i8 + 1; + int i11 = a9 ^ iArr[i8][3]; + i4 = a7; + i3 = 1; + i6 = i11; + i2 = a6; + i5 = a8; + i7 = i10; + c2 = 0; + } + int[] iArr10 = l; + int a10 = (((a(iArr10[(i4 >> 8) & 255], 24) ^ iArr10[i2 & 255]) ^ a(l[(i5 >> 16) & 255], 16)) ^ a(l[(i6 >> 24) & 255], 8)) ^ iArr[i7][0]; + int[] iArr11 = l; + int a11 = (((a(iArr11[(i5 >> 8) & 255], 24) ^ iArr11[i4 & 255]) ^ a(l[(i6 >> 16) & 255], 16)) ^ a(l[(i2 >> 24) & 255], 8)) ^ iArr[i7][1]; + int[] iArr12 = l; + int a12 = (((a(iArr12[(i6 >> 8) & 255], 24) ^ iArr12[i5 & 255]) ^ a(l[(i2 >> 16) & 255], 16)) ^ a(l[(i4 >> 24) & 255], 8)) ^ iArr[i7][2]; + int[] iArr13 = l; + int a13 = ((a(iArr13[(i2 >> 8) & 255], 24) ^ iArr13[i6 & 255]) ^ a(l[(i4 >> 16) & 255], 16)) ^ a(l[(i5 >> 24) & 255], 8); + int i12 = i7 + 1; + int i13 = a13 ^ iArr[i7][3]; + byte[] bArr = i; + byte b2 = (bArr[a10 & 255] & 255) ^ ((bArr[(a11 >> 8) & 255] & 255) << 8); + byte[] bArr2 = this.h; + this.f901c = ((b2 ^ ((bArr2[(a12 >> 16) & 255] & 255) << 16)) ^ (bArr2[(i13 >> 24) & 255] << 24)) ^ iArr[i12][0]; + this.f902d = ((((bArr2[a11 & 255] & 255) ^ ((bArr[(a12 >> 8) & 255] & 255) << 8)) ^ ((bArr[(i13 >> 16) & 255] & 255) << 16)) ^ (bArr2[(a10 >> 24) & 255] << 24)) ^ iArr[i12][1]; + this.e = ((((bArr2[a12 & 255] & 255) ^ ((bArr[(i13 >> 8) & 255] & 255) << 8)) ^ ((bArr[(a10 >> 16) & 255] & 255) << 16)) ^ (bArr[(a11 >> 24) & 255] << 24)) ^ iArr[i12][2]; + this.f = ((((bArr2[i13 & 255] & 255) ^ ((bArr2[(a10 >> 8) & 255] & 255) << 8)) ^ ((bArr2[(a11 >> 16) & 255] & 255) << 16)) ^ (bArr[(a12 >> 24) & 255] << 24)) ^ iArr[i12][3]; + } +} diff --git a/examples/bouncydroid/jadx/d/a/a/j/a.java b/examples/bouncydroid/jadx/d/a/a/j/a.java new file mode 100644 index 0000000..66edd2e --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/j/a.java @@ -0,0 +1,4 @@ +package d.a.a.j; + +public interface a { +} diff --git a/examples/bouncydroid/jadx/d/a/a/j/b.java b/examples/bouncydroid/jadx/d/a/a/j/b.java new file mode 100644 index 0000000..06f568e --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/j/b.java @@ -0,0 +1,31 @@ +package d.a.a.j; + +import d.a.a.f; +import java.security.SecureRandom; + +public class b implements a { + public int a(byte[] bArr) { + byte b2 = bArr[bArr.length - 1] & 255; + byte b3 = (byte) b2; + boolean z = (b2 > bArr.length) | (b2 == 0); + for (int i = 0; i < bArr.length; i++) { + z |= (bArr.length - i <= b2) & (bArr[i] != b3); + } + if (!z) { + return b2; + } + throw new f("pad block corrupted"); + } + + public int a(byte[] bArr, int i) { + byte length = (byte) (bArr.length - i); + while (i < bArr.length) { + bArr[i] = length; + i++; + } + return length; + } + + public void a(SecureRandom secureRandom) { + } +} diff --git a/examples/bouncydroid/jadx/d/a/a/j/c.java b/examples/bouncydroid/jadx/d/a/a/j/c.java new file mode 100644 index 0000000..9c35940 --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/j/c.java @@ -0,0 +1,118 @@ +package d.a.a.j; + +import d.a.a.a; +import d.a.a.b; +import d.a.a.e; +import d.a.a.g; +import java.security.SecureRandom; + +public class c extends b { + public a e; + + public c(a aVar) { + this(aVar, new b()); + } + + public c(a aVar, a aVar2) { + this.f898d = aVar; + this.e = aVar2; + ((d.a.a.i.a) aVar).a(); + this.f895a = new byte[16]; + this.f896b = 0; + } + + public int a(int i) { + int i2 = i + this.f896b; + byte[] bArr = this.f895a; + int length = i2 % bArr.length; + return length == 0 ? Math.max(0, i2 - bArr.length) : i2 - length; + } + + public int a(byte[] bArr, int i) { + int a2; + int i2; + ((d.a.a.i.a) this.f898d).a(); + if (this.f897c) { + if (this.f896b != 16) { + i2 = 0; + } else if (i + 32 <= bArr.length) { + ((d.a.a.i.a) this.f898d).a(this.f895a, 0, bArr, i); + this.f896b = 0; + i2 = 16; + } else { + b(); + throw new g("output buffer too short"); + } + ((b) this.e).a(this.f895a, this.f896b); + ((d.a.a.i.a) this.f898d).a(this.f895a, 0, bArr, i + i2); + a2 = i2 + 16; + } else if (this.f896b == 16) { + a aVar = this.f898d; + byte[] bArr2 = this.f895a; + ((d.a.a.i.a) aVar).a(bArr2, 0, bArr2, 0); + this.f896b = 0; + try { + a2 = 16 - ((b) this.e).a(this.f895a); + System.arraycopy(this.f895a, 0, bArr, i, a2); + } catch (Throwable th) { + b(); + throw th; + } + } else { + b(); + throw new e("last block incomplete in decryption"); + } + b(); + return a2; + } + + public int a(byte[] bArr, int i, int i2, byte[] bArr2, int i3) { + if (i2 >= 0) { + a(); + int a2 = a(i2); + if (a2 <= 0 || a2 + i3 <= bArr2.length) { + byte[] bArr3 = this.f895a; + int length = bArr3.length; + int i4 = this.f896b; + int i5 = length - i4; + int i6 = 0; + if (i2 > i5) { + System.arraycopy(bArr, i, bArr3, i4, i5); + ((d.a.a.i.a) this.f898d).a(this.f895a, 0, bArr2, i3); + this.f896b = 0; + i2 -= i5; + i += i5; + i6 = 16; + while (i2 > this.f895a.length) { + ((d.a.a.i.a) this.f898d).a(bArr, i, bArr2, i3 + i6); + i6 += 16; + i2 -= 16; + i += 16; + } + } + System.arraycopy(bArr, i, this.f895a, this.f896b, i2); + this.f896b += i2; + return i6; + } + throw new g("output buffer too short"); + } + throw new IllegalArgumentException("Can't have a negative input length!"); + } + + public void a(boolean z, d.a.a.c cVar) { + this.f897c = z; + b(); + if (cVar instanceof d.a.a.k.b) { + d.a.a.k.b bVar = (d.a.a.k.b) cVar; + a aVar = this.e; + bVar.b(); + ((b) aVar).a((SecureRandom) null); + a aVar2 = this.f898d; + bVar.a(); + ((d.a.a.i.a) aVar2).a(z, (d.a.a.c) null); + return; + } + ((b) this.e).a((SecureRandom) null); + ((d.a.a.i.a) this.f898d).a(z, cVar); + } +} diff --git a/examples/bouncydroid/jadx/d/a/a/k/a.java b/examples/bouncydroid/jadx/d/a/a/k/a.java new file mode 100644 index 0000000..7bfb5fd --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/k/a.java @@ -0,0 +1,23 @@ +package d.a.a.k; + +import d.a.a.c; + +public class a implements c { + + /* renamed from: a reason: collision with root package name */ + public byte[] f903a; + + public a(byte[] bArr) { + this(bArr, 0, bArr.length); + } + + public a(byte[] bArr, int i, int i2) { + byte[] bArr2 = new byte[i2]; + this.f903a = bArr2; + System.arraycopy(bArr, i, bArr2, 0, i2); + } + + public byte[] a() { + return this.f903a; + } +} diff --git a/examples/bouncydroid/jadx/d/a/a/k/b.java b/examples/bouncydroid/jadx/d/a/a/k/b.java new file mode 100644 index 0000000..be47b7f --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/a/k/b.java @@ -0,0 +1,14 @@ +package d.a.a.k; + +import d.a.a.c; +import java.security.SecureRandom; + +public class b implements c { + public c a() { + return null; + } + + public SecureRandom b() { + return null; + } +} diff --git a/examples/bouncydroid/jadx/d/a/b/a.java b/examples/bouncydroid/jadx/d/a/b/a.java new file mode 100644 index 0000000..bc87295 --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/b/a.java @@ -0,0 +1,12 @@ +package d.a.b; + +public final class a { + public static byte[] a(byte[] bArr) { + if (bArr == null) { + return null; + } + byte[] bArr2 = new byte[bArr.length]; + System.arraycopy(bArr, 0, bArr2, 0, bArr.length); + return bArr2; + } +} diff --git a/examples/bouncydroid/jadx/d/a/b/b.java b/examples/bouncydroid/jadx/d/a/b/b.java new file mode 100644 index 0000000..7e2e17b --- /dev/null +++ b/examples/bouncydroid/jadx/d/a/b/b.java @@ -0,0 +1,9 @@ +package d.a.b; + +public abstract class b { + public static int a(byte[] bArr, int i) { + int i2 = i + 1; + int i3 = i2 + 1; + return (bArr[i3 + 1] << 24) | (bArr[i] & 255) | ((bArr[i2] & 255) << 8) | ((bArr[i3] & 255) << 16); + } +} diff --git a/logging.properties b/logging.properties new file mode 100644 index 0000000..38fc771 --- /dev/null +++ b/logging.properties @@ -0,0 +1,3 @@ +handlers = java.util.logging.ConsoleHandler +java.util.logging.SimpleFormatter.format = [%1$tr] %2$s %4$s: %5$s%n +java.util.logging.ConsoleHandler.level = INFO \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..e29bef3 --- /dev/null +++ b/pom.xml @@ -0,0 +1,80 @@ + + + 4.0.0 + + org.reversing.android-library-deobfuscator + android-library-deobfuscator-core + 0.1 + + + 2.21.2.Final + + + + ProjectRepo + ProjectRepo + file://${project.basedir}/libs + + + + + + com.beust + jcommander + 1.78 + + + + org.jetbrains + annotations + 19.0.0 + + + + fr.inria.gforge.spoon + spoon-core + 8.2.0-beta-12 + + + + + + + src + + + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + org.codehaus.mojo + exec-maven-plugin + 1.2.1 + + java + + -Djava.util.logging.config.file=logging.properties + -classpath + + org.reversing.ald.Main + ${appRoot} + -l + ${libPath} + -o + ${outPath} + -c + ${config} + -t + ${translationOut} + + + + + + \ No newline at end of file diff --git a/results/.gitkeep b/results/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/run-tests.sh b/run-tests.sh new file mode 100644 index 0000000..19343e7 --- /dev/null +++ b/run-tests.sh @@ -0,0 +1,7 @@ +#!/bin/bash +mvn compile exec:exec -DappRoot=./examples/bouncydroid/jadx \ + -DlibPath=./examples/bc-java/core/src/main/java \ + -DoutPath=./results/bouncydroid-jadx \ + -Dconfig=./examples/bouncydroid/config.txt \ + -DtranslationOut=./results/bouncydroid-jadx_translation.txt + diff --git a/src/org/reversing/ald/Args.java b/src/org/reversing/ald/Args.java new file mode 100644 index 0000000..f9b91f6 --- /dev/null +++ b/src/org/reversing/ald/Args.java @@ -0,0 +1,24 @@ +package org.reversing.ald; + +import com.beust.jcommander.Parameter; + +import java.util.ArrayList; +import java.util.List; + +public class Args { + @Parameter(description = "root of decompiled application") + protected String appRoot; + + @Parameter(names = { "-l", "--lib" }, description = "root of library sourcecode") + protected String libPath; + + @Parameter(names = { "-o", "--out" }, description = "output directory") + protected String outPath; + + @Parameter(names = { "-c", "--config" }, description = "file containing configuration and the initial translation") + protected String config; + + @Parameter(names = { "-t", "--translationOut" }, description = "file to write the translation map to") + protected String translationOut; +} + diff --git a/src/org/reversing/ald/Main.java b/src/org/reversing/ald/Main.java new file mode 100644 index 0000000..79369de --- /dev/null +++ b/src/org/reversing/ald/Main.java @@ -0,0 +1,83 @@ +package org.reversing.ald; + +import com.beust.jcommander.JCommander; +import org.reversing.ald.codegen.MethodProcessor; +import org.reversing.ald.codegen.PackageProcessor; +import org.reversing.ald.codegen.TranslationPrinter; +import org.reversing.ald.codegen.TypeProcessor; +import org.reversing.ald.data.Codebase; +import org.reversing.ald.data.Translation; +import org.reversing.ald.matching.CodebaseMatcher; +import spoon.Launcher; +import spoon.SpoonAPI; + + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.logging.Logger; +import java.util.stream.Stream; + +public class Main { + private static final Logger LOGGER = Logger.getLogger(Main.class.getName()); + + public static void main(String[] args) throws IOException { + Args arg = new Args(); + JCommander.newBuilder() + .addObject(arg) + .build() + .parse(args); + + LOGGER.info("appRoot: " + arg.appRoot); + LOGGER.info("libPath: " + arg.libPath); + LOGGER.info("outPath: " + arg.outPath); + LOGGER.info("config: " + arg.config); + LOGGER.info("translationOut: " + arg.translationOut); + + Path configPath = Paths.get(arg.config); + Path translationOutPath = Paths.get(arg.translationOut); + + final Translation initialTranslation = new Translation<>(); + + try (Stream lines = Files.lines(configPath)) { + lines.forEach(s -> { + if (s.startsWith("#")) + return; + String[] parts = s.split(" "); + initialTranslation.addEntry(parts[0], parts[1]); + }); + } catch (IOException e) { + e.printStackTrace(); + } + + LOGGER.info("Initial translation:"); + LOGGER.info(TranslationPrinter.translationToString(initialTranslation)); + + LOGGER.info("Loading code..."); + Codebase obfuscated = new Codebase(); + Codebase library = new Codebase(); + obfuscated.load(arg.appRoot); + library.load(arg.libPath); + + LOGGER.info("Creating translation..."); + CodebaseMatcher nm = new CodebaseMatcher(obfuscated, library, initialTranslation); + Translation finalTranslation = nm.createTranslation(); + LOGGER.info("Final translation:"); + String finalTranslationStr = TranslationPrinter.translationToString(finalTranslation); + LOGGER.info(finalTranslationStr); + Files.write(translationOutPath, finalTranslationStr.getBytes()); + + SpoonAPI launcher = new Launcher(); + launcher.getEnvironment().setAutoImports(true); + launcher.getEnvironment().setNoClasspath(true); + launcher.addInputResource(arg.appRoot); + launcher.setSourceOutputDirectory(arg.outPath); + launcher.addProcessor(new MethodProcessor(finalTranslation)); + PackageProcessor pp = new PackageProcessor(); + launcher.addProcessor(new TypeProcessor(finalTranslation, pp)); + LOGGER.info("Writing result..."); + launcher.run(); + } + +} diff --git a/src/org/reversing/ald/codegen/MethodProcessor.java b/src/org/reversing/ald/codegen/MethodProcessor.java new file mode 100644 index 0000000..57c78c2 --- /dev/null +++ b/src/org/reversing/ald/codegen/MethodProcessor.java @@ -0,0 +1,24 @@ +package org.reversing.ald.codegen; + +import org.reversing.ald.data.Translation; +import org.reversing.ald.util.SignatureUtil; +import spoon.processing.AbstractProcessor; +import spoon.refactoring.Refactoring; +import spoon.reflect.declaration.CtMethod; + +public class MethodProcessor extends AbstractProcessor> { + + private Translation translation; + + public MethodProcessor(Translation translation) { + this.translation = translation; + } + + @Override + public void process(CtMethod ctMethod) { + String newMethodName = translation.getSource(SignatureUtil.getQualifiedName(ctMethod, translation)); + if (newMethodName != null) { + Refactoring.changeMethodName(ctMethod, newMethodName); + } + } +} \ No newline at end of file diff --git a/src/org/reversing/ald/codegen/PackageProcessor.java b/src/org/reversing/ald/codegen/PackageProcessor.java new file mode 100644 index 0000000..73a66af --- /dev/null +++ b/src/org/reversing/ald/codegen/PackageProcessor.java @@ -0,0 +1,27 @@ +package org.reversing.ald.codegen; + +import org.reversing.ald.data.Translation; +import org.reversing.ald.util.SignatureUtil; +import spoon.processing.AbstractProcessor; +import spoon.refactoring.Refactoring; +import spoon.reflect.declaration.*; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; + +public class PackageProcessor extends AbstractProcessor { + + Map renamings = new HashMap<>(); + + public void addPackageTranslation(CtPackage pack, String newName) { + renamings.put(pack, newName); + } + + @Override + public void process(CtPackage ctPackage) { + String newName = renamings.get(ctPackage); + if (newName != null) + ctPackage.setSimpleName(newName); + } +} \ No newline at end of file diff --git a/src/org/reversing/ald/codegen/TranslationPrinter.java b/src/org/reversing/ald/codegen/TranslationPrinter.java new file mode 100644 index 0000000..16a2843 --- /dev/null +++ b/src/org/reversing/ald/codegen/TranslationPrinter.java @@ -0,0 +1,39 @@ +package org.reversing.ald.codegen; + +import org.reversing.ald.data.Translation; + +import java.io.IOException; +import java.io.StringWriter; +import java.io.Writer; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class TranslationPrinter { + public static void writeTranslation(Translation tr, Writer out) throws IOException { + out.write("# entries: "); + out.write("" + tr.getAllObfuscated().size()); + out.write("\n"); + List nameList = new ArrayList<>(tr.getAllObfuscated()); + Collections.sort(nameList); + for (String obf : nameList) { + // extra newline for classes + if (!obf.contains("(")) + out.write("\n"); + out.write(obf); + out.write(" "); + out.write(tr.getSource(obf)); + out.write("\n"); + } + } + + public static String translationToString(Translation tr) { + StringWriter sw = new StringWriter(); + try { + writeTranslation(tr, sw); + } catch (IOException e) { + e.printStackTrace(); + } + return sw.toString(); + } +} diff --git a/src/org/reversing/ald/codegen/TypeProcessor.java b/src/org/reversing/ald/codegen/TypeProcessor.java new file mode 100644 index 0000000..d3d7312 --- /dev/null +++ b/src/org/reversing/ald/codegen/TypeProcessor.java @@ -0,0 +1,57 @@ +package org.reversing.ald.codegen; + +import org.reversing.ald.data.Translation; +import spoon.processing.AbstractProcessor; +import spoon.refactoring.Refactoring; +import spoon.reflect.declaration.CtClass; +import spoon.reflect.declaration.CtPackage; +import spoon.reflect.declaration.CtType; +import spoon.reflect.reference.CtTypeReference; + +import java.util.LinkedList; + +public class TypeProcessor extends AbstractProcessor> { + + private Translation translation; + private PackageProcessor packageProcessor; + + public TypeProcessor(Translation translation, PackageProcessor packageProcessor) { + this.translation = translation; + this.packageProcessor = packageProcessor; + } + + private void renamePackage(CtPackage pack, String[] nameParts) { + LinkedList packages = new LinkedList<>(); + packages.add(pack); + while (pack.getParent() instanceof CtPackage) { + pack = (CtPackage) pack.getParent(); + packages.addFirst(pack); + } + for (int i = 0; i < nameParts.length - 1; i++) { + packageProcessor.addPackageTranslation(packages.get(i), nameParts[i]); + } + } + + @Override + public void process(CtClass ctClass) + { + for (CtTypeReference t : ctClass.getReferencedTypes()) { + CtType p = t.getDeclaration(); + + if(p==null || p.isClass()) + continue; + String newTypeName = translation.getSource(p.getQualifiedName()); + if (newTypeName != null) { + String[] nameParts = newTypeName.split("\\."); + Refactoring.changeTypeName(p, nameParts[nameParts.length - 1]); + } + } + + String newClassName = translation.getSource(ctClass.getQualifiedName()); + if (newClassName != null) { + String[] nameParts = newClassName.split("\\."); + renamePackage(ctClass.getPackage(), nameParts); + Refactoring.changeTypeName(ctClass, nameParts[nameParts.length - 1]); + } + } +} \ No newline at end of file diff --git a/src/org/reversing/ald/data/Codebase.java b/src/org/reversing/ald/data/Codebase.java new file mode 100644 index 0000000..0abd924 --- /dev/null +++ b/src/org/reversing/ald/data/Codebase.java @@ -0,0 +1,38 @@ +package org.reversing.ald.data; + +import spoon.Launcher; +import spoon.reflect.declaration.CtClass; +import spoon.reflect.declaration.CtType; +import spoon.reflect.factory.Factory; + +import java.io.IOException; +import java.util.List; +import java.util.logging.Logger; + +public class Codebase { + private static final Logger LOGGER = Logger.getLogger(Codebase.class.getName()); + + private Launcher launcher; + private Factory spoon; + + public void load(String path) throws IOException { + launcher = new Launcher(); + launcher.getEnvironment().setAutoImports(true); + launcher.getEnvironment().setNoClasspath(true); + launcher.addInputResource(path); + launcher.buildModel(); + + spoon = launcher.getFactory(); + } + + public void save(String path) { + } + + public CtClass getClass(String name) { + return spoon.Class().get(name); + } + + public List> getClasses() { + return spoon.Class().getAll(); + } +} diff --git a/src/org/reversing/ald/data/StringTranslation.java b/src/org/reversing/ald/data/StringTranslation.java new file mode 100644 index 0000000..0e65814 --- /dev/null +++ b/src/org/reversing/ald/data/StringTranslation.java @@ -0,0 +1,9 @@ +package org.reversing.ald.data; + +public class StringTranslation extends Translation +{ + public String translate(String obfuscatedName) { + String res = obfToSource.get(obfuscatedName); + return res == null ? obfuscatedName : res; + } +} diff --git a/src/org/reversing/ald/data/Translation.java b/src/org/reversing/ald/data/Translation.java new file mode 100644 index 0000000..7cd21bc --- /dev/null +++ b/src/org/reversing/ald/data/Translation.java @@ -0,0 +1,57 @@ +package org.reversing.ald.data; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.logging.Logger; + +/** + * Represents a translation table, like a phonebook + */ +public class Translation { + private static final Logger LOGGER = Logger.getLogger(Translation.class.getName()); + + protected Map sourceToObf = new HashMap<>(); + + protected Map obfToSource = new HashMap<>(); + + public void addEntry(L obfuscated, R source) { + if (obfToSource.containsKey(obfuscated)) { + LOGGER.warning("obfuscated entry already existed for " + obfuscated); + } + if (sourceToObf.containsKey(source)) { + LOGGER.warning("source entry already existed for " + source); + } + sourceToObf.put(source, obfuscated); + obfToSource.put(obfuscated, source); + } + + public R getSource(L obfuscatedName) { + return obfToSource.get(obfuscatedName); + } + + public L getObfuscatedName(R sourceName) { + return sourceToObf.get(sourceName); + } + + public Set getSourceNames() { + return sourceToObf.keySet(); + } + + public Set getAllObfuscated() { + return obfToSource.keySet(); + } + + public void clear() { + sourceToObf.clear(); + obfToSource.clear(); + } + + @Override + public Translation clone() { + Translation clone = new Translation<>(); + clone.obfToSource.putAll(obfToSource); + clone.sourceToObf.putAll(sourceToObf); + return clone; + } +} diff --git a/src/org/reversing/ald/matching/CodebaseMatcher.java b/src/org/reversing/ald/matching/CodebaseMatcher.java new file mode 100644 index 0000000..ee7b4aa --- /dev/null +++ b/src/org/reversing/ald/matching/CodebaseMatcher.java @@ -0,0 +1,212 @@ +package org.reversing.ald.matching; + + +import org.reversing.ald.data.Codebase; +import org.reversing.ald.data.Translation; +import org.reversing.ald.util.SignatureUtil; +import spoon.reflect.cu.SourcePosition; +import spoon.reflect.declaration.*; +import spoon.reflect.reference.CtExecutableReference; +import spoon.reflect.reference.CtTypeReference; + +import java.io.IOException; +import java.util.*; +import java.util.logging.Logger; + + +/** + * Generates translations between two codebases + */ +public class CodebaseMatcher { + private static final Logger LOGGER = Logger.getLogger(CodebaseMatcher.class.getName()); + + private Translation strTranslation; + private Translation translation = new Translation<>(); + + private Codebase obfuscated; + private Codebase library; + + private Queue todoList = new LinkedList<>(); + private Set doneList = new HashSet<>(); + + public CodebaseMatcher(Codebase obfuscated, Codebase library, Translation initialTranslation) { + this.obfuscated = obfuscated; + this.library = library; + this.strTranslation = initialTranslation.clone(); + + strTranslation.getAllObfuscated().forEach(o -> { + if (o.contains("(")) + return; + addInitialTranslation(o, strTranslation.getSource(o)); + }); + } + + private void addInitialTranslation(String obfClassname, String sourceClassname) { + CtClass obfClass = obfuscated.getClass(obfClassname); + CtClass sourceClass = library.getClass(sourceClassname); + + if (obfClass == null) { + LOGGER.warning("Could not find obfuscated class " + obfClassname); + return; + } + if (sourceClass == null) { + LOGGER.warning("Could not find source class " + sourceClassname); + return; + } + if (doneList.contains(obfClass)) + return; + LOGGER.info("Initial translation: "+obfClassname+":"+sourceClassname); + translation.addEntry(obfClass, sourceClass); + } + + public Translation createTranslation() throws IOException { + todoList.addAll(translation.getAllObfuscated()); + while (!todoList.isEmpty()) { + Object obf = todoList.poll(); + Object src = translation.getSource(obf); + doneList.add(obf); + if (obf instanceof CtClass && src instanceof CtClass) { + processClasses((CtClass)obf, (CtClass)src); + } else if(obf instanceof CtExecutable && src instanceof CtExecutable) { + processEcecutables((CtExecutable)obf, (CtExecutable)src); + } else { + LOGGER.warning("no handler for this class: "+obf.getClass().getCanonicalName()); + } + } + updateStringTranslation(); + return strTranslation; + } + + private void updateStringTranslation() { + for (Object obf : translation.getAllObfuscated()) { + Object src = translation.getSource(obf); + if (obf instanceof CtType && src instanceof CtType) { + strTranslation.addEntry(((CtType)obf).getQualifiedName(), ((CtType)src).getQualifiedName()); + } else if(obf instanceof CtMethod && src instanceof CtMethod) { + strTranslation.addEntry(SignatureUtil.getQualifiedName((CtMethod)obf, translation), + ((CtMethod) src).getSimpleName()); + } + } + } + + private void addCorrelation(CtType obf, CtType src) { + LOGGER.info("correlating types: "+obf.getQualifiedName()+" with "+src.getQualifiedName()); + queue_internal(obf, src); + } + + private void addCorrelation(CtExecutable obf, CtExecutable src) { + LOGGER.info("correlating executables: "+obf.getSignature()+" with "+src.getSignature()); + queue_internal(obf, src); + } + + private void queue_internal(Object obf, Object source) { + if (doneList.contains(obf)) + return; + + LOGGER.info("correlating: "+obf.getClass().getSimpleName()+" with "+source.getClass().getSimpleName()); + + translation.addEntry(obf, source); + todoList.add(obf); + } + + private void processClasses(CtClass obfClass, CtClass sourceClass) { + // superclasses + CtTypeReference sc = obfClass.getSuperclass(); + if(sc != null && sc.isClass()) + { + LOGGER.info("Found superclass correlation"); + addCorrelation(sc.getDeclaration(), sourceClass.getSuperclass().getDeclaration()); + } + + // constructors and methods + Collection> obfMethods = obfClass.getDeclaredExecutables(); + Collection> sourceMethods = sourceClass.getDeclaredExecutables(); + Map sourceSignatures = new HashMap<>(); + sourceMethods.forEach(m -> { + CtExecutable ex = m.getExecutableDeclaration(); + sourceSignatures.put(new ExecutableSignature(ex), ex); + }); + + Map matchedMethods = new HashMap<>(); + + for (CtExecutableReference method : obfMethods) { + CtExecutable m = method.getExecutableDeclaration(); + ExecutableSignature ms = new ExecutableSignature(m); + CtExecutable match = sourceSignatures.get(ms); + + if (match != null) { + if (m instanceof CtMethod && match instanceof CtMethod) + matchedMethods.put((CtMethod)m, (CtMethod)match); + addCorrelation(m, match); + sourceSignatures.remove(ms); + } + } + matchReferences(matchedMethods); + } + + private void processEcecutables(CtExecutable obf, CtExecutable src) + { + List obf_params = obf.getParameters(); + List src_params = src.getParameters(); + for (int i = 0; i < obf_params.size(); i++) { + CtParameter p = obf_params.get(i); + if (p.getType().isPrimitive() || p.getType().isArray()) + continue; + CtParameter pSource = src_params.get(i); + if (MatchUtil.typesEqual(p.getType(), pSource.getType())) { + addCorrelation(p.getType().getDeclaration(), pSource.getType().getDeclaration()); + } + } + } + + private void matchReferences(Map matchedMethods) + { + //DeepRepresentationComparator comparer = new DeepRepresentationComparator(); + Map> translationProbs = new HashMap<>(); + for(CtMethod obfMethod : matchedMethods.keySet()) + { + CtMethod sourceMethod = matchedMethods.get(obfMethod); + Set> reftypes = obfMethod.getReferencedTypes(); + Set> sourcetypes = sourceMethod.getReferencedTypes(); + + for(CtTypeReference r : reftypes) + { + if(r.isPrimitive() || r.getPosition() == SourcePosition.NOPOSITION) + continue; + + //System.out.println(r.getDirectChildren()); + if(!translationProbs.containsKey(r)) + { + translationProbs.put(r, new HashMap<>()); + } + for(CtTypeReference rs : sourcetypes) + { + if(rs.isPrimitive()) + continue; + int compVal = -1; + if(translationProbs.get(r).containsKey(rs)) + { + translationProbs.get(r).put(rs, translationProbs.get(r).get(rs) + compVal); + } + else + { + translationProbs.get(r).put(rs,compVal); + } + //System.out.println(r.getQualifiedName() + ", " + rs.getSimpleName() + " = " + Integer.toString(compVal)); + //if(compVal >= 32) + //{ + // translation.addEntry(r.getQualifiedName(), rs.getSimpleName()); + //} + } + + } + + } + /*for(CtTypeReference r : translationProbs.keySet()) + { + System.out.println(r.getQualifiedName()); + System.out.println(translationProbs.get(r).toString()); + }*/ + } + +} diff --git a/src/org/reversing/ald/matching/ExecutableSignature.java b/src/org/reversing/ald/matching/ExecutableSignature.java new file mode 100644 index 0000000..a510e15 --- /dev/null +++ b/src/org/reversing/ald/matching/ExecutableSignature.java @@ -0,0 +1,45 @@ +package org.reversing.ald.matching; + +import spoon.reflect.declaration.CtExecutable; +import spoon.reflect.declaration.CtMethod; +import spoon.reflect.declaration.CtParameter; +import spoon.reflect.reference.CtTypeReference; + +import java.util.List; +import java.util.Objects; + +/** + * Signature for Methods and constructors + */ +public class ExecutableSignature +{ + private CtExecutable executable; + CtTypeReference returnType; + private List params; + + public ExecutableSignature(CtExecutable executable) { + this.executable = executable; + returnType = executable.getType(); + params = executable.getParameters(); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ExecutableSignature that = (ExecutableSignature) o; + if (!MatchUtil.typesEqual(returnType, that.returnType)) return false; + if (params.size() != that.params.size()) return false; + for (int i = 0; i < params.size(); i++) { + if (!MatchUtil.typesEqual(params.get(i).getType(), that.params.get(i).getType())) + return false; + } + return true; + } + + @Override + public int hashCode() { + // TODO improve + return 0; + } +} diff --git a/src/org/reversing/ald/matching/MatchUtil.java b/src/org/reversing/ald/matching/MatchUtil.java new file mode 100644 index 0000000..739b092 --- /dev/null +++ b/src/org/reversing/ald/matching/MatchUtil.java @@ -0,0 +1,14 @@ +package org.reversing.ald.matching; + +import spoon.reflect.reference.CtTypeReference; + +import java.util.Objects; + +public class MatchUtil { + public static boolean typesEqual(CtTypeReference a, CtTypeReference b) { + if (a.isPrimitive() != b.isPrimitive()) return false; + if (a.isPrimitive()) return Objects.equals(a, b); + // if both parameters are not of primitive type they are treated as if they were equal + return true; + } +} diff --git a/src/org/reversing/ald/util/SignatureUtil.java b/src/org/reversing/ald/util/SignatureUtil.java new file mode 100644 index 0000000..71bf914 --- /dev/null +++ b/src/org/reversing/ald/util/SignatureUtil.java @@ -0,0 +1,39 @@ +package org.reversing.ald.util; + +import org.reversing.ald.data.Translation; +import spoon.reflect.declaration.CtMethod; +import spoon.reflect.declaration.CtParameter; + +import java.util.List; + +public class SignatureUtil +{ + public static String getSignature(CtMethod method, Translation translation) + { + String sig = "";//method.getSignature(); + List methodParams = method.getParameters(); + for(CtParameter p : methodParams) + { + if(translation.getObfuscatedName(p.getSimpleName()) != null) + { + sig += translation.getObfuscatedName(p.getSimpleName()) + ","; + } + else + { + sig += p.getSimpleName() + ","; + } + } + if(sig.length() > 0) + { + sig = sig.substring(0, sig.length()-2); + } + sig = "(" + sig + ")"; + sig = sig.substring(sig.indexOf("(")); + return sig + method.getType() + ";"; + } + + public static String getQualifiedName(CtMethod method, Translation translation) + { + return method.getDeclaringType().getQualifiedName() + "." + method.getSimpleName() + getSignature(method, translation); + } +}