Hệ thống siêu thị bán lẻ điện thoại di động, smartphone Nokia, Samsung, iPhone, HTC, LG... chính hãng, giá tốt, có bán trả góp, được yêu thích nhất Việt Nam.
Thứ Tư, 5 tháng 12, 2012
[TUT] Thêm "6" Lockscreen và Lockscreen Gestures
File cần:
1. android.policy.jar
2. Lidroid-res.apk
3. Lidroid-Parts.apk
Download
Yêu cầu:
1. File systemUI.apk deodexed + add 14 statusbar toggles
Cách thực hiện:
1. Decompile android.policy.jar (google)
2. Giải nén file android.policy.zip vừa tải về, copy thư mục smali vào thư mục andoid.policy.jar vừa decompile
3. Mở file "android.policy.jar.out\smali\com\android\internal\ policy\impl\KeyguardUpdateMonitor.smali" và làm như sau:
3.1. Tìm code
"Lcom/android/internal/policy/impl/KeyguardUpdateMonitor$AirplaneModeChangeCallback;"
(nằm dưới dòng "#annonations" và thêm đoạn code sau bên dưới:
Lcom/android/internal/policy/impl/KeyguardUpdateMonitor$MediaStateCallback;,
3.2. Tìm code
".field private mWallpaperModeValue:I",
thêm code sau vào bên dưới:
.field private timezone:Ljava/lang/String;
3.3. Tìm
".method private handleSimStateChange(Lcom/android/internal/policy/impl/KeyguardUpdateMonitor$SimArgs;)V"
thêm vào bên trên:
.method private handleMediaUpdate(IILandroid/net/Uri;)V
.locals 5
.parameter "isPlaying"
.parameter "isStop"
.parameter "mediaUri"
.prologue
const/4 v4, 0x0
const/4 v3, 0x1
.line 467
if-ne p1, v3, :cond_0
move v0, v3
.line 468
.local v0, bIsPlaying:Z
:goto_0
if-ne p2, v3, :cond_1
move v1, v3
.line 470
.local v1, bIsStop:Z
:goto_1
const/4 v2, 0x0
.local v2, i:I
:goto_2
iget-object v3, p0, Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;->mMediaCallbacks:Ljava/util/ArrayList;
invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
move-result v3
if-ge v2, v3, :cond_2
.line 471
iget-object v3, p0, Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;->mMediaCallbacks:Ljava/util/ArrayList;
invoke-virtual {v3, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/android/internal/policy/impl/KeyguardUpdateMonitor$MediaStateCallback;
invoke-interface {v3, v0, v1, p3}, Lcom/android/internal/policy/impl/KeyguardUpdateMonitor$MediaStateCallback;->onMediaUpdated(ZZLandroid/net/Uri;)V
.line 470
add-int/lit8 v2, v2, 0x1
goto :goto_2
.end local v0 #bIsPlaying:Z
.end local v1 #bIsStop:Z
.end local v2 #i:I
:cond_0
move v0, v4
.line 467
goto :goto_0
.restart local v0 #bIsPlaying:Z
:cond_1
move v1, v4
.line 468
goto :goto_1
.line 473
.restart local v1 #bIsStop:Z
.restart local v2 #i:I
:cond_2
return-void
.end method
3.4. Tìm:
".method public getFailedAttempts()I"
thêm vào bên trên:
.method public getChangedTimeZone()Ljava/lang/String;
.locals 1
.prologue
.line 1131
iget-object v0, p0, Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;->timezone:Ljava/lang/String;
return-object v0
.end method
3.5. Tìm:
".method public isDevicePluggedIn()Z"
thêm vào bên trên:
.method public isDeviceCharged()Z
.locals 2
.prologue
.line 866
iget v0, p0, Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;->mBatteryLevel:I
const/16 v1, 0x64
if-lt v0, v1, :cond_0
const/4 v0, 0x1
:goto_0
return v0
:cond_0
const/4 v0, 0x0
goto :goto_0
.end method
3.6 Lưu và đóng lại.
4. Mở file "\smali\com\android\internal\policy\impl\LockPatternKeyguardView":
4.1 Tìm:
".method createLockScreen()Landroid/view/View;"
Kéo xuống dưới tìm dòng:
.prologue
.line 868
Thêm đoạn này vào ngay dưới:
const/4 v2, 0x0
const/4 v0, 0x0
iget-object v3, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mContext:Landroid/content/Context;
invoke-virtual {v3}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
const-string v4, "lockscreen_style_pref"
invoke-static {v3, v4, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v0
const/4 v2, 0x1
if-eq v2, v0, :cond_3
const/4 v2, 0x2
if-eq v2, v0, :cond_3
const/4 v2, 0x3
if-eq v2, v0, :cond_3
const/4 v2, 0x4
if-eq v2, v0, :cond_3
const/4 v2, 0x5
if-eq v2, v0, :cond_3
if-eqz v0, :cond_0
.line 869
const/4 v2, 0x0
const/4 v0, 0x0
iget-object v3, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mContext:Landroid/content/Context;
invoke-virtual {v3}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
const-string v4, "lockscreen_style_pref"
invoke-static {v3, v4, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v0
const/4 v2, 0x6
if-eq v2, v0, :cond_2
const/4 v2, 0x7
if-eq v2, v0, :cond_1
:cond_0
new-instance v0, Lcom/android/internal/policy/impl/LockScreen;
iget-object v1, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mContext:Landroid/content/Context;
iget-object v2, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mConfiguration:Landroid/content/res/Configuration;
iget-object v3, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mLockPatternUtils:Lcom/android/internal/widget/LockPatternUtils;
iget-object v4, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mUpdateMonitor:Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;
iget-object v5, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mKeyguardScreenCallback:Lcom/android/internal/policy/impl/KeyguardScreenCallback;
invoke-direct/range {v0 .. v5}, Lcom/android/internal/policy/impl/LockScreen;-><init>(Landroid/content/Context;Landroid/content/res/Configuration;Lcom/android/internal/widget/LockPatternUtils;Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;Lcom/android/internal/policy/impl/KeyguardScreenCallback;)V
goto :goto_0
:cond_1
new-instance v0, Lcom/android/internal/policy/impl/LockScreen;
iget-object v1, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mContext:Landroid/content/Context;
iget-object v2, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mConfiguration:Landroid/content/res/Configuration;
iget-object v3, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mLockPatternUtils:Lcom/android/internal/widget/LockPatternUtils;
iget-object v4, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mUpdateMonitor:Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;
iget-object v5, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mKeyguardScreenCallback:Lcom/android/internal/policy/impl/KeyguardScreenCallback;
invoke-direct/range {v0 .. v5}, Lcom/android/internal/policy/impl/LockScreen;-><init>(Landroid/content/Context;Landroid/content/res/Configuration;Lcom/android/internal/widget/LockPatternUtils;Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;Lcom/android/internal/policy/impl/KeyguardScreenCallback;)V
goto :goto_0
:cond_2
4.2. Sau ":cond_2: là khóa mặc định, đừng đụng vào nó
4.3. Cuối đoạn code của khóa mặc định, nếu nó giống thế này (tương tự cũng đc):
"invoke-direct/range {v0 .. v5}, Lcom/android/internal/policy/impl/CircleLockScreen;-><init>(Landroid/content/Context;Landroid/content/res/Configuration;Lcom/android/internal/widget/LockPatternUtils;Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;Lcom/android/internal/policy/impl/KeyguardScreenCallback;)V"
Thì thêm dòng này vào ngay dưới:
:goto_0
4.4. Tìm những dòng tiếp theo, nếu có đoạn code này:
"return-object v0"
thì ta thêm vào bên dưới:
:cond_3
new-instance v0, Lcom/android/internal/policy/impl/CyanogenLockScreen;
iget-object v1, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mContext:Landroid/content/Context;
iget-object v2, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mConfiguration:Landroid/content/res/Configuration;
iget-object v3, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mLockPatternUtils:Lcom/android/internal/widget/LockPatternUtils;
iget-object v4, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mUpdateMonitor:Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;
iget-object v5, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mKeyguardScreenCallback:Lcom/android/internal/policy/impl/KeyguardScreenCallback;
invoke-direct/range {v0 .. v5}, Lcom/android/internal/policy/impl/CyanogenLockScreen;-><init>(Landroid/content/Context;Landroid/content/res/Configuration;Lcom/android/internal/widget/LockPatternUtils;Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;Lcom/android/internal/policy/impl/KeyguardScreenCallback;)V
goto :goto_0
4.5. Lưu và đóng lại.
5. Recompile và đặt vào "/system/framework" cùng file Lidroid-res.apk
5.1. Đặt Lidroid-Parts.apk vào "/system/app"
6. Decompile SystemUI.apk
6.1. Xóa 2 thư mục "/smali/com/lidroid" và "/smali/lidroid"
6.2. Giải nén file "status_bar_fix.zip", copy thư mục smali vào thư mục SystemUI.apk vừa compile
6.3 Recompile + Sign apk và đặt vào "/system/app"
Credits:
Lidroid - XDA
pratyush.creed - XDA
Đăng ký:
Đăng Nhận xét (Atom)
Bài đăng phổ biến
-
Sau nhiều tuần chơi game này mình thấy ngày càng hay tính giải trí cũng như xã tress cao nên hon nay mình viết bài này để share các AE trong...
-
1.Save file (qua level 12 , unlock blacksuit) Down file này về giải nén ra. Ta sẽ có được 4 file .dat, copy 4 file đó vào Sdcard/gameloft/...
-
These are instructions on how to use folders on your iOS 4 iPhone or iPod touch. Step One To create a folder press and hold an icon on your ...
-
Trong HM BTN, bạn sẽ vào vai Jack. Lúc nhỏ, bạn được bố mẹ cho về chơi ở trang trại của ông nội.Ở đây,ban có rất nhiều việc thú vị để làm mỗ...
-
MAME4droid More Info: P hần mềm MAME có tên đầy đủ là Multiple Arcade Machine Emulator, tạm dịch là phần mềm giả lập game của nhiều hệ máy...
-
Mình đã test thử thấy chất lượng quay video rất ok nên share cho ae cùng dùng...app quay clip thì hiện theo cài đặt của tác giả thì đã sử dụ...
-
Với việc sử dụng vòng cao su trên các phím bấm vật lý, iPhone 6 hứa hẹn cho khả năng chống nước tốt hơn các thiết bị tiền nhiệm dù Apple khô...
-
Nội dung trong phần này hơi nghiêng Call of Duty 4, những cảnh bắn súng, làm nhiện vụ, tai nạn. về đồ họa, âm thanh, cách chơi đã làm nên Ca...
-
Fruit Ninja hack 1.7.6 phiên bản critical + black banana(+ time ...) Video + link trên youtube lun nha @@ http://www.youtube.com/watch?v=dJ7...
-
Adobe Photoshop là một phần mềm tốt nhất giúp bạn chỉnh sửa hình ảnh trở nên tuyệt vời hơn, sinh động hơn...Làm cho bức ảnh chúng ta đẹp. H...
Không có nhận xét nào:
Đăng nhận xét