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:
- Rooted
- Deodexed ROM
- Sudah "Disable Signature Verification" Baca: Disable Signature Verification di ROM Android Termasuk MIUI
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
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
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
- Salin file lib ke dalam folder /system/lib64/
- Set seluruh permission filenya menjadi rw-r--r-- (0644)
- Salin MiuiSettings.apk dan MiuiKeyguard ke tampatnya masing-masing, set permission file menjadi rw-r--r-- (0644).
- Reboot System
- 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:
Demikianlah artikel ini dibuat, semoga bermanfaat. Apabila ada pertanyan silahkan tinggalkan komentar.
Hasil compare MiuiKeyguard dari ROM Kenzo vs ROM Jason:
Referensi: MIUI Forum | Mi Note 3 ROM | MIUIPRO
72 comments
Write commentsMantap masbam !!
ReplyThx mas dug
ReplyPassword file modif nya apa yaa?
ReplyPW nya apaan ini brow..
Replypassword zip nya apa mas?
ReplyThis comment has been removed by the author.
ReplyPassword nya apA ini
ReplyPassnya apa mas??
ReplyThis comment has been removed by the author.
ReplyThis comment has been removed by the author.
ReplyWah keren sekali fitur Facial Unlock pada smartphone xiaomi ini
ReplyTerima kasih atas kunjungannya :)
Replypaswordnya gan.
Replywork di miui 9 7.11.16 redmi note 4X gan ?
ReplyWork gan di ane
ReplyKlo takun bootloop, mod ulang aja sesuai tutorial.
ReplyThis comment has been removed by the author.
ReplyThis comment has been removed by the author.
ReplyThanks mas
Replyada tutor video nggak
Replymasih bngung
bisa di pasang di kenzo 8.5.70
ReplyGk bisa, itu mod base global dev 7.11.2, mod ulang aja sesuai tutorial
ReplyGk ada
ReplyPasswordnya apaan gan
ReplyPasswordnya mastah bro
ReplyBang, password file modifnya apa? Btw, itu file buat apa gan? Maaf masih newbie
ReplyThis comment has been removed by the author.
ReplyAne ubek ko gak ada jason ya om,posisi eu 7.8.17 7.0
ReplyBarang kali ada clue,thnks
Ya jelas gk ada string "jason", cz Mi Note 3 aja blm rilis di 7.8.17.. :v
ReplyMinimal pakai rom 7.9.14 keatas.
Password file zip nya apa bang?
ReplyBelum lihat pw nya saya bang? Kok sudah di hapus
ReplyThis comment has been removed by a blog administrator.
Replypasswordnya apa?
ReplyThis comment has been removed by the author.
ReplyStay tuned hihi
ReplyAne test di miui pro mido versi stable fc om
ReplyMiuiPro udh ada fitur face unlock nya, gk perlu pake mod ini lagi.
ReplyItu yg facelock.zip itu tanpa otak atik lagi kah?
ReplyYes, tinggal flash via twrp
Replybang bisa gk buat rom global stable ?
Replysoalnya saya mau mod seperti tutorial gabisa di decompile apknya
Gk bisa. buat global dev aja
Replysaya mau nambah di global stable kira kira bisa nggak?
Replytrus maksut dari log ini apa? setiap decompile apk keyguard sama setting muncul error 16, tapi kalo buat apk lain bisa
[*] Decompiling MiuiKeyguard.apk
I: Using Apktool 2.3.0 on MiuiKeyguard.apk
I: Loading resource table...
I: Decoding Shared Library (miui), pkgId: 16
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: bin\framework\1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
Can't find framework resources for package of id: 16. You must install proper framework files, see project website for more info.
[*] ---> Error decompiling MiuiKeyguard.apk
GLobal stable masih miui 8, blm bisa nerapin mod ini. Kalau masalah decompile diatas, pastikan sudah import framework-res.apk, ext-framework-res.apk, miui.apk, miuisystem.apk, SmsExtra.apk.
Replyoke thx gan decompile berhasil, tapi punya saya redmi note 4 udah ada global stable miui 9
ReplyOh ya, bisa dicoba mod'y
ReplyThis comment has been removed by the author.
ReplyMatur nuwun sam
ReplyIya sama-sama
Replyidem 😅
Replyminta pass nya mast 😂
Matur tengkyu mast bamzz
ReplyPasword nya apa gan
ReplyThis comment has been removed by the author.
Replybisa buat mi4 lte rom global dev gak?
ReplyBisa, asal dibawah versi 7.12.28, kalo versi diatasnya blm bisa
ReplyPassword nya apa gan?
ReplyGa ada update terbaru buat global dev 8.x.x gan?
ReplyBlm ada
Replypass nya apa nggeh
Replypass nya apa nggeh
ReplyThis comment has been removed by the author.
ReplyBuat semua xiaomi atau hanya mi note 3 gan?
ReplyAll xiaomi device. Dibawah versi 7.12.28, diatas 7.9.14, versi global dev/china dev
ReplyDi build 8.2.1 si jason nya ngumpet dimana gan??
Replypassword file-nya apa ya gan ?
ReplyTIDAK DAPAT DITERAPKAN DI ROM MIUI GLOBAL DEV MULAI DARI VERSI 7.12.28 sd yg terbaru
ReplyPas apa gan
ReplyBisa gk bt redmi 3s sy yg sd ad rom global stable miui 9.2.2.0
ReplyPasswoard zipnya apa gan
ReplyKhusus Global Dev 7.11.12
ReplyThis comment has been removed by the author.
ReplyPaswoardny gan
Replymantap gan
Replysolder uap 2in1
SIlahkan komentar EmoticonEmoticon