YunOSHelper.smali
.class public final Landhook/lib/YunOSHelper;
.super Ljava/lang/Object;
.source "YunOSHelper.java"
# static fields
.field private static final PRIMITIVE_TO_SIGNATURE:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 3
.line 17
new-instance v0, Ljava/util/HashMap;
const/16 v1, 0x9
invoke-direct {v0, v1}, Ljava/util/HashMap;-><init>(I)V
sput-object v0, Landhook/lib/YunOSHelper;->PRIMITIVE_TO_SIGNATURE:Ljava/util/HashMap;
.line 18
sget-object v0, Landhook/lib/YunOSHelper;->PRIMITIVE_TO_SIGNATURE:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
const-string v2, "B"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 19
sget-object v0, Landhook/lib/YunOSHelper;->PRIMITIVE_TO_SIGNATURE:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Character;->TYPE:Ljava/lang/Class;
const-string v2, "C"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 20
sget-object v0, Landhook/lib/YunOSHelper;->PRIMITIVE_TO_SIGNATURE:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
const-string v2, "S"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 21
sget-object v0, Landhook/lib/YunOSHelper;->PRIMITIVE_TO_SIGNATURE:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const-string v2, "I"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 22
sget-object v0, Landhook/lib/YunOSHelper;->PRIMITIVE_TO_SIGNATURE:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
const-string v2, "J"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 23
sget-object v0, Landhook/lib/YunOSHelper;->PRIMITIVE_TO_SIGNATURE:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
const-string v2, "F"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 24
sget-object v0, Landhook/lib/YunOSHelper;->PRIMITIVE_TO_SIGNATURE:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
const-string v2, "D"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 25
sget-object v0, Landhook/lib/YunOSHelper;->PRIMITIVE_TO_SIGNATURE:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Void;->TYPE:Ljava/lang/Class;
const-string v2, "V"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 26
sget-object v0, Landhook/lib/YunOSHelper;->PRIMITIVE_TO_SIGNATURE:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
const-string v2, "Z"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 12
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getNativeTypeCode(Ljava/lang/Class;)Ljava/lang/String;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/String;"
}
.end annotation
.line 48
sget-object v0, Landhook/lib/YunOSHelper;->PRIMITIVE_TO_SIGNATURE:Ljava/util/HashMap;
invoke-virtual {v0, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/String;
if-eqz p0, :cond_b
return-object p0
:cond_b
const-string p0, "L"
return-object p0
.end method
.method private static getShorty(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/String;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;[",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/String;"
}
.end annotation
.line 85
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 87
invoke-static {p0}, Landhook/lib/YunOSHelper;->getNativeTypeCode(Ljava/lang/Class;)Ljava/lang/String;
move-result-object p0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 88
array-length p0, p1
const/4 v1, 0x0
:goto_e
if-ge v1, p0, :cond_1c
aget-object v2, p1, v1
.line 89
invoke-static {v2}, Landhook/lib/YunOSHelper;->getNativeTypeCode(Ljava/lang/Class;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 v1, v1, 0x1
goto :goto_e
.line 92
:cond_1c
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getShorty(Ljava/lang/reflect/Member;)Ljava/lang/String;
.registers 2
.line 97
instance-of v0, p0, Ljava/lang/reflect/Method;
if-eqz v0, :cond_13
.line 98
check-cast p0, Ljava/lang/reflect/Method;
.line 99
invoke-virtual {p0}, Ljava/lang/reflect/Method;->getReturnType()Ljava/lang/Class;
move-result-object v0
invoke-virtual {p0}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
move-result-object p0
invoke-static {v0, p0}, Landhook/lib/YunOSHelper;->getShorty(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/String;
move-result-object p0
return-object p0
.line 101
:cond_13
instance-of v0, p0, Ljava/lang/reflect/Constructor;
if-eqz v0, :cond_24
.line 102
check-cast p0, Ljava/lang/reflect/Constructor;
.line 103
sget-object v0, Ljava/lang/Void;->TYPE:Ljava/lang/Class;
invoke-virtual {p0}, Ljava/lang/reflect/Constructor;->getParameterTypes()[Ljava/lang/Class;
move-result-object p0
invoke-static {v0, p0}, Landhook/lib/YunOSHelper;->getShorty(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_24
const/4 p0, 0x0
return-object p0
.end method
.method public static getSignature(Ljava/lang/Class;)Ljava/lang/String;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/String;"
}
.end annotation
.line 34
sget-object v0, Landhook/lib/YunOSHelper;->PRIMITIVE_TO_SIGNATURE:Ljava/util/HashMap;
invoke-virtual {v0, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
if-eqz v0, :cond_b
return-object v0
.line 37
:cond_b
invoke-virtual {p0}, Ljava/lang/Class;->isArray()Z
move-result v0
if-eqz v0, :cond_2b
.line 38
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "["
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object p0
invoke-static {p0}, Landhook/lib/YunOSHelper;->getSignature(Ljava/lang/Class;)Ljava/lang/String;
move-result-object p0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.line 40
:cond_2b
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "L"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p0
const/16 v1, 0x2e
const/16 v2, 0x2f
invoke-virtual {p0, v1, v2}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object p0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, ";"
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method private static getSignature(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/String;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;[",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/String;"
}
.end annotation
.line 58
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const/16 v1, 0x28
.line 60
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 61
array-length v1, p1
const/4 v2, 0x0
:goto_c
if-ge v2, v1, :cond_1a
aget-object v3, p1, v2
.line 62
invoke-static {v3}, Landhook/lib/YunOSHelper;->getSignature(Ljava/lang/Class;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 v2, v2, 0x1
goto :goto_c
:cond_1a
const-string p1, ")"
.line 64
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 65
invoke-static {p0}, Landhook/lib/YunOSHelper;->getSignature(Ljava/lang/Class;)Ljava/lang/String;
move-result-object p0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 67
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getSignature(Ljava/lang/reflect/Member;)Ljava/lang/String;
.registers 2
.line 71
instance-of v0, p0, Ljava/lang/reflect/Method;
if-eqz v0, :cond_13
.line 72
check-cast p0, Ljava/lang/reflect/Method;
.line 73
invoke-virtual {p0}, Ljava/lang/reflect/Method;->getReturnType()Ljava/lang/Class;
move-result-object v0
invoke-virtual {p0}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
move-result-object p0
invoke-static {v0, p0}, Landhook/lib/YunOSHelper;->getSignature(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/String;
move-result-object p0
return-object p0
.line 75
:cond_13
instance-of v0, p0, Ljava/lang/reflect/Constructor;
if-eqz v0, :cond_24
.line 76
check-cast p0, Ljava/lang/reflect/Constructor;
.line 77
sget-object v0, Ljava/lang/Void;->TYPE:Ljava/lang/Class;
invoke-virtual {p0}, Ljava/lang/reflect/Constructor;->getParameterTypes()[Ljava/lang/Class;
move-result-object p0
invoke-static {v0, p0}, Landhook/lib/YunOSHelper;->getSignature(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_24
const/4 p0, 0x0
return-object p0
.end method