ACDDHacks.smali
.class public Lorg/acdd/hack/ACDDHacks;
.super Lorg/acdd/hack/Hack$HackDeclaration;
.source "ACDDHacks.java"
# interfaces
.implements Lorg/acdd/hack/Hack$AssertionFailureHandler;
# static fields
.field public static ActivityThread:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field public static ActivityThread_currentActivityThread:Lorg/acdd/hack/Hack$HackedMethod;
.field public static ActivityThread_mAllApplications:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Ljava/util/ArrayList",
"<",
"Landroid/app/Application;",
">;>;"
}
.end annotation
.end field
.field public static ActivityThread_mInitialApplication:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Landroid/app/Application;",
">;"
}
.end annotation
.end field
.field public static ActivityThread_mInstrumentation:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Landroid/app/Instrumentation;",
">;"
}
.end annotation
.end field
.field public static ActivityThread_mPackages:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;>;"
}
.end annotation
.end field
.field public static ActivityThread_sPackageManager:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field public static Application:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Landroid/app/Application;",
">;"
}
.end annotation
.end field
.field public static Application_attach:Lorg/acdd/hack/Hack$HackedMethod;
.field public static AssetManager:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Landroid/content/res/AssetManager;",
">;"
}
.end annotation
.end field
.field public static AssetManager_addAssetPath:Lorg/acdd/hack/Hack$HackedMethod;
.field public static AssetManager_addAssetPathAsSharedLibrary:Lorg/acdd/hack/Hack$HackedMethod;
.field public static ClassLoader:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Ljava/lang/ClassLoader;",
">;"
}
.end annotation
.end field
.field public static ClassLoader_findLibrary:Lorg/acdd/hack/Hack$HackedMethod;
.field public static ContextImpl:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field public static ContextImpl_mResources:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Landroid/content/res/Resources;",
">;"
}
.end annotation
.end field
.field public static ContextImpl_mTheme:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Landroid/content/res/Resources$Theme;",
">;"
}
.end annotation
.end field
.field public static ContextThemeWrapper:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Landroid/view/ContextThemeWrapper;",
">;"
}
.end annotation
.end field
.field public static ContextThemeWrapper_mBase:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Landroid/view/ContextThemeWrapper;",
"Landroid/content/Context;",
">;"
}
.end annotation
.end field
.field public static ContextThemeWrapper_mResources:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Landroid/view/ContextThemeWrapper;",
"Landroid/content/res/Resources;",
">;"
}
.end annotation
.end field
.field public static ContextThemeWrapper_mTheme:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Landroid/view/ContextThemeWrapper;",
"Landroid/content/res/Resources$Theme;",
">;"
}
.end annotation
.end field
.field public static ContextWrapper:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Landroid/content/ContextWrapper;",
">;"
}
.end annotation
.end field
.field public static ContextWrapper_mBase:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Landroid/content/ContextWrapper;",
"Landroid/content/Context;",
">;"
}
.end annotation
.end field
.field public static DexClassLoader:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Ldalvik/system/DexClassLoader;",
">;"
}
.end annotation
.end field
.field public static DexClassLoader_findClass:Lorg/acdd/hack/Hack$HackedMethod;
.field public static GeneratePackageInfoList:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList",
"<",
"Lorg/acdd/hack/Hack$HackedMethod;",
">;"
}
.end annotation
.end field
.field public static GetPackageInfoList:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList",
"<",
"Lorg/acdd/hack/Hack$HackedMethod;",
">;"
}
.end annotation
.end field
.field public static IPackageManager:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field public static LexFile:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field public static LexFile_close:Lorg/acdd/hack/Hack$HackedMethod;
.field public static LexFile_loadClass:Lorg/acdd/hack/Hack$HackedMethod;
.field public static LexFile_loadLex:Lorg/acdd/hack/Hack$HackedMethod;
.field public static LoadedApk:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field public static LoadedApk_mAppDir:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field public static LoadedApk_mApplication:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Landroid/app/Application;",
">;"
}
.end annotation
.end field
.field public static LoadedApk_mBaseClassLoader:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Ljava/lang/ClassLoader;",
">;"
}
.end annotation
.end field
.field public static LoadedApk_mClassLoader:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Ljava/lang/ClassLoader;",
">;"
}
.end annotation
.end field
.field public static LoadedApk_mResDir:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field public static LoadedApk_mResources:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Landroid/content/res/Resources;",
">;"
}
.end annotation
.end field
.field public static Resources:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Landroid/content/res/Resources;",
">;"
}
.end annotation
.end field
.field private static Resources_ResourcesImpl:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field private static Resources_ResourcesImpl_Field:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Landroid/content/res/Resources;",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field private static Resources_ResourcesImpl_mAssets:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field private static Resources_mAssets:Lorg/acdd/hack/Hack$HackedField;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field public static Service:Lorg/acdd/hack/Hack$HackedClass;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/acdd/hack/Hack$HackedClass",
"<",
"Landroid/app/Service;",
">;"
}
.end annotation
.end field
.field protected static final log:Lorg/acdd/log/Logger;
.field public static sIsIgnoreFailure:Z
.field public static sIsReflectAvailable:Z
.field public static sIsReflectChecked:Z
# instance fields
.field private mExceptionArray:Lorg/acdd/hack/AssertionArrayException;
# direct methods
.method static constructor <clinit>()V
.registers 2
.prologue
const/4 v1, 0x0
.line 157
invoke-static {}, Lorg/acdd/log/LoggerFactory;->getInstance()Lorg/acdd/log/Logger;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->log:Lorg/acdd/log/Logger;
.line 158
sput-boolean v1, Lorg/acdd/hack/ACDDHacks;->sIsReflectAvailable:Z
.line 159
sput-boolean v1, Lorg/acdd/hack/ACDDHacks;->sIsReflectChecked:Z
.line 160
sput-boolean v1, Lorg/acdd/hack/ACDDHacks;->sIsIgnoreFailure:Z
.line 161
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
sput-object v0, Lorg/acdd/hack/ACDDHacks;->GeneratePackageInfoList:Ljava/util/ArrayList;
.line 162
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
sput-object v0, Lorg/acdd/hack/ACDDHacks;->GetPackageInfoList:Ljava/util/ArrayList;
.line 163
return-void
.end method
.method public constructor <init>()V
.registers 2
.prologue
.line 152
invoke-direct {p0}, Lorg/acdd/hack/Hack$HackDeclaration;-><init>()V
.line 153
const/4 v0, 0x0
iput-object v0, p0, Lorg/acdd/hack/ACDDHacks;->mExceptionArray:Lorg/acdd/hack/AssertionArrayException;
.line 154
return-void
.end method
.method public static addAssetPath(Landroid/content/res/AssetManager;Ljava/lang/String;)I
.registers 6
.prologue
const/4 v0, 0x0
.line 213
.line 215
:try_start_1
sget-object v1, Lorg/acdd/hack/ACDDHacks;->AssetManager_addAssetPath:Lorg/acdd/hack/Hack$HackedMethod;
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
aput-object p1, v2, v3
invoke-virtual {v1, p0, v2}, Lorg/acdd/hack/Hack$HackedMethod;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
:try_end_14
.catch Ljava/lang/NumberFormatException; {:try_start_1 .. :try_end_14} :catch_16
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_1 .. :try_end_14} :catch_1f
move-result v0
.line 221
:goto_15
return v0
.line 216
:catch_16
move-exception v1
.line 217
sget-object v2, Lorg/acdd/hack/ACDDHacks;->log:Lorg/acdd/log/Logger;
const-string v3, "addAssetPath Failed"
invoke-interface {v2, v3, v1}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_15
.line 218
:catch_1f
move-exception v1
.line 219
sget-object v2, Lorg/acdd/hack/ACDDHacks;->log:Lorg/acdd/log/Logger;
const-string v3, "addAssetPath Failed"
invoke-interface {v2, v3, v1}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_15
.end method
.method public static addAssetPathAsSharedLibrary(Landroid/content/res/AssetManager;Ljava/lang/String;)I
.registers 6
.prologue
const/4 v0, 0x0
.line 225
.line 227
:try_start_1
sget-object v1, Lorg/acdd/hack/ACDDHacks;->AssetManager_addAssetPathAsSharedLibrary:Lorg/acdd/hack/Hack$HackedMethod;
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
aput-object p1, v2, v3
invoke-virtual {v1, p0, v2}, Lorg/acdd/hack/Hack$HackedMethod;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
:try_end_14
.catch Ljava/lang/NumberFormatException; {:try_start_1 .. :try_end_14} :catch_16
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_1 .. :try_end_14} :catch_1f
move-result v0
.line 233
:goto_15
return v0
.line 228
:catch_16
move-exception v1
.line 229
sget-object v2, Lorg/acdd/hack/ACDDHacks;->log:Lorg/acdd/log/Logger;
const-string v3, "addAssetPath Failed"
invoke-interface {v2, v3, v1}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_15
.line 230
:catch_1f
move-exception v1
.line 231
sget-object v2, Lorg/acdd/hack/ACDDHacks;->log:Lorg/acdd/log/Logger;
const-string v3, "addAssetPath Failed"
invoke-interface {v2, v3, v1}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_15
.end method
.method private static allClasses()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;
}
.end annotation
.prologue
.line 274
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x8
if-gt v0, v1, :cond_83
.line 275
const-string v0, "android.app.ActivityThread$PackageInfo"
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk:Lorg/acdd/hack/Hack$HackedClass;
.line 279
:goto_e
const-string v0, "android.app.ActivityThread"
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ActivityThread:Lorg/acdd/hack/Hack$HackedClass;
.line 280
const-class v0, Landroid/content/res/Resources;
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->Resources:Lorg/acdd/hack/Hack$HackedClass;
.line 281
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x18
if-lt v0, v1, :cond_2c
.line 282
const-string v0, "android.content.res.ResourcesImpl"
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->Resources_ResourcesImpl:Lorg/acdd/hack/Hack$HackedClass;
.line 284
:cond_2c
const-class v0, Landroid/app/Application;
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->Application:Lorg/acdd/hack/Hack$HackedClass;
.line 285
const-class v0, Landroid/content/res/AssetManager;
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->AssetManager:Lorg/acdd/hack/Hack$HackedClass;
.line 286
const-string v0, "android.content.pm.IPackageManager"
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->IPackageManager:Lorg/acdd/hack/Hack$HackedClass;
.line 287
const-class v0, Landroid/app/Service;
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->Service:Lorg/acdd/hack/Hack$HackedClass;
.line 288
const-string v0, "android.app.ContextImpl"
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ContextImpl:Lorg/acdd/hack/Hack$HackedClass;
.line 289
const-class v0, Landroid/view/ContextThemeWrapper;
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ContextThemeWrapper:Lorg/acdd/hack/Hack$HackedClass;
.line 290
const-string v0, "android.content.ContextWrapper"
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ContextWrapper:Lorg/acdd/hack/Hack$HackedClass;
.line 291
const/4 v0, 0x1
sput-boolean v0, Lorg/acdd/hack/ACDDHacks;->sIsIgnoreFailure:Z
.line 292
const-class v0, Ljava/lang/ClassLoader;
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ClassLoader:Lorg/acdd/hack/Hack$HackedClass;
.line 293
const-class v0, Ldalvik/system/DexClassLoader;
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->DexClassLoader:Lorg/acdd/hack/Hack$HackedClass;
.line 294
const-string v0, "dalvik.system.LexFile"
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->LexFile:Lorg/acdd/hack/Hack$HackedClass;
.line 295
const/4 v0, 0x0
sput-boolean v0, Lorg/acdd/hack/ACDDHacks;->sIsIgnoreFailure:Z
.line 296
return-void
.line 277
:cond_83
const-string v0, "android.app.LoadedApk"
invoke-static {v0}, Lorg/acdd/hack/Hack;->into(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedClass;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk:Lorg/acdd/hack/Hack$HackedClass;
goto :goto_e
.end method
.method private static allConstructors()V
.registers 0
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;
}
.end annotation
.prologue
.line 379
return-void
.end method
.method private static allFields()V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;
}
.end annotation
.prologue
.line 302
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ActivityThread:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mInstrumentation"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Landroid/app/Instrumentation;
.line 303
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ActivityThread_mInstrumentation:Lorg/acdd/hack/Hack$HackedField;
.line 304
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ActivityThread:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mAllApplications"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Ljava/util/ArrayList;
.line 305
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofGenericType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ActivityThread_mAllApplications:Lorg/acdd/hack/Hack$HackedField;
.line 306
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ActivityThread:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mInitialApplication"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Landroid/app/Application;
.line 307
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ActivityThread_mInitialApplication:Lorg/acdd/hack/Hack$HackedField;
.line 308
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ActivityThread:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mPackages"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Ljava/util/Map;
.line 309
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofGenericType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ActivityThread_mPackages:Lorg/acdd/hack/Hack$HackedField;
.line 310
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ActivityThread:Lorg/acdd/hack/Hack$HackedClass;
const-string/jumbo v1, "sPackageManager"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->staticField(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sget-object v1, Lorg/acdd/hack/ACDDHacks;->IPackageManager:Lorg/acdd/hack/Hack$HackedClass;
.line 311
invoke-virtual {v1}, Lorg/acdd/hack/Hack$HackedClass;->getmClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ActivityThread_sPackageManager:Lorg/acdd/hack/Hack$HackedField;
.line 312
sget-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mApplication"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Landroid/app/Application;
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk_mApplication:Lorg/acdd/hack/Hack$HackedField;
.line 314
sget-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mResources"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Landroid/content/res/Resources;
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk_mResources:Lorg/acdd/hack/Hack$HackedField;
.line 316
sget-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mResDir"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Ljava/lang/String;
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk_mResDir:Lorg/acdd/hack/Hack$HackedField;
.line 317
sget-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mClassLoader"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Ljava/lang/ClassLoader;
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk_mClassLoader:Lorg/acdd/hack/Hack$HackedField;
.line 319
sget-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mBaseClassLoader"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Ljava/lang/ClassLoader;
.line 320
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk_mBaseClassLoader:Lorg/acdd/hack/Hack$HackedField;
.line 321
sget-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mAppDir"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Ljava/lang/String;
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->LoadedApk_mAppDir:Lorg/acdd/hack/Hack$HackedField;
.line 322
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ContextImpl:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mResources"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Landroid/content/res/Resources;
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ContextImpl_mResources:Lorg/acdd/hack/Hack$HackedField;
.line 324
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ContextImpl:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mTheme"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Landroid/content/res/Resources$Theme;
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ContextImpl_mTheme:Lorg/acdd/hack/Hack$HackedField;
.line 325
const/4 v0, 0x1
sput-boolean v0, Lorg/acdd/hack/ACDDHacks;->sIsIgnoreFailure:Z
.line 326
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ContextThemeWrapper:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mBase"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Landroid/content/Context;
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ContextThemeWrapper_mBase:Lorg/acdd/hack/Hack$HackedField;
.line 328
const/4 v0, 0x0
sput-boolean v0, Lorg/acdd/hack/ACDDHacks;->sIsIgnoreFailure:Z
.line 329
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ContextThemeWrapper:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mTheme"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Landroid/content/res/Resources$Theme;
.line 330
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ContextThemeWrapper_mTheme:Lorg/acdd/hack/Hack$HackedField;
.line 332
:try_start_fb
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x11
if-lt v0, v1, :cond_11f
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ContextThemeWrapper:Lorg/acdd/hack/Hack$HackedClass;
.line 333
invoke-virtual {v0}, Lorg/acdd/hack/Hack$HackedClass;->getmClass()Ljava/lang/Class;
move-result-object v0
const-string v1, "mResources"
invoke-virtual {v0, v1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
if-eqz v0, :cond_11f
.line 335
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ContextThemeWrapper:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mResources"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Landroid/content/res/Resources;
.line 336
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ContextThemeWrapper_mResources:Lorg/acdd/hack/Hack$HackedField;
:try_end_11f
.catch Ljava/lang/NoSuchFieldException; {:try_start_fb .. :try_end_11f} :catch_14a
.line 342
:cond_11f
:goto_11f
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ContextWrapper:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mBase"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
const-class v1, Landroid/content/Context;
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedField;->ofType(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ContextWrapper_mBase:Lorg/acdd/hack/Hack$HackedField;
.line 345
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x18
if-lt v0, v1, :cond_166
.line 346
sget-object v0, Lorg/acdd/hack/ACDDHacks;->Resources:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mResourcesImpl"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->Resources_ResourcesImpl_Field:Lorg/acdd/hack/Hack$HackedField;
.line 347
sget-object v0, Lorg/acdd/hack/ACDDHacks;->Resources_ResourcesImpl:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mAssets"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->field(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->Resources_ResourcesImpl_mAssets:Lorg/acdd/hack/Hack$HackedField;
.line 351
:goto_149
return-void
.line 338
:catch_14a
move-exception v0
.line 339
sget-object v0, Lorg/acdd/hack/ACDDHacks;->log:Lorg/acdd/log/Logger;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Not found ContextThemeWrapper.mResources on VERSION "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-interface {v0, v1}, Lorg/acdd/log/Logger;->warn(Ljava/lang/String;)V
goto :goto_11f
.line 349
:cond_166
sget-object v0, Lorg/acdd/hack/ACDDHacks;->Resources:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "mAssets"
invoke-virtual {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;->objField(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->Resources_mAssets:Lorg/acdd/hack/Hack$HackedField;
goto :goto_149
.end method
.method private static allMethods()V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;
}
.end annotation
.prologue
const/4 v6, 0x2
const/4 v5, 0x1
const/4 v4, 0x0
.line 357
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ActivityThread:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "currentActivityThread"
new-array v2, v4, [Ljava/lang/Class;
invoke-virtual {v0, v1, v2}, Lorg/acdd/hack/Hack$HackedClass;->method(Ljava/lang/String;[Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedMethod;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ActivityThread_currentActivityThread:Lorg/acdd/hack/Hack$HackedMethod;
.line 359
sget-object v0, Lorg/acdd/hack/ACDDHacks;->AssetManager:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "addAssetPath"
new-array v2, v5, [Ljava/lang/Class;
const-class v3, Ljava/lang/String;
aput-object v3, v2, v4
invoke-virtual {v0, v1, v2}, Lorg/acdd/hack/Hack$HackedClass;->method(Ljava/lang/String;[Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedMethod;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->AssetManager_addAssetPath:Lorg/acdd/hack/Hack$HackedMethod;
.line 361
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x18
if-lt v0, v1, :cond_35
.line 362
sget-object v0, Lorg/acdd/hack/ACDDHacks;->AssetManager:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "addAssetPathAsSharedLibrary"
new-array v2, v5, [Ljava/lang/Class;
const-class v3, Ljava/lang/String;
aput-object v3, v2, v4
invoke-virtual {v0, v1, v2}, Lorg/acdd/hack/Hack$HackedClass;->method(Ljava/lang/String;[Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedMethod;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->AssetManager_addAssetPathAsSharedLibrary:Lorg/acdd/hack/Hack$HackedMethod;
.line 364
:cond_35
sget-object v0, Lorg/acdd/hack/ACDDHacks;->Application:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "attach"
new-array v2, v5, [Ljava/lang/Class;
const-class v3, Landroid/content/Context;
aput-object v3, v2, v4
invoke-virtual {v0, v1, v2}, Lorg/acdd/hack/Hack$HackedClass;->method(Ljava/lang/String;[Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedMethod;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->Application_attach:Lorg/acdd/hack/Hack$HackedMethod;
.line 365
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ClassLoader:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "findLibrary"
new-array v2, v5, [Ljava/lang/Class;
const-class v3, Ljava/lang/String;
aput-object v3, v2, v4
invoke-virtual {v0, v1, v2}, Lorg/acdd/hack/Hack$HackedClass;->method(Ljava/lang/String;[Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedMethod;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->ClassLoader_findLibrary:Lorg/acdd/hack/Hack$HackedMethod;
.line 367
sget-object v0, Lorg/acdd/hack/ACDDHacks;->LexFile:Lorg/acdd/hack/Hack$HackedClass;
if-eqz v0, :cond_a5
sget-object v0, Lorg/acdd/hack/ACDDHacks;->LexFile:Lorg/acdd/hack/Hack$HackedClass;
invoke-virtual {v0}, Lorg/acdd/hack/Hack$HackedClass;->getmClass()Ljava/lang/Class;
move-result-object v0
if-eqz v0, :cond_a5
.line 368
sget-object v0, Lorg/acdd/hack/ACDDHacks;->LexFile:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "loadLex"
new-array v2, v6, [Ljava/lang/Class;
const-class v3, Ljava/lang/String;
aput-object v3, v2, v4
sget-object v3, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v3, v2, v5
invoke-virtual {v0, v1, v2}, Lorg/acdd/hack/Hack$HackedClass;->method(Ljava/lang/String;[Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedMethod;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->LexFile_loadLex:Lorg/acdd/hack/Hack$HackedMethod;
.line 370
sget-object v0, Lorg/acdd/hack/ACDDHacks;->LexFile:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "loadClass"
new-array v2, v6, [Ljava/lang/Class;
const-class v3, Ljava/lang/String;
aput-object v3, v2, v4
const-class v3, Ljava/lang/ClassLoader;
aput-object v3, v2, v5
invoke-virtual {v0, v1, v2}, Lorg/acdd/hack/Hack$HackedClass;->method(Ljava/lang/String;[Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedMethod;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->LexFile_loadClass:Lorg/acdd/hack/Hack$HackedMethod;
.line 372
sget-object v0, Lorg/acdd/hack/ACDDHacks;->LexFile:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "close"
new-array v2, v4, [Ljava/lang/Class;
invoke-virtual {v0, v1, v2}, Lorg/acdd/hack/Hack$HackedClass;->method(Ljava/lang/String;[Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedMethod;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->LexFile_close:Lorg/acdd/hack/Hack$HackedMethod;
.line 373
sget-object v0, Lorg/acdd/hack/ACDDHacks;->DexClassLoader:Lorg/acdd/hack/Hack$HackedClass;
const-string v1, "findClass"
new-array v2, v5, [Ljava/lang/Class;
const-class v3, Ljava/lang/String;
aput-object v3, v2, v4
invoke-virtual {v0, v1, v2}, Lorg/acdd/hack/Hack$HackedClass;->method(Ljava/lang/String;[Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedMethod;
move-result-object v0
sput-object v0, Lorg/acdd/hack/ACDDHacks;->DexClassLoader_findClass:Lorg/acdd/hack/Hack$HackedMethod;
.line 376
:cond_a5
return-void
.end method
.method public static defineAndVerify()Z
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/acdd/hack/AssertionArrayException;
}
.end annotation
.prologue
const/4 v4, 0x0
const/4 v3, 0x1
.line 240
sget-boolean v0, Lorg/acdd/hack/ACDDHacks;->sIsReflectChecked:Z
if-eqz v0, :cond_9
.line 241
sget-boolean v0, Lorg/acdd/hack/ACDDHacks;->sIsReflectAvailable:Z
.line 267
:goto_8
return v0
.line 243
:cond_9
new-instance v0, Lorg/acdd/hack/ACDDHacks;
invoke-direct {v0}, Lorg/acdd/hack/ACDDHacks;-><init>()V
.line 245
:try_start_e
invoke-static {v0}, Lorg/acdd/hack/Hack;->setAssertionFailureHandler(Lorg/acdd/hack/Hack$AssertionFailureHandler;)V
.line 246
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0xb
if-ne v1, v2, :cond_21
.line 247
new-instance v1, Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;
const-string v2, "Hack Assertion Failed: Android OS Version 11"
invoke-direct {v1, v2}, Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, v1}, Lorg/acdd/hack/ACDDHacks;->onAssertionFailure(Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;)Z
.line 250
:cond_21
invoke-static {}, Lorg/acdd/hack/ACDDHacks;->allClasses()V
.line 251
invoke-static {}, Lorg/acdd/hack/ACDDHacks;->allConstructors()V
.line 252
invoke-static {}, Lorg/acdd/hack/ACDDHacks;->allFields()V
.line 253
invoke-static {}, Lorg/acdd/hack/ACDDHacks;->allMethods()V
.line 254
iget-object v1, v0, Lorg/acdd/hack/ACDDHacks;->mExceptionArray:Lorg/acdd/hack/AssertionArrayException;
if-eqz v1, :cond_4a
.line 255
const/4 v1, 0x0
sput-boolean v1, Lorg/acdd/hack/ACDDHacks;->sIsReflectAvailable:Z
.line 256
iget-object v0, v0, Lorg/acdd/hack/ACDDHacks;->mExceptionArray:Lorg/acdd/hack/AssertionArrayException;
throw v0
:try_end_37
.catch Ljava/lang/Throwable; {:try_start_e .. :try_end_37} :catch_37
.catchall {:try_start_e .. :try_end_37} :catchall_55
.line 260
:catch_37
move-exception v0
.line 261
const/4 v1, 0x0
:try_start_39
sput-boolean v1, Lorg/acdd/hack/ACDDHacks;->sIsReflectAvailable:Z
.line 262
sget-object v1, Lorg/acdd/hack/ACDDHacks;->log:Lorg/acdd/log/Logger;
const-string v2, "HackAssertionException"
invoke-interface {v1, v2, v0}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_42
.catchall {:try_start_39 .. :try_end_42} :catchall_55
.line 264
invoke-static {v4}, Lorg/acdd/hack/Hack;->setAssertionFailureHandler(Lorg/acdd/hack/Hack$AssertionFailureHandler;)V
.line 265
sput-boolean v3, Lorg/acdd/hack/ACDDHacks;->sIsReflectChecked:Z
.line 267
sget-boolean v0, Lorg/acdd/hack/ACDDHacks;->sIsIgnoreFailure:Z
goto :goto_8
.line 258
:cond_4a
const/4 v0, 0x1
:try_start_4b
sput-boolean v0, Lorg/acdd/hack/ACDDHacks;->sIsReflectAvailable:Z
.line 259
sget-boolean v0, Lorg/acdd/hack/ACDDHacks;->sIsReflectAvailable:Z
:try_end_4f
.catch Ljava/lang/Throwable; {:try_start_4b .. :try_end_4f} :catch_37
.catchall {:try_start_4b .. :try_end_4f} :catchall_55
.line 264
invoke-static {v4}, Lorg/acdd/hack/Hack;->setAssertionFailureHandler(Lorg/acdd/hack/Hack$AssertionFailureHandler;)V
.line 265
sput-boolean v3, Lorg/acdd/hack/ACDDHacks;->sIsReflectChecked:Z
goto :goto_8
.line 264
:catchall_55
move-exception v0
invoke-static {v4}, Lorg/acdd/hack/Hack;->setAssertionFailureHandler(Lorg/acdd/hack/Hack$AssertionFailureHandler;)V
.line 265
sput-boolean v3, Lorg/acdd/hack/ACDDHacks;->sIsReflectChecked:Z
throw v0
.end method
.method public static getResources_ResourcesImpl(Landroid/content/res/Resources;)Ljava/lang/Object;
.registers 3
.prologue
.line 183
const/4 v0, 0x0
.line 185
:try_start_1
sget-object v1, Lorg/acdd/hack/ACDDHacks;->Resources_ResourcesImpl_Field:Lorg/acdd/hack/Hack$HackedField;
invoke-virtual {v1, p0}, Lorg/acdd/hack/Hack$HackedField;->get(Ljava/lang/Object;)Ljava/lang/Object;
:try_end_6
.catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_6} :catch_8
move-result-object v0
.line 189
:goto_7
return-object v0
.line 186
:catch_8
move-exception v1
goto :goto_7
.end method
.method public static getResources_mAssets(Landroid/content/res/Resources;)Landroid/content/res/AssetManager;
.registers 3
.prologue
.line 174
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x18
if-lt v0, v1, :cond_13
.line 175
invoke-static {p0}, Lorg/acdd/hack/ACDDHacks;->getResources_ResourcesImpl(Landroid/content/res/Resources;)Ljava/lang/Object;
move-result-object v0
.line 176
sget-object v1, Lorg/acdd/hack/ACDDHacks;->Resources_ResourcesImpl_mAssets:Lorg/acdd/hack/Hack$HackedField;
invoke-virtual {v1, v0}, Lorg/acdd/hack/Hack$HackedField;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/res/AssetManager;
.line 178
:goto_12
return-object v0
:cond_13
sget-object v0, Lorg/acdd/hack/ACDDHacks;->Resources_mAssets:Lorg/acdd/hack/Hack$HackedField;
invoke-virtual {v0, p0}, Lorg/acdd/hack/Hack$HackedField;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/res/AssetManager;
goto :goto_12
.end method
.method public static getResources_mAssets_field()Lorg/acdd/hack/Hack$HackedField;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lorg/acdd/hack/Hack$HackedField",
"<",
"Ljava/lang/Object;",
"Ljava/lang/Object;",
">;"
}
.end annotation
.prologue
.line 166
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x18
if-lt v0, v1, :cond_9
.line 167
sget-object v0, Lorg/acdd/hack/ACDDHacks;->Resources_ResourcesImpl_mAssets:Lorg/acdd/hack/Hack$HackedField;
.line 169
:goto_8
return-object v0
:cond_9
sget-object v0, Lorg/acdd/hack/ACDDHacks;->Resources_mAssets:Lorg/acdd/hack/Hack$HackedField;
goto :goto_8
.end method
.method public static setResources_mAssets(Landroid/content/res/Resources;Landroid/content/res/AssetManager;)V
.registers 4
.prologue
.line 203
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x18
if-lt v0, v1, :cond_12
.line 204
invoke-static {}, Lorg/acdd/hack/ACDDHacks;->getResources_mAssets_field()Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
invoke-static {p0}, Lorg/acdd/hack/ACDDHacks;->getResources_ResourcesImpl(Landroid/content/res/Resources;)Ljava/lang/Object;
move-result-object v1
invoke-virtual {v0, v1, p1}, Lorg/acdd/hack/Hack$HackedField;->set(Ljava/lang/Object;Ljava/lang/Object;)V
.line 210
:goto_11
return-void
.line 207
:cond_12
invoke-static {}, Lorg/acdd/hack/ACDDHacks;->getResources_mAssets_field()Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
invoke-virtual {v0, p0, p1}, Lorg/acdd/hack/Hack$HackedField;->set(Ljava/lang/Object;Ljava/lang/Object;)V
goto :goto_11
.end method
.method public static setResources_mAssets(Landroid/content/res/Resources;Landroid/content/res/Resources;)V
.registers 5
.prologue
.line 193
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x18
if-lt v0, v1, :cond_16
.line 194
invoke-static {}, Lorg/acdd/hack/ACDDHacks;->getResources_mAssets_field()Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
invoke-static {p0}, Lorg/acdd/hack/ACDDHacks;->getResources_ResourcesImpl(Landroid/content/res/Resources;)Ljava/lang/Object;
move-result-object v1
.line 195
invoke-virtual {p1}, Landroid/content/res/Resources;->getAssets()Landroid/content/res/AssetManager;
move-result-object v2
.line 194
invoke-virtual {v0, v1, v2}, Lorg/acdd/hack/Hack$HackedField;->set(Ljava/lang/Object;Ljava/lang/Object;)V
.line 200
:goto_15
return-void
.line 197
:cond_16
invoke-static {}, Lorg/acdd/hack/ACDDHacks;->getResources_mAssets_field()Lorg/acdd/hack/Hack$HackedField;
move-result-object v0
.line 198
invoke-virtual {p1}, Landroid/content/res/Resources;->getAssets()Landroid/content/res/AssetManager;
move-result-object v1
.line 197
invoke-virtual {v0, p0, v1}, Lorg/acdd/hack/Hack$HackedField;->set(Ljava/lang/Object;Ljava/lang/Object;)V
goto :goto_15
.end method
# virtual methods
.method public onAssertionFailure(Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;)Z
.registers 4
.prologue
.line 383
sget-boolean v0, Lorg/acdd/hack/ACDDHacks;->sIsIgnoreFailure:Z
if-nez v0, :cond_16
.line 384
iget-object v0, p0, Lorg/acdd/hack/ACDDHacks;->mExceptionArray:Lorg/acdd/hack/AssertionArrayException;
if-nez v0, :cond_11
.line 385
new-instance v0, Lorg/acdd/hack/AssertionArrayException;
const-string v1, "atlas hack assert failed"
invoke-direct {v0, v1}, Lorg/acdd/hack/AssertionArrayException;-><init>(Ljava/lang/String;)V
iput-object v0, p0, Lorg/acdd/hack/ACDDHacks;->mExceptionArray:Lorg/acdd/hack/AssertionArrayException;
.line 388
:cond_11
iget-object v0, p0, Lorg/acdd/hack/ACDDHacks;->mExceptionArray:Lorg/acdd/hack/AssertionArrayException;
invoke-virtual {v0, p1}, Lorg/acdd/hack/AssertionArrayException;->addException(Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;)V
.line 390
:cond_16
const/4 v0, 0x1
return v0
.end method