Loading...
Showing posts with label Tutorial. Show all posts
Showing posts with label Tutorial. Show all posts

Fix Yellow Flash di Redmi Note 3

bamzzz 5:47 PM 2 Comments
led

Redmi Note 3 Memiliki dual led tone flash, yakni 2 warna flash, warna putih dan kuning. Namun dalam beberapa kasus, saat kita menangkap foto menggunakan kamera redmi note 3 menggunakan flash, hasilnya menjadi kuning / banyak noise. Disini akan admin bagikan cara fix-nya.

Persyaratan:
  • Rooted
  • Sudah memasang TWRP

Bahan:
Fix_Flash_Kuning.zip

Cara Pasang:
  • Reboot ke TWRP
  • Backup System dan Boot
  • Install Fix_Flash_Kuning.zip
  • Reboot

Sekarang silahkan dicoba hasilnya, buka kamera, coba ambil object dengan flash diaktifkan. Kelihatan kan bedanya... :D

Script yang admin tambahkan hanyalah config sementara, yang mana script tersebut berjalan otomatis setiap habis di reboot, karena diletakkan di /system/etc/init.d. Jika kamu mau mencoba menjalankan script secara manual, bisa dilakukan dengan cara:

su
echo 0 > /sys/class/leds/led:flash_1/max_brightness
echo 0 > /sys/class/leds/led:torch_1/max_brightness
echo 0 > /sys/class/leds/torch-light1/max_brightness

Yang mana script diatas memerintahkan system untuk mengatur brightness dari led flash_1, torch_1 menjadi nol (0).

Untuk perangkat/device xiaomi lain yang memiliki masalah dengan flash kuning, silahkan terapkan cara manual terlebih dahulu, jika berhasil, baru pake cara yang lewat twrp.

Demikianlah artikel ini dibuat, semoga bermanfaat.


Credit:
Init.d Enabler by osm0sis @ xda-developers
bamzzz for script fix kuning

Mengontrol PC menggunakan Microsoft Remote Desktop

bamzzz 8:35 PM Add Comment

Dengan menggunakan aplikasi Microsoft remote desktop, kita dapat mengontrol PC melalui jaringan lokal atau wireless. Disini saya akan bagikan cara mengkonfigurasi Microsoft remote desktop di Android menggunakan koneksi lokal.

  • Hidupkan hotspot di ponsel. Lalu hubungkan pc ke hotspot tadi.
  • Download aplikasi Microsoft Remote Desktop di PlayStore.
  • Buka aplikasinya, lalu tambahkan pilih icon "+" lalu pilih "Desktop".
mrd
  • Kemudian isi bagian "PC name" dengan IP address pc kamu, lalu kolom "user name" diisi dengan "Nama_PC\Nama_Pengguna"
mrd
  • Setelah diisi semua, pilih "SAVE". Kemudian coba hubungkan ke pc kamu.
  • Cara mengetahui ip address dan di pc kamu dengan cara, buka command prompt (Tekan Win + R lalu ketik cmd) lalu ketikkan ipconfig, lihat bagian  IPv4 address, itulah IP address pc kamu.
rdc
  • Kemudian cara mengetahui Nama_PC / Computer Name dan Nama_Pengguna / User Name yang ada di pc kamu dengan cara, mengetikkan "hostname" di command prompt.
rdc
  • Di PC admin IP address nya: 192.168.43.227 (Karena pakai jaringan lokal /  pakai hotspot dari ponsel)
  • Kemudian Nama PC: BAMZZZ-PC
  • Dan Nama Pengguna: Bambang Mulyo
  • Jadi admin isi seperti ini, jika pc kamu dipassword ketikkan juga passwordnya.
rdc

rdc
  • Setelah selesai, tinggal klik ikon yang berupa nama PC / alias nya, jika ada konfirmasi tinggal pilih "CONNECT".
rdc


rdc


  • Hasilnya:
rdc


OS yang didukung
Windows 10 , Windows 7 Enterprise, Windows 7 Professional, Windows 7 Ultimate, Windows 8 Enterprise, Windows 8 Pro.


Demikianlah artikel ini dibuat, semoga bermanfaat. 

Cara Menambahkan Fitur Face Unlock di ROM MIUI 9

bamzzz 12:13 PM 72 Comments
faceunlock

Sejak hadirnya Mi Note 3 yang memiliki fitur Face Unlock, hal itu membuat beberapa opreker penasaran, bagaimana sih cara menambahkan fitur face unlock ini pada perangkat mereka. Disini saya akan buat tutorialnya.

TIDAK DAPAT DITERAPKAN DI ROM MIUI GLOBAL DEV MULAI DARI VERSI 7.12.28.
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/miuistatssdkshared.jar", zip file "/system/framework/gson.jar", zip file "/system/priv-app/MiuiKeyguard/MiuiKeyguard.apk"],nativeLibraryDirectories=[/system/priv-app/MiuiKeyguard/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libMegviiUnlock-jni-1.2.so"

Syarat:

Bahan:
  • lib-face-unlock -> Download
  • raw-MiuiKeyguard -> Download
  • MiuiSettings.apk (Ambil dari system/priv-app)
  • MiuiKeyguard.apk (Ambil dari system/priv-app)

Langkah-langkah:
  • Bagian MiuiSettings
Decompile MiuiSettings.apk
Cari text "jason" di seluruh smali yag ada di "\smali\com\android\settings"
Di ROM Global Dev 7.11.6 letaknya ada di "\smali\com\android\settings\fj.1.smali"

Di dalam method yang ada string "jason" tadi, cari:


return v0

Tambahkan ini diatasnya:


const/4 v0, 0x1

Hingga hasilnya akan seperti ini:


.method public static fF()Z
.locals 2

.prologue
.line 57
sget-object v0, Landroid/os/Build;->DEVICE:Ljava/lang/String;

const-string v1, "jason"

invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v0

if-eqz v0, :cond_0

sget-boolean v0, Lmiui/os/Build;->IS_INTERNATIONAL_BUILD:Z

if-nez v0, :cond_0

const/4 v0, 0x1

:goto_0
const/4 v0, 0x1

return v0

:cond_0
const/4 v0, 0x0

goto :goto_0
.end method

Recompile Settings.apk

  • Bagian MiuiKeyguard
Decompile MiuiKeyguard.apk
Salin file raw ke folder res, timpa file yang sudah ada.
Buka AndroidManifest.xml
Cari:



</application>

Tambahkan text ini diatasnya:


<activity android:excludeFromRecents="true" android:label="@string/face_data_input_title" android:name=".settings.MiuiFaceDataIntroduction" android:screenOrientation="portrait" android:theme="@style/Theme.Main"/>
<activity android:excludeFromRecents="true" android:label="@string/face_data_input_title" android:name=".settings.MiuiFaceDataSuggestion" android:screenOrientation="portrait" android:theme="@style/Theme.Main"/>
<activity android:excludeFromRecents="true" android:label="@string/face_data_input_title" android:name=".settings.MiuiFaceDataInput" android:screenOrientation="portrait" android:theme="@style/Theme.Main"/>
<activity android:excludeFromRecents="true" android:label="@string/face_data_introduction_title" android:name=".settings.MiuiFaceDataManage" android:screenOrientation="portrait" android:theme="@style/Theme.Main"/>

Hingga hasilnya menjadi seperti ini:


<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:sharedUserId="android.uid.system" coreApp="true" package="com.android.keyguard" platformBuildVersionCode="23" platformBuildVersionName="6.0.1">
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.STATUS_BAR"/>
<uses-permission android:name="android.permission.DEVICE_POWER"/>
<uses-permission android:name="android.permission.MANAGE_USERS"/>
<uses-permission android:name="android.permission.MANAGE_APP_TOKENS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
<uses-permission android:name="android.permission.BIND_APPWIDGET"/>
<uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW"/>
<uses-permission android:name="android.permission.BIND_DEVICE_ADMIN"/>
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/>
<uses-permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
<uses-permission android:name="com.fingerprints.service.ACCESS_FINGERPRINT_MANAGER"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="com.miui.powercenter.permission.POWER_DATA"/>
<uses-library android:name="cloud-common.jar"/>
<application android:name="miui.external.Application" android:persistent="true" android:process="com.android.systemui" android:supportsRtl="true">
<uses-library android:name="miui-stat.jar"/>
<uses-library android:name="gson.jar"/>
<meta-data android:name="SupportTrackViewForLockScreenAd" android:value="true"/>
<service android:exported="true" android:name=".KeyguardService"/>
<service android:name="miui.maml.elements.MusicListenerService" android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
<intent-filter>
<action android:name="android.service.notification.MusicListenerService"/>
</intent-filter>
</service>
<activity android:excludeFromRecents="true" android:label="@string/face_data_input_title" android:name=".settings.MiuiFaceDataIntroduction" android:screenOrientation="portrait" android:theme="@style/Theme.Main"/>
<activity android:excludeFromRecents="true" android:label="@string/face_data_input_title" android:name=".settings.MiuiFaceDataSuggestion" android:screenOrientation="portrait" android:theme="@style/Theme.Main"/>
<activity android:excludeFromRecents="true" android:label="@string/face_data_input_title" android:name=".settings.MiuiFaceDataInput" android:screenOrientation="portrait" android:theme="@style/Theme.Main"/>
<activity android:excludeFromRecents="true" android:label="@string/face_data_introduction_title" android:name=".settings.MiuiFaceDataManage" android:screenOrientation="portrait" android:theme="@style/Theme.Main"/>

</application>
</manifest>

Buka /smali/com/android/keyguard/MiuiKeyguardUtils.smali
Cari:


.method public static isSupportFaceUnlock()Z

Lalu dalam method tersebut, cari:


return v0

Setelah ketemu, tambahkan ini diatasnya:


const/4 v0, 0x1

Hingga hasilnya menjadi seperti ini:


.method public static isSupportFaceUnlock()Z
.locals 2

.prologue
.line 239
sget-object v0, Lmiui/os/Build;->DEVICE:Ljava/lang/String;

const-string v1, "jason"

invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v0

if-eqz v0, :cond_0

sget-boolean v0, Lmiui/os/Build;->IS_INTERNATIONAL_BUILD:Z

if-nez v0, :cond_0

const/4 v0, 0x1

:goto_0
const/4 v0, 0x1

return v0

:cond_0
const/4 v0, 0x0

goto :goto_0
.end method

Recompile MiuiKeyguard.spk

  • Bagian Finishing
  1. Salin file lib ke dalam folder /system/lib64/
  2. Set seluruh permission filenya menjadi rw-r--r-- (0644)
  3. Salin MiuiSettings.apk dan MiuiKeyguard ke tampatnya masing-masing, set permission file menjadi rw-r--r-- (0644).
  4. Reboot System
  5. Selesai.

Cara Penggunaan:
Setelah menambahkan data wajah di Pengaturan -> Kunci layar & sandi -> Kelola data wajah
Coba kunci ponsel kamu, lalu hidupkan layar ponsel, arahkan ke wajah.

File yang sudah di modif (Global Dev 7.11.12):
FaceUnlock-bootloop.id.zip (Isinya: Settings.apk - MiuiKeyguard.apk - lib face unlock)

Screenshot:
faceunlock

faceunlock

faceunlock



Demikianlah artikel ini dibuat, semoga bermanfaat. Apabila ada pertanyan silahkan tinggalkan komentar.

Hasil compare MiuiKeyguard dari ROM Kenzo vs ROM Jason:
kenzovsjason


Referensi: MIUI Forum  | Mi Note 3 ROM | MIUIPRO

Disable Signature Verification di ROM Android Termasuk MIUI

bamzzz 11:59 AM 7 Comments
signature-hack

Fungsi dari Disable Signature Verification adalah untuk membebaskan kita menambahkan/memodif file apk yang ada di system dan data tanpa dipusingkan dengan segala macam signature yang selalu ada di file apk. Terutama sangat dibutuhkan jika kita ingin memodif file apk system yang berhubungan dengan AndroidManifest.
Disini saya berikan tutorial lengkapnya, termasuk disable signature miui yang biasanya sangat alot di bypass. Hingga setelah terapkan, kamu dapat menghapus app system bawaan miui yang tidak kamu butuhkan, seperti MiuiStore, etc. Tanpa takut bootloop.

Syarat:
  • Rooted
  • Deodexed ROM

Bahan:
  • core-libart.jar (ambil dari /system/framework)
  • services,jar (ambil dari /system/framework)

Langkah-langkah:

  • Bagian core-libart
Decompile core-libart.jar
Buka /smali/java/security/Signature.smali
Cari:


.method public final verify([B)Z

Lalu didalam method tersebut, cari:


return v0

Tambahkan ini diatasnya:


const/4 v0, 0x1

Hingga hasilnya menjadi 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

Masih di /smali/java/security/Signature.smali
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

Buka /smali/java/security/MessageDigest.smali
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

Recompile core-libart

  • Bagian services
Decompile services.jar
Buka /smali/com/android/server/pm/PackageManagerService.smali
Cari:


.method static compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I

Lalu didalam method tersebut, cari:


return v6

Tambahkan ini diatasnya:


const/4 v6, 0x0

Hingga hasilnya menjadi seperti ini:


.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

Masih di /smali/com/android/server/pm/PackageManagerService.smali
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

Hingga hasilnya menjadi seperti ini:


.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


Masih di /smali/com/android/server/pm/PackageManagerService.smali
Cari:


.method private compareSignaturesRecover(Lcom/android/server/pm/PackageSignatures;Landroid/content/pm/PackageParser$Package;)I

Lalu didalam method tersebut, cari:


return v2

Tambahkan ini diatasnya:


const/4 v2, 0x0

Hingga hasilnya menjadi seperti ini:


.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

Untuk ROM Android selain MIUI sudah selesai sampai disini. Silahkan lanjut ke bagian finishing.
Khusus ROM MIUI silahkan lanjutkan tutorialnya.

Buka /smali/com/miui/server/SecurityManagerService.smali
Cari:


.method private checkSysAppCrack()Z

Lalu didalam method tersebut, cari:


const/4 v8, 0x0

Tambahkan ini dibawahnya:


const/4 v3, 0x1

return v3

Hingga hasilnya menjadi seperti ini:


.method private checkSysAppCrack()Z
.locals 9

.prologue
const/4 v8, 0x0

const/4 v3, 0x1

return v3


.line 602
new-instance v1, Ljava/util/ArrayList;

invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V

.line 603
.local v1, "appsTobeChecked":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lcom/miui/server/SecurityManagerService$AppItem;>;"
new-instance v5, Lcom/miui/server/SecurityManagerService$AppItem;

const-string v6, "com.miui.home"

const-string v7, "3082046c30820354a003020102020900e552a8ecb9011b7c300d06092a864886f70d0101050500308180310b300906035504061302434e3110300e060355040813074265696a696e673110300e060355040713074265696a696e67310f300d060355040a13065869616f6d69310d300b060355040b13044d495549310d300b060355040313044d495549311e301c06092a864886f70d010901160f6d697569407869616f6d692e636f6d301e170d3131313230363033323632365a170d3339303432333033323632365a308180310b300906035504061302434e3110300e060355040813074265696a696e673110300e060355040713074265696a696e67310f300d060355040a13065869616f6d69310d300b060355040b13044d495549310d300b060355040313044d495549311e301c06092a864886f70d010901160f6d697569407869616f6d692e636f6d30820120300d06092a864886f70d01010105000382010d00308201080282010100c786568a9aff253ad74c5d3e6fbffa12fed44cd3244f18960ec5511bb551e413115197234845112cc3df9bbacd3e0f4b3528cd87ed397d577dc9008e9cbc6a25fc0664d3a3f440243786db8b250d40f6f148c9a3cd6fbc2dd8d24039bd6a8972a1bdee28c308798bfa9bb3b549877b10f98e265f118c05f264537d95e29339157b9d2a31485e0c823521cca6d0b721a8432600076d669e20ac43aa588b52c11c2a51f04c6bb31ad6ae8573991afe8e4957d549591fcb83ec62d1da35b1727dc6b63001a5ef387b5a7186c1e68da1325772b5307b1bc739ef236b9efe06d52dcaf1e32768e3403e55e3ec56028cf5680cfb33971ccf7870572bc47d3e3affa385020103a381e83081e5301d0603551d0e0416041491ae2f8c72e305f92aa9f7452e2a3160b841a15c3081b50603551d230481ad3081aa801491ae2f8c72e305f92aa9f7452e2a3160b841a15ca18186a48183308180310b300906035504061302434e3110300e060355040813074265696a696e673110300e060355040713074265696a696e67310f300d060355040a13065869616f6d69310d300b060355040b13044d495549310d300b060355040313044d495549311e301c06092a864886f70d010901160f6d697569407869616f6d692e636f6d820900e552a8ecb9011b7c300c0603551d13040530030101ff300d06092a864886f70d010105050003820101003b3a699ceb497300f2ab86cbd41c513440bf60aa5c43984eb1da140ef30544d9fbbb3733df24b26f2703d7ffc645bf598a5e6023596a947e91731542f2c269d0816a69c92df9bfe8b1c9bc3c54c46c12355bb4629fe6020ca9d15f8d6155dc5586f5616db806ecea2d06bd83e32b5f13f5a04fe3e5aa514f05df3d555526c63d3d62acf00adee894b923c2698dc571bc52c756ffa7a2221d834d10cb7175c864c30872fe217c31442dff0040a67a2fb1c8ba63eac2d5ba3d8e76b4ff2a49b0db8a33ef4ae0dd0a840dd2a8714cb5531a56b786819ec9eb1051d91b23fde06bd9d0708f150c4f9efe6a416ca4a5e0c23a952af931ad3579fb4a8b19de98f64bd9"

invoke-direct {v5, v6, v7, v8}, Lcom/miui/server/SecurityManagerService$AppItem;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V

invoke-virtual {v1, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

....

....

.end method


Masih di /smali/com/miui/server/SecurityManagerService.smali
Cari:


.method private checkSystemSelfProtection(Z)V

Hapus semua text didalam  method tersebut , lalu rubah hingga hasilnya menjadi seperti ini:


.method private checkSystemSelfProtection(Z)V
.locals 2
.param p1, "onlyCore" # Z

.prologue
.line 517
const-string v0, "SystemSelfProtection"

const-string v1, "bypassed by bamzzz@xda"

invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

.line 588
return-void
.end method

Recompile services


  • Bagian Finishing

Salin kembali core-libart.jar dan services.jar ke dalam folder /system/framework, set permission files nya rw--r--r-- (0644).
Reboot system
Selesai

Demikianlah artikel ini dibuat, semoga bermanfaat.

Referensi: Forum Multirom

Mengaktifkan Vulkan API di Android Nougat dan Oreo pada Kenzo/Kate

bamzzz 5:42 AM 27 Comments
openglesvsvulkan

Semua Rom Android Nougat dan Oreo sekarang sudah memiliki driver Vulkan API , tapi tidak diaktifkan secara default. Hal ini terjadi karena play store mengetahui perangkat mana yang menerima API secara resmi, mana yang bukan, dalam kasus ini Redmi Note 3 Pro. Karena itu, meski dengan sistem driver yang mendukung, namun tidak mendukung API. Untuk ini perlu menyamarkan perangkat, mengubahnya menjadi beberapa perangkat yang telah menerima Vulkan secara resmi. Setelah mengaktifkan Vulkan API, hasilnya sangat bermanfaat untuk game dan aplikasi yang mendukung API.

Bagaimana cara mengetahui apakah perangkat Anda sudah memiliki driver vulkan:
  • Download AIDA64 dari PlayStore
  • Buka AIDA64 -> Devices
  • Lihat jika ada tulisan "Vulkan Device - Adreno (TM) 510" berarti perangkat kamu sudah memiliki driver vulkan, tinggal menggunakan Vulkan Aktivator untuk mengaktifkannya.
Vulkan

  • Jika perangkat belum memiliki Vulkan Driver, pasang dahulu Vulkan Driver, baru pasang Vulkan Aktivator.

Vulkan Driver:
vulkan_050117.zip

Vulkan Aktivator:

Cara Pasang:
  • Letakkan file hasil download ke SDCard
  • Reboot ke TWRP Recovery
  • Pasang lewat TWRP
  • Selesai
Demikianlah artikel ini dibuat, semoga bermanfaat.

Source:

Official Xposed untuk Nougat 7.0 & 7.1

bamzzz 5:19 AM Add Comment
Xposed

Perilisan Android yang baru terkadang membawa perubahan pada cara kerja ART, yang mungkin memerlukan bagian Xposed untuk dikerjakan ulang. Android 7.0 Nougat memperkenalkan kompiler Just-in-Time (JIT) untuk ART untuk membantu meningkatkan kinerja aplikasi runtime, misalnya. Namun Kerangka Kerja Xposed tidak resmi hanya bisa menonaktifkan banyak pengoptimalan ART sehingga metode "hooking" dapat bekerja dengan benar.
art


Sebaliknya, implementasi rovo89 membuat semua pengoptimalan ART di Android Nougat dengan mengkompilasi ulang pemanggil metode menggunakan JIT dan masih memiliki metode pengait pada tempatnya. Itu berarti Anda dapat menikmati manfaat dari Modul Xposed tanpa mengorbankan kinerja dengan mematikan pengoptimalan ART secara paksa. Untuk rincian lebih lanjut tentang apa yang rovo89 lakukan untuk akhirnya mendapatkan metode hooking yang andal di Xposed for Android Nougat, kami sarankan Anda membaca pernyataan di bawah yang dia berikan kepada kami (Lihat source).


Source: XDA

Cara Mengunci Bootloader di Ponsel Xiaomi

bamzzz 5:37 PM Add Comment
bootloader

Cara mengunci kembali bootloader ponsel xiaomi yang sudah di unlock dengan cara:
  • Reboot ke mode fastboot dengan cara, matikan ponsel, lalu tekan tombol power + Volume Bawah hingga hidup.
  • Koneksikan ponsel ke PC menggunakan kabel data, buka command prompt, lalu ketikkan 


adb device

  • Pastikan ponsel kamu terdeteksi di komputer. Lalu ketik:


fastboot oem lock

  • Selesai

Demikianlah tutorial singkat ini dibuat, semoga bermanfaat. Terima kasih.



Cara Modifikasi Theme Manager di MIUI 8 (Support Font, Boot Animation, dll)

bamzzz 5:14 PM 5 Comments
Cara membuat modifikasi theme manager untuk MIUI 8 by bamzzz

miui

TIDAK DAPAT DITERAPKAN DI ROM MIUI GLOBAL DEV MULAI DARI VERSI 7.12.28.

Fitur:
  • Support tema pihak ke-3.
  • Apply tema secara offline (tanpa melalui verifikasi server xiaomi).
  • Menampilkan font di dashboard.
  • Mencegah tema kembali ke default saat menggunakan tema pihak ke-3.
  • Support boot animation tanpa akun theme designer.


Peralatan dan Persyaratan:
  • APKTool / MT Manager
  • Flashable zip kosong, Download
  • TWRP installer
  • miuisystem.apk (./system/app/miuisystem/miuisystem.apk)
  • ThemeManager.apk (./system/app/ThemeManager/ThemeManager.apk)
  • Backup file asli sebelum modding
  • Full backup lewat twrp direkomendasikan.
  • Bahan compare: Download


Modding Bagian 1:
  • Decompile miuisystem.apk

Buka ./miui/drm/DrmManager.smali

Cari:

.method public static isLegal(Landroid/content/Context;Ljava/lang/String;Ljava/io/File;)Lmiui/drm/DrmManager$DrmResult;

Kemudian cari:

return-object v4

Diatasnya tambahkan:

sget-object v4, Lmiui/drm/DrmManager$DrmResult;->DRM_SUCCESS:Lmiui/drm/DrmManager$DrmResult;

Cari:

.method private static isLegal(Landroid/content/Context;Ljava/lang/String;Lmiui/drm/DrmManager$RightObject;)Lmiui/drm/DrmManager$DrmResult;

Kemudian cari:

return-object v8

Diatasnya tambahkan:

sget-object v8, Lmiui/drm/DrmManager$DrmResult;->DRM_SUCCESS:Lmiui/drm/DrmManager$DrmResult;

Cari:

.method public static isPermanentRights(Ljava/io/File;)Z

Kemudian cari:

return v0

Diatasnya tambahkan:

const/4 v0, 0x1

Cari:

.method private static isRightsFileLegal(Ljava/io/File;)Z

Kemudian cari:

return v13

Diatasnya tambahkan:

const/4 v13, 0x1

Cari:

.method public static isSupportAd(Landroid/content/Context;)Z

Kemudian cari:

return v0

Diatasnya tambahkan:

const/4 v0, 0x0

Cari:

.method public static setSupportAd(Landroid/content/Context;Z)V

Kemudian cari:

const/4 v0, 0x1

Ubah Menjadi:

const/4 v0, 0x0

Buka ./miui/drm/ThemeReceiver$1.smali

Cari:

invoke-virtual {v3}, Lmiui/content/res/ThemeRuntimeManager;->restoreDefault()V

Ubah menjadi:

#    invoke-virtual {v3}, Lmiui/content/res/ThemeRuntimeManager;->restoreDefault()V
  • Recompile miuisystem.apk.


Modding Bagian 2:
  • Decompile ThemeManager.apk

Buka ./com/android/thememanager/controller/online/DrmService.smali

Cari:

.method public isLegal(Lcom/android/thememanager/model/Resource;)Lmiui/drm/DrmManager$DrmResult;

Kemudian cari:

return-object v5

Diatasnya tambahkan:

sget-object v5, Lmiui/drm/DrmManager$DrmResult;->DRM_SUCCESS:Lmiui/drm/DrmManager$DrmResult;


Buka ./com/android/thememanager/util/ThemeHelper.smali

Cari:

.method public static supportBootAnimation()Z

Kemudian cari:

return v0

Diatasnya tambahkan:

const/4 v0, 0x1

Cari:

.method public static supportReplaceFont()Z

Kemudian cari:

return v0

Diatasnya tambahkan:

const/4 v0, 0x1

Buka ./com/android/thememanager/util/ThemeOperationHandler.smali

Cari:

.method private reset()V

Kemudian cari:

iput-boolean v0, p0, Lcom/android/thememanager/util/ThemeOperationHandler;->mIsLegal:Z

Diatasnya tambahkan:

const/4 v0, 0x1

Cari:

.method protected isLegal()Z

Kemudian cari:

return v0

Diatasnya tambahkan:

const/4 v0, 0x1

Cari:

.method public isPermanentRights()Z

Kemudian cari:

return v1

Diatasnya tambahkan:

const/4 v1, 0x1

Cari:

.method public final onApplyEventPerformed()V

Kemudian cari:

iput-boolean v0, p0, Lcom/android/thememanager/util/ThemeOperationHandler;->mIsTrialApply:Z

Diatasnya tambahkan:

const/4 v0, 0x0

Cari:

.method public onTrialEventPerformed()V

Kemudian cari:

const-string v0, "trial_download"

Diatasnya tambahkan (Pastikan v0 bernilai 0x0):

iput-boolean v0, p0, Lcom/android/thememanager/util/ThemeOperationHandler;->mIsTrialApply:Z


Buka ./com/android/thememanager/util/ThemeOperationHandler$CheckRightsTask.smali

Cari:

.method protected onPostExecute(Lmiui/drm/DrmManager$DrmResult;)V

Kemudian cari:

iget-boolean v0, v0, Lcom/android/thememanager/util/ThemeOperationHandler;->mIsTrialApply:Z

Dibawahnya tambahkan:

const/4 v0, 0x0


Buka ./com/android/thememanager/util/UIHelper.smali

Cari:

.method public static supportLocalContent(Ljava/lang/String;)Z

Kemudian cari:

return v0

Diatasnya tambahkan:

const/4 v0, 0x1

Cari:

.method public static supportOnlineContent(Ljava/lang/String;)Z

Kemudian cari:

return v0

Diatasnya tambahkan:

const/4 v0, 0x1
  • Recompile ThemeManager.apk


Modding Bagian 3: Membuat flashable zip
  • Setelah selesai memodifikasi miuisystem dan ThemeManager, jika menggunakan apktool, pastikan kamu menyalin Folder META-INF dan Manifest.xml dari apk asli ke apk hasil modifikasi.
  • Jika menggunakan apktool, salin classes.dex dari ThemeManager.apk hasil modif ke dalam ThemeManager.apk yang belum dimodif. Yang kita butuhkan hanya classes.dex hasil modif.
  • Download flashable zip kosong ini, lalu salin miuisystem dan ThemeManager ketempatnya masing-masing.
  • Pasang flashable zip lewat TWRP.
  • Selesai.


Mod Theme Manager & MIUI System, dari ROM Global 8.5.3.0: Download
Module Magisk Theme Manager Mod ROM Global 8.5.3.0 : Download
Stock Theme Manager & MIUI System, dari ROM Global 8.5.3.0: Download

Screenshot:
thememanager

thememanager

thememanager

thememanager


Demikian artikel ini dibuat, segala resiko dan kerugian akibat mod ini bukan tanggung jawab penulis.
Pastikan kamu membuat backup sebelum memodifikasi file system. Semoga bermanfaat. Terima kasih atas kunjungannya. 





Cara Root Semua Ponsel Android Dengan Mudah (Android 2.3 - 5.0)

bamzzz 5:56 PM Add Comment

Cara mudah root semua ponsel android dengan Cydia Impactor. Cydia Impactor adalah aplikasi Windows yang memungkinkan kita me-rooting ponsel android dengan mudah. Aplikasi ini di kembangkan oleh Saurik (Developer yang membuat Cydia untuk iOS).
Aplikasi ini hanya berfungsi untuk me-root Android versi 2.3 (Gingerbread) sampai Android versi 5.0 (Lollipop). Langsung aja kita simak caranya.


Caranya:
  • Download Cydia_Impactor_v0.9.33.zip untuk Windows.
  • Hidupkan usb debugging di ponsel android yang ingin di root. Masuk ke Setelan -> Developer Option -> USB Debugging. Developer Option biasa di sembunyikan oleh pengembang, cara menampilkan opsi Developer Option dengan cara masuk ke Setelan -> Tentang Ponsel, klik Build Number beberapa kali hingga tampil notifikasi "Anda sudah menjadi pengembang".
  • Extract Cydia Impactor di komputer kamu.
    cydia-impactor-files
  • Buka Impactor.exe
  • Hubungkan ponsel kamu ke komputer menggunakan kabel USB.
  • Di dropdown menu Cydia Impactor pilih "install SuperSU (aka, root my android)" lalu klik Start.
    cydia-impactor
  • Setelah proses selesai, tutup Cydia Impactor dan lepaskan kabel usb yang terhubung ke ponsel.
  • Restart ponsel kamu
  • Setelah direstart, download dan install SuperSU dari Google Play.
  • Sekarang ponsel kamu sudah selesai di root, buka aplikasi SuperSU, jika SuperSU berjalan normal berarti ponsel kamu sudah berhasil di root.
  • Download Root Status (root checker) juga untuk memastikan ponsel kamu sudah berhasil di root.
  • Selesai.

Demikianlah artikel ini dibuat, semoga bermanfaat. Terima kasih.

Cara Pasang TWRP di Redmi Note 3 Pro (Kenzo/Kate)

bamzzz 8:49 PM Add Comment
Kali ini saya ingin membagikan TWRP khusus Redmi Note 3 Pro (Kenzo) dan Redmi Note 3 Pro SE (Kate). TWRP ini dicompile oleh salah satu member Forum MIUI China "BY~XM", thread aslinya bisa dilihat disini: http://www.miui.com/thread-5317106-1-1.html.

Persyaratan:
  • Redmi Note 3 Pro (Kenzo/Kate)
  • Bootloader sudah di Unlock

Bahan:

Langkah-Langkah Pemasangan TWRP:

Cara Bawaan
  1. Download ZCX TWRP sesuai dengan tipe ponsel yang kamu gunakan.
  2. Extract hasil download nya
  3. Matikan ponsel, lalu masuk ke Fastboot
  4. Koneksikan ke pc, lalu jalankan "xxrecovery.bat"
  5. Jika sudah selesai ponsel akan masuk ke TWRP
Cara Manual
  1. Jika cara diatas tidak berhasil,
  2. Buka command prompt di lokasi folder twrp di extract (Shift + Klik kanan -> run command prompt here)

    Untuk kenzo, ketikkan:
    fastboot flash recovery ZCX-TWR-3.0.2-X-REDMI_NOTE3-PRO_Kenzo-16.12.30.img (ENTER)
    fastboot boot ZCX-TWR-3.0.2-X-REDMI_NOTE3-PRO_Kenzo-16.12.30.img (ENTER)

    Untuk kate, ketikkan:
    fastboot flash recovery ZCX-TWR-3.0.2-X-REDMI_NOTE3-PRO_Kate-16.12.30.img (ENTER)
    fastboot boot ZCX-TWR-3.0.2-X-REDMI_NOTE3-PRO_Kate-16.12.30.img (ENTER)
  3. Jika berhasil ponsel akan masuk ke TWRP.
Merubah Bahasa di TWRP
  • Jika pertama kali masuk twrp berbahasa China, cara merubahnya ke bahasa Inggris lihat screenshot:

Pengaturan
Buka Pengaturan
Pengaturan Bahasa
Tab Pengaturan Bahasa

  • Buka Pengaturan -> Bahasa -> Lalu pilih "English" kemudian pilih kotak kanan bawah bertuliskan "设定语言" yang bhs Inggrisnya itu "Set language" 😂
  • Jika sudah berhasil mengganti bahasa, silahkan reboot ponsel.
  • Selesai.

Catatan:
Jika menemukan Error Code 4 saat melakukan update OTA, coba wipe data dahulu sebelum flash ota, saya pernah coba berhasil.


Demikianlah tulisan ini dibuat, semoga bermanfaat. Terima kasih.

Cara Pasang Xposed Framework di ROM MIUI

bamzzz 8:02 AM Add Comment
xposed

Xposed yang sudah beredar kebanyakan untuk ROM Android Stock, base Cyanogen/AOSP.. Tapi untuk miui pakai Xposed versi khusus MIUI.

Persyaratan:
Rooted
Custom Recovery (CWM, TWRP)

Mohon perhatian:
Arsip dengan instalasi Xposed berisi beberapa informasi yang diperlukan dan sangat penting untuk berhasil menginstalasi untuk memilih arsip yang benar.

  • ARM berarti perangkat yang menjalankan sistem operasi arm32 dan menggunakan arsitektur ARM CPU.
  • ARM64 berarti perangkat yang menjalankan sistem operasi arm64 dan menggunakan arsitektur ARM64 CPU.
  • x86 berarti perangkat yang menjalankan sistem operasi x86 dan menggunakan CPU x86 (Intel) CPU.
  • sdk21 berarti Android Lollipop 5.0.x
  • sdk22 berarti Android Lollipop 5.1.x
  • sdk23 berarti Android Marshmallow 6.0.x


Jika Anda mencoba menginstal zip yang salah, maka tidak akan terinstal dan pesan kesalahan muncul di log instalasi TWRP.


Cara Pasang:

  • Instal aplikasi Xposed Installer atau Xposed Installer Material Design
  • Reboot ke recovery
  • Buat cadangan TWRP
  • Copy file Xposed zip dan uninstaller zip ke sdcard anda
  • Flash "xposed-vxx-sdkxx-armxx-MIUI-edition-by-SolarWarez-xxxxxxxx.zip" melalui custom recovery (TWRP / CWM ...)
  • Reboot dan tunggu, diperlukan beberapa menit untuk boot tergantung pada ukuran ROM Anda dan jumlah aplikasi terinstal. Jika ponsel masih tidak booting setelah 5 menit maka Anda perlu mendapatkan boot log dengan "adb logcat -v time", reboot ke recovery dan restore backup atau uninstall Xposed.


Download:

MIUI Lollipop 5.0.x
ARM: xposed-v87-sdk21-arm-MIUI-edition-by-SolarWarez-20161126.zip

MIUI Lollipop 5.1.x

MIUI Marshmallow 6.0.x

Uninstaller


Magisk Version
Xposed dibawah ini untuk yang sudah menginstall magisk, bisa pakai xposed versi Magisk.


Untuk Xposed Uninstaller versi Magisk bisa langsung melalui Magisk Manager atau uninstall Magisk nya.


Credit:
rovo89 for Xposed
SolarWarez for Xposed MIUI version





Cara Pasang Xposed Framework di Android Nougat

bamzzz 6:24 AM Add Comment
Xposed banyak digunakan oleh pengguna android untuk merubah tampilan atau menerapkan mod tanpa repot memodif file apk dan system.

Sayangnya, sudah hampir setahun tanpa update resmi untuk Android Nougat. Sementara pengembang asli rovo89 memang sedang mengerjakannya, namun belum di porting. Tapi jangan khawatir, situasinya nampaknya berubah sekarang. Tim Purify OS telah melakukan porting xposed ke Android Nougat dengan bantuan versi XPT yang dimodifikasi oleh abforce.

Ini mungkin tidak resmi, tapi tetap saja, pengguna nougat mendapat kesempatan untuk memasang xposed pada perangkat mereka. Apakah kamu dengan perangkat Android Nougat dan bersedia menginstal Xposed Framework? Bersiaplah dan ikuti panduan kami, bagaimana cara menginstal Xposed Framework pada perangkat Android Nougat.
xposed


Persyaratan:

  • Manggunakan Android versi 7.0+
  • Sudah di root 
  • Menggunakan TWRP atau custom recovery lainnya
  • Menggunakan Custom ROM berbasis Lineage OS atau AOSP.
  • Xposed Installer Apk.
  • Xposed Framework.
  • Sebagai tindakan pencegahan, harap cadangkan data pribadi kamu pada perangkat. Gunakan aplikasi ketiga seperti backup Nandroid, Titanium backup untuk melakukan itu. Rekomendasi saya lakukan seluruh backup ROM termasuk aplikasi dan data menggunakan TWRP.



Cara pasang:



Catatan: Kamu mungkin mendapatkan notifikasi yang mengatakan "Xposed tidak kompatibel dengan Android SDK versi 25 atau arsitektur prosesor Anda". Jangan khawatir, ini adalah versi porting baru (tidak resmi), dan ini bekerja dengan baik.

Sekian tulisan ini dibuat, semoga bermanfaat. Terima kasih.

Source: https://devs-lab.com


Cara Memasang Banyak ROM Dalam Satu Ponsel

bamzzz 6:05 AM 4 Comments
dualbootpatcher


Saat ini ada banyak Custom ROM yang dibagikan di grup-grup facebook atau di forum luar negeri (XDA, dsb); seperti LineageOS, AospExtended, Resurrection Remix, dsb. Terkadang kita saat ada custom rom baru rilis, lalu ingin mencoba fitur-fitur nya, tapi masih ragu untuk bepindah dari ROM bawaan produsen. Solusinya adalah...

Memasang "Dual Boot Patcher".

Apa itu Dual Boot Patcher?

Dual Boot Patcher adalah aplikasi open-source yang memungkinkan beberapa ROM diinstal pada satu perangkat Android. Apliksi ini bekerja dengan kode yang ada dan tidak memerlukan dukungan eksplisit dari ROM. Saat ini ada 215 perangkat yang didukung dalam berbagai variasinya.
Untuk melihat perangkat yang didukung: Lihat supported devices.

So.. apakah kamu sudah siap..??

Syarat:
  • Ponsel sudah di ROOT
  • Terpasang TWRP Recovery
  • Memori yang memadai

Instalasi:

Untuk selanjutnya cara patch file rom, kenapa harus di patch? Agar dapat terbaca di App Dual Boot Patcher sebagai ROM tambahan. Untuk MIUI, sebelum membuat patch rom file, masuk ke "Setelan" -> "Aplikasi terinstal", cari app "Dokumen", lalu pilih Aktifkan. Lihat screenshot:


Cara Patch File ROM:
  • Buka aplikasi Dual Boot Patcher.
  • Pilih "Patch Zip File" dari panel kiri.
  • Pilih "Add flashable zip" dengan mengklik tombol "+".
  • Lalu pilih file zip ROM yang ingin di patch.
  • Pilih lokasi dimana ROM akan diinstal, di "Partition configuration". (Saya recomendasikan untuk Pilih Data slot atau Extsd slot).
  • Ketik "ID" nya, terserah. Kalau saya buat sesuai nama romnya agar tidak bingung saat instalasinya. Misal, AospExtended -> aex, LineageOS -> los, dll.
  • Pilih lokasi penyimpanan untuk file yang telah dipatch.
  • Tambahkan file GApps atau kernel sesuai kebutuhan, isi ID sesuai dengan peruntukkannya, misal saya mau pasang Gapps untuk rom AospExtended, jadi saya isi ID nya "aex".


Cara Memasang ROM yang telah di Patch:
  • Buka bagian ROM dari panel kiri dan pilih "In-App Flashing" (sudut kanan bawah).
  • Pilih Tambah file yang dipatch dengan mengklik tombol "+".
  • Pilih "Add patched file" lalu pilih file Zip yang telah di patch, kemudian pilih "KEEP LOCATION" atau "CHANGE LOCATION".
    KEEP LOCATION artinya memasang di lokasi yang sudah di set sebelumnya saat membuat file patch.
    CHANGE LOCATION artinya merubah lokasi instalasi ROM, misal: dari data-aex ke ExtSD-aex.
  • Jika sudah selesai memilih file yang akan di flashing, Tekan gambar centang di pojok kanan atas.
  • Tunggu hingga proses instalasi rom selesai.
  • Untuk memasang Kernel dan file zip yang menggunakan AROMA Installer, harus flash menggunakan TWRP Recovery, jangan lewat App Dual Boot, tidak di support.


Untuk lebih jelasnya silahkan lihat videonya:



Cara Memilih ROM Yang Ingin Digunakan
  • Sekarang Anda dapat memilih antara ROM yang terinstal dan memilih yang mana yang akan di-boot.
  • Untuk berpindah antara ROM yang telah diinstall, bisa melalui Aplikasi Dual Boot Patcher atau bisa juga lewat TWRP Recovery dengan cara mem-flashing zip "Dual Boot Utilities" yang telah kita download tadi. Tinggal pilih rom yang diinginkan lalu reboot ponsel.
  • Dual Boot Utilities sangat berguna jika kita terjebak bootloop atau ROM tidak mau booting.

NB: Untuk pengguna MIUI ROM,  jangan lupa set kunci layar ke slide atau off sebelum booting ke ROM lain karena kamu tidak dapat membuka kunci perangkat di layar kunci setelah kamu me-reboot ke ROM lain. Bahkan jika kamu memasukkan pola yang benar. Tetap saja ada notifikasi salah. Jika sudah terlanjur terjadi, gunakan AGNI Toolbox v1.3, pasang lewat recovery, lalu pilih "Remove lockscreen security". Reboot.


Demikianlah artikel ini saya buat, semoga bermanfaat. Jika ada yang kurang jelas, silahkan tinggalkan komentar. Terima kasih.


Source for AGNI Toolbox: