Cara Disable Signature Verification
Cara ini merupakan lanjutan dari postingan saya sebelumnya, setelah kita melakukan decompile dan recompile pada salah satu aplikasi, sebelum memasukannya kedalam system langkah yang harus ditempuh adalah merubah atau disable signature verification terlebih dahulu di services.jar nya supaya tidak terjadi force close saat dimasukkan kembali.
Saya akan share ulang Guide dari forum xda yang sudah berhasil diterapkan di hp saya. Tutorial ini sangat simpel cuma copas kode saja dan yang penting tahu cara decompile recompile terlebih dahulu.
Yang pertama, decompile services.jar yang ada di system/framework/disini.
Kedua, buka
smali\com\android\server\pm\PackageManagerService.smali
Bisa memakai 920 Text Editor ataupun Notepad++ jika pakai PC.
Ketiga, Cari kode ini method static compareSignatures
Keempat, block semua kode dibawah ini (setiap hp berbeda line nya)
method static compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
.locals 7
.parameter "s1"
.parameter "s2"
.prologue
.line 2160
if-nez p0, :cond_8
.line 2161
if-nez p1, :cond_6
const/4 v6, 0x1
.line 2180
:goto_5
return v6
.line 2161
:cond_6
const/4 v6, -0x1
goto :goto_5
.line 2165
:cond_8
if-nez p1, :cond_c
.line 2166
const/4 v6, -0x2
goto :goto_5
.line 2168
:cond_c
new-instance v3, Ljava/util/HashSet;
invoke-direct {v3}, Ljava/util/HashSet;->()V
.line 2169
.local v3, set1:Ljava/util/HashSet;,"Ljava/util/HashSet;"
move-object v0, p0
.local v0, arr$:[Landroid/content/pm/Signature;
array-length v2, v0
.local v2, len$:I
const/4 v1, 0x0
.local v1, i$:I
:goto_14
if-ge v1, v2, :cond_1e
aget-object v5, v0, v1
.line 2170
.local v5, sig:Landroid/content/pm/Signature;
invoke-virtual {v3, v5}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
.line 2169
add-int/lit8 v1, v1, 0x1
goto :goto_14
.line 2172
.end local v5 #sig:Landroid/content/pm/Signature;
:cond_1e
new-instance v4, Ljava/util/HashSet;
invoke-direct {v4}, Ljava/util/HashSet;->()V
.line 2173
.local v4, set2:Ljava/util/HashSet;,"Ljava/util/HashSet;"
move-object v0, p1
array-length v2, v0
const/4 v1, 0x0
:goto_26
if-ge v1, v2, :cond_30
aget-object v5, v0, v1
.line 2174
.restart local v5 #sig:Landroid/content/pm/Signature;
invoke-virtual {v4, v5}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
.line 2173
add-int/lit8 v1, v1, 0x1
goto :goto_26
.line 2177
.end local v5 #sig:Landroid/content/pm/Signature;
:cond_30
invoke-virtual {v3, v4}, Ljava/util/HashSet;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_38
.line 2178
const/4 v6, 0x0
goto :goto_5
.line 2180
:cond_38
const/4 v6, -0x3
goto :goto_5
.end method
Kelima, Replace atau ganti semua kode diatas dengan kode dibawah ini
.method static compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
.locals 7
const/4 v0, 0x0
return v0
.end method
Jika selesai simpan dan recompile kembali. Rename dan pindahkan keasalnya set permission rw-r--r-- (0644) lalu reboot. Atau bisa juga dibuat flashable zip dan flash via recovery tapi untuk tutor mungkin next.
(DWYOR)
1 komentar untuk "Cara Disable Signature Verification"