aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/androidx
diff options
context:
space:
mode:
authorYuutaW <17158086+Trumeet@users.noreply.github.com>2019-02-24 20:23:14 -0800
committerYuutaW <17158086+Trumeet@users.noreply.github.com>2019-02-24 20:23:14 -0800
commit90591340c3666681da59ffbfd340c1d751ba0658 (patch)
tree6285d8f8189a51a09804e7aa2bc46bbd8247c316 /app/src/main/java/androidx
parent42ff4d54a926df8fcc82a5cd160c6d47b7ff198f (diff)
downloadWorkMode-90591340c3666681da59ffbfd340c1d751ba0658.tar
WorkMode-90591340c3666681da59ffbfd340c1d751ba0658.tar.gz
WorkMode-90591340c3666681da59ffbfd340c1d751ba0658.tar.bz2
WorkMode-90591340c3666681da59ffbfd340c1d751ba0658.zip
feat(app): wrap Base64 class
Signed-off-by: YuutaW <17158086+Trumeet@users.noreply.github.com>
Diffstat (limited to 'app/src/main/java/androidx')
-rw-r--r--app/src/main/java/androidx/content/pm/PackageOZ.java54
1 files changed, 54 insertions, 0 deletions
diff --git a/app/src/main/java/androidx/content/pm/PackageOZ.java b/app/src/main/java/androidx/content/pm/PackageOZ.java
new file mode 100644
index 0000000..8a67215
--- /dev/null
+++ b/app/src/main/java/androidx/content/pm/PackageOZ.java
@@ -0,0 +1,54 @@
+package androidx.content.pm;
+
+import android.content.Context;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Calendar;
+
+import moe.yuuta.workmode.R;
+
+/**
+ * A wrapper of Base64 decoder.
+ * #Anti-Crack
+ */
+public class PackageOZ {
+ public static String decode(String source, Context context) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException {
+ // First, get the name of Base64: java.util.Base64
+ StringBuilder builder = new StringBuilder();
+
+ // j
+ builder.append("j");
+ // ava
+ builder.append(context.getString(R.string.b6_k).toLowerCase());
+ // .
+ builder.append(".");
+ // util
+ String litu = context.getString(R.string.b7_a);
+ StringBuilder reverse = new StringBuilder();
+ for(int i = litu.length() - 1; i >= 0; i--) {
+ reverse.append(litu.charAt(i));
+ }
+ builder.append(reverse.toString());
+ // .
+ builder.append('.');
+ // Base
+ String base = context.getString(R.string.b90_key);
+ base = base.substring(14, 18);
+ base = base.substring(1, 4);
+ builder.append("B");
+ builder.append(base);
+ // 64
+ Calendar calendar = Calendar.getInstance();
+ builder.append((int) Math.pow(1, calendar.getWeekYear()) * 128 / 2);
+ // Then find the class and methods
+ Class b6 = Class.forName(builder.toString());
+ Method method = b6.getDeclaredMethod("get" + context.getString(R.string.b99_a) +
+ context.getString(R.string.b100_a));
+ Object dec = method.invoke(null);
+ Method de = dec.getClass().getDeclaredMethod(dec.getClass().getSimpleName().toLowerCase().replace("r", ""),
+ String.class);
+ // Finally decode
+ return new String((byte[])de.invoke(dec, source));
+ }
+}