Rabu, 17 Oktober 2018

TUTORIAL NO ROOT NO XPOSED NO SMALI

  • CORE-OJ.JAR
java/security/Signature

Cari: 
.method public final verify([B)Z
cari: 
return v0
Tambahkan ini diatasnya: 
const/4 v0, 0x1
hasilnya jadi seperti ini: 
.method public final verify([B)Z
    .locals 2
    .param p1, "signature"    # [B
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/security/SignatureException;
        }
    .end annotation

    .prologue
    .line 449
    iget v0, p0, Ljava/security/Signature;->state:I

    const/4 v1, 0x3

    if-eq v0, v1, :cond_0

    .line 450
    new-instance v0, Ljava/security/SignatureException;

    const-string v1, "Signature object is not initialized properly"

    invoke-direct {v0, v1}, Ljava/security/SignatureException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 452
    :cond_0
    invoke-virtual {p0, p1}, Ljava/security/Signature;->engineVerify([B)Z

    move-result v0

    const/4 v0, 0x1

    return v0
.end method


Cari: 
.method public final verify([BII)Z
Lalu didalam method tersebut, cari: 
return v0
Tambahkan ini diatasnya: 
const/4 v0, 0x1
Hingga hasilnya menjadi seperti ini: 
.method public final verify([BII)Z
    .locals 2
    .param p1, "signature"    # [B
    .param p2, "offset"    # I
    .param p3, "length"    # I
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/security/SignatureException;
        }
    .end annotation

    .prologue
    .line 481
    iget v0, p0, Ljava/security/Signature;->state:I

    const/4 v1, 0x3

    if-eq v0, v1, :cond_0

    .line 482
    new-instance v0, Ljava/security/SignatureException;

    const-string v1, "Signature object is not initialized properly"

    invoke-direct {v0, v1}, Ljava/security/SignatureException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 484
    :cond_0
    if-eqz p1, :cond_1

    if-ltz p2, :cond_1

    if-ltz p3, :cond_1

    add-int v0, p2, p3

    array-length v1, p1

    if-le v0, v1, :cond_2

    .line 486
    :cond_1
    new-instance v0, Ljava/lang/IllegalArgumentException;

    invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V

    throw v0

    .line 488
    :cond_2
    invoke-virtual {p0, p1, p2, p3}, Ljava/security/Signature;->engineVerify([BII)Z

    move-result v0

    const/4 v0, 0x1

    return v0
.end method


java/security/MessageDigest

Cari: 
.method public static isEqual([B[B)Z
Lalu didalam method tersebut, cari: 
return v2
Tambahkan ini diatasnya: 
const/4 v2, 0x1
Hingga hasilnya menjadi seperti ini: 
.method public static isEqual([B[B)Z
    .locals 5
    .param p0, "digesta"    # [B
    .param p1, "digestb"    # [B

    .prologue
    const/4 v2, 0x0

    .line 303
    array-length v3, p0

    array-length v4, p1

    if-eq v3, v4, :cond_1

    .line 311
    :cond_0
    :goto_0
    const/4 v2, 0x1

    return v2

    .line 307
    :cond_1
    const/4 v1, 0x0

    .line 308
    .local v1, "v":I
    const/4 v0, 0x0

    .local v0, "i":I
    :goto_1
    array-length v3, p0

    if-ge v0, v3, :cond_2

    .line 309
    aget-byte v3, p0, v0

    aget-byte v4, p1, v0

    xor-int/2addr v3, v4

    or-int/2addr v1, v3

    .line 308
    add-int/lit8 v0, v0, 0x1

    goto :goto_1

    .line 311
    :cond_2
    if-nez v1, :cond_0

    const/4 v2, 0x1

    goto :goto_0
.end method


 
  • SERVICE.JAR
com/android/server/pm/PackageManagerService

Cari: 
.method static compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
cari: 
return v6
Tambahkan ini diatasnya: 
const/4 v6, 0x0
Hasil 
.method static compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
    .locals 11
    .param p0, "s1"    # [Landroid/content/pm/Signature;
    .param p1, "s2"    # [Landroid/content/pm/Signature;

    .prologue
    const/4 v6, 0x1

    const/4 v8, -0x3

    const/4 v7, 0x0

    .line 4072
    if-nez p0, :cond_1

    .line 4073
    if-nez p1, :cond_0

    .line 4105
    :goto_0
    const/4 v6, 0x0

    return v6

    .line 4073
    :cond_0
    const/4 v6, -0x1

    goto :goto_0

    .line 4078
    :cond_1
    if-nez p1, :cond_2

    .line 4079
    const/4 v6, -0x2

    goto :goto_0

    .line 4082
    :cond_2
    array-length v9, p0

    array-length v10, p1

    if-eq v9, v10, :cond_3

    move v6, v8

    .line 4083
    goto :goto_0

    .line 4087
    :cond_3
    array-length v9, p0

    if-ne v9, v6, :cond_5

    .line 4088
    aget-object v6, p0, v7

    aget-object v9, p1, v7

    invoke-virtual {v6, v9}, Landroid/content/pm/Signature;->equals(Ljava/lang/Object;)Z

    move-result v6

    if-eqz v6, :cond_4

    move v6, v7

    goto :goto_0

    :cond_4
    move v6, v8

    goto :goto_0

    .line 4093
    :cond_5
    new-instance v3, Landroid/util/ArraySet;

    invoke-direct {v3}, Landroid/util/ArraySet;-><init>()V

    ....

    ....

.end method



Cari: 
.method private compareSignaturesCompat(Lcom/android/server/pm/PackageSignatures;Landroid/content/pm/PackageParser$Package;)I
Lalu didalam method tersebut, dibawah param/line, seperti ini: 
.param p1, "existingSigs"    # Lcom/android/server/pm/PackageSignatures;
    .param p2, "scannedPkg"    # Landroid/content/pm/PackageParser$Package;

    .prologue
    .line 4126
Tambahkan: 
const/4 v14, 0x0

    return v14
Hasilnya: 
.method private compareSignaturesCompat(Lcom/android/server/pm/PackageSignatures;Landroid/content/pm/PackageParser$Package;)I
    .locals 17
    .param p1, "existingSigs"    # Lcom/android/server/pm/PackageSignatures;
    .param p2, "scannedPkg"    # Landroid/content/pm/PackageParser$Package;

    .prologue
    .line 4126
    const/4 v14, 0x0

    return v14

    move-object/from16 v0, p0

    move-object/from16 v1, p2

    invoke-direct {v0, v1}, Lcom/android/server/pm/PackageManagerService;->isCompatSignatureUpdateNeeded(Landroid/content/pm/PackageParser$Package;)Z

    move-result v14

    if-nez v14, :cond_0

    ....

    ....

.end method


 Cari: 
.method private compareSignaturesRecover(Lcom/android/server/pm/PackageSignatures;Landroid/content/pm/PackageParser$Package;)I
cari: 
return v2
Tambahkan ini diatasnya: 
const/4 v2, 0x0
Hasilnya: 
.method private compareSignaturesRecover(Lcom/android/server/pm/PackageSignatures;Landroid/content/pm/PackageParser$Package;)I
    .locals 7
    .param p1, "existingSigs"    # Lcom/android/server/pm/PackageSignatures;
    .param p2, "scannedPkg"    # Landroid/content/pm/PackageParser$Package;

    .prologue
    const/4 v6, 0x4

    const/4 v2, -0x3

    .line 4168
    invoke-direct {p0, p2}, Lcom/android/server/pm/PackageManagerService;->isRecoverSignatureUpdateNeeded(Landroid/content/pm/PackageParser$Package;)Z

    move-result v3

    if-nez v3, :cond_0

    .line 4185
    :goto_0
    const/4 v2, 0x0

    return v2

    .line 4172
    :cond_0
    const/4 v1, 0x0

    .line 4174
    .local v1, "msg":Ljava/lang/String;
    :try_start_0
    iget-object v3, p1, Lcom/android/server/pm/PackageSignatures;->mSignatures:[Landroid/content/pm/Signature;

    iget-object v4, p2, Landroid/content/pm/PackageParser$Package;->mSignatures:[Landroid/content/pm/Signature;

    invoke-static {v3, v4}, Landroid/content/pm/Signature;->areEffectiveMatch([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)Z

    move-result v3

    if-eqz v3, :cond_1

    .line 4175
    const/4 v3, 0x4

    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    const-string v5, "Recovered effectively matching certificates for "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    ....

    ....

.end method


repack n hajar smali bongkar smali ambil service.jarcopas ke tempat nyaunroot