I am Suraj
again with New guide
How to port ICs lockscreen TO GB
Tested On micromax a57 a54 Both are qualcom so cant say about samsung and other Mediatech or mtk device
THis is full explained Guide dont bore
So let start
We have to Follow 5 step for gettings ics lockscreen
first step here start
download this zip firststep.zip
1.copy res folder to your framework-res folder
2. Open ids.xml under res/values foler and add these in last above
Code:
<item type="id" name="rl_multiWaveView">false</item>
<item type="id" name="digital_clock">false</item>
<item type="id" name="dateShow">false</item>
<item type="id" name="iv_drop">false</item>
<item type="id" name="ib_greenorange">false</item>
<item type="id" name="rl_click_after">false</item>
<item type="id" name="ib_photo">false</item>
<item type="id" name="ib_greenorange_gone">false</item>
<item type="id" name="ib_phone">false</item>
<item type="id" name="tv_phone_unread">false</item>
<item type="id" name="ib_sms">false</item>
<item type="id" name="tv_sms_unread">false</item>
<item type="id" name="ib_home">false</item>
<item type="id" name="tv_remind">false</item>
<item type="id" name="rl_multiWaveViewforsimulateics">false</item>
<item type="id" name="iv_wave">false</item>
<item type="id" name="iv_wave1">false</item>
<item type="id" name="iv_wave2">false</item>
<item type="id" name="iv_circle">false</item>
3.. compile the framework-res.apk
4.Now decompile your framework-res.apk
Now open your public.xml
Leave it alone Now first step complete
:fingers-crossed:
TIME TO DO SECOND SEC0ND STEP
HERE WE START
dOWNLAOD THIS zIP.(SECOND STEP.ZIP)
thats our smalli editing part
1.Now decompile your android.policy.jar ( I GIVEN TOOL INSIDE)
NOW copy all smalli to your decompiled android.policy .jar folder one by one
Now open all files related to com\android\internal\policy\impl mine files
Search " 0x10" Copy the whole id .
Open my provided public.xml
Search for that id in my public.xml
Copy the text of that id.
Like if my Public id is "0x101000e"
but in you pubilc.xml it start from "0x0101000e" means you have to add 0 before 1
in easy language(When changing ids in the smali, make sure you remove one "0" after the x. For example, if your public.xml id is "0x010002b", make it "0x10002b". This is actually very important,)
its a boring part naa but its too much neccesarry too soo better you Do it carefully slow slow dont do fast other it will create reason for bootloop
NOW OUR 2ND PART IS COMPLETE nOW TIME TO START 3 PART
SO HERE WE START
DOWNLOAD THIS ZIP (THIRD PART.ZIP)
thats our Main and difficult part
in your android.policy.jar decompiled folder
search for LockPatternKeyguardView.smalli
open it ..
then search for
then below it add
then search for
then after
add this
then search for.prologue
.line 660
const-string v3, "true"
const-string v2, "ro.origin.lockscreen"
.line 711
const-string v0, "ro.origin.lockscreen"
const-string v0, "true"
invoke-static {v2, v3}, Landroid/os/SystemProperties;->get(Ljava/lang/String;Ljava/lang/StringLjava/lang/String;
move-result-object v0
const-string v1, "false"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/ObjectZ
move-result v0
if-eqz v0, :cond_24
.line 712
new-instance v0, Lcom/android/internal/policy/impl/GreenOrange_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/GreenOrange_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/KeyguardScreenCallbackV
.line 726
:goto_23
return-object v0
.line 718
:cond_24
const-string v0, "ro.origin.lockscreen"
const-string v0, "true"
invoke-static {v2, v3}, Landroid/os/SystemProperties;->get(Ljava/lang/String;Ljava/lang/StringLjava/lang/String;
move-result-object v0
const-string v1, "simulateICS"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/ObjectZ
move-result v0
if-eqz v0, :cond_44
.line 719
new-instance v0, Lcom/android/internal/policy/impl/SimulateICS_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/SimulateICS_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/KeyguardScreenCallbackV
goto :goto_23
:cond_44
then add this code under.method static synthetic access$100(Lcom/android/internal/policy/impl/LockPatternKeyguardViewZ
.registers 2
.parameter "x0"
.prologue
.line 65
iget-boolean v0, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mIsVerifyUnlockOnly:Z
return v0
.end method
Now our third step is completed.method static synthetic access$1000(Lcom/android/internal/policy/impl/LockPatternKeyguardViewLandroid/content/Intent;
.registers 2
.parameter "x0"
.prologue
.line 65
iget-object v0, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mStartForIntent:Landroid/content/Intent;
return-object v0
.end method
.method static synthetic access$1002(Lcom/android/internal/policy/impl/LockPatternKeyguardView;Landroid/content/IntentLandroid/content/Intent;
.registers 2
.parameter "x0"
.parameter "x1"
.prologue
.line 65
iput-object p1, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mStartForIntent:Landroid/content/Intent;
return-object p1
.end method
---------------------------------------------------------------------------------
Now our forth step here start
1. go to com\android\internal\policy\impl ( your decompiled android.policy.jar)
search for LockPatternKeyguardView$1.smalli
Now open it
then search for
then you will see this method
.method public goToUnlockScreen()V
.registers 3
to
#calls: Lcom/android/internal/policy/impl/LockPatternKeyguardView;->updateScreen(Lcom/android/internal/policy/impl/LockPatternKeyguardView$ModeV
invoke-static {v0, v1}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->access$200(Lcom/android/internal/policy/impl/LockPatternKeyguardView;Lcom/android/internal/policy/impl/LockPatternKeyguardView$ModeV
goto :goto_8
.end method
so delete this full method
and add this
.method public goToUnlockScreen()V
.registers 6
.prologue
const/4 v2, 0x1
const-string v4, "true"
const-string v3, "ro.origin.lockscreen"
.line 248
invoke-virtual {p0}, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->isSecure()Z
move-result v0
if-nez v0, :cond_3d
.line 249
const-string v0, "ro.origin.lockscreen"
const-string v0, "true"
invoke-static {v3, v4}, Landroid/os/SystemProperties;->get(Ljava/lang/String;Ljava/lang/StringLjava/lang/String;
move-result-object v0
const-string v1, "false"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/ObjectZ
move-result v0
if-eqz v0, :cond_1f
.line 250
invoke-virtual {p0, v2}, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->keyguardDone(Z)V
.line 259
:goto_1e
return-void
.line 251
:cond_1f
const-string v0, "ro.origin.lockscreen"
const-string v0, "true"
invoke-static {v3, v4}, Landroid/os/SystemProperties;->get(Ljava/lang/String;Ljava/lang/StringLjava/lang/String;
move-result-object v0
const-string v1, "simulateICS"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/ObjectZ
move-result v0
if-eqz v0, :cond_33
.line 252
invoke-virtual {p0, v2}, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->keyguardDone(Z)V
goto :goto_1e
.line 254
:cond_33
iget-object v0, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->this$0:Lcom/android/internal/policy/impl/LockPatternKeyguardView;
invoke-virtual {v0}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->getCallback()Lcom/android/internal/policy/impl/KeyguardViewCallback;
move-result-object v0
invoke-interface {v0, v2}, Lcom/android/internal/policy/impl/KeyguardViewCallback;->keyguardDone(Z)V
goto :goto_1e
.line 257
:cond_3d
iget-object v0, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->this$0:Lcom/android/internal/policy/impl/LockPatternKeyguardView;
sget-object v1, Lcom/android/internal/policy/impl/LockPatternKeyguardView$Mode;->UnlockScreen:Lcom/android/internal/policy/impl/LockPatternKeyguardView$Mode;
#calls: Lcom/android/internal/policy/impl/LockPatternKeyguardView;->updateScreen(Lcom/android/internal/policy/impl/LockPatternKeyguardView$ModeV
invoke-static {v0, v1}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->access$200(Lcom/android/internal/policy/impl/LockPatternKeyguardView;Lcom/android/internal/policy/impl/LockPatternKeyguardView$ModeV
goto :goto_1e
.end method
Now search for
then above it add this
========================================================================================================.method public isGotoUnlockscreen(Landroid/content/IntentV
.registers 3
.parameter "intent"
.prologue
.line 398
iget-object v0, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->this$0:Lcom/android/internal/policy/impl/LockPatternKeyguardView;
#setter for: Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mStartForIntent:Landroid/content/Intent;
invoke-static {v0, p1}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->access$1002(Lcom/android/internal/policy/impl/LockPatternKeyguardView;Landroid/content/IntentLandroid/content/Intent;
.line 399
return-void
.end method
Now search for
replace full method with
--------------------------------------------------------------------------------------------------------------------------------------.method public keyguardDone(Z)V
.registers 6
.parameter "authenticated"
.prologue
const-string v3, "true"
const-string v2, "ro.origin.lockscreen"
.line 334
const-string v0, "ro.origin.lockscreen"
const-string v0, "true"
invoke-static {v2, v3}, Landroid/os/SystemProperties;->get(Ljava/lang/String;Ljava/lang/StringLjava/lang/String;
move-result-object v0
const-string v1, "false"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/ObjectZ
move-result v0
if-eqz v0, :cond_3c
.line 335
iget-object v0, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->this$0:Lcom/android/internal/policy/impl/LockPatternKeyguardView;
invoke-virtual {v0}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->getCallback()Lcom/android/internal/policy/impl/KeyguardViewCallback;
move-result-object v0
invoke-interface {v0, p1}, Lcom/android/internal/policy/impl/KeyguardViewCallback;->keyguardDone(Z)V
.line 336
iget-object v0, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->this$0:Lcom/android/internal/policy/impl/LockPatternKeyguardView;
#getter for: Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mStartForIntent:Landroid/content/Intent;
invoke-static {v0}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->access$1000(Lcom/android/internal/policy/impl/LockPatternKeyguardViewLandroid/content/Intent;
move-result-object v0
if-eqz v0, :cond_3b
.line 337
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
const-string v1, "mStartForIntent"
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/StringV
.line 338
iget-object v0, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->this$0:Lcom/android/internal/policy/impl/LockPatternKeyguardView;
invoke-virtual {v0}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->getContext()Landroid/content/Context;
move-result-object v0
iget-object v1, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->this$0:Lcom/android/internal/policy/impl/LockPatternKeyguardView;
#getter for: Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mStartForIntent:Landroid/content/Intent;
invoke-static {v1}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->access$1000(Lcom/android/internal/policy/impl/LockPatternKeyguardViewLandroid/content/Intent;
move-result-object v1
invoke-virtual {v0, v1}, Landroid/content/Context;->startActivity(Landroid/content/IntentV
.line 349
:cond_3b
:goto_3b
return-void
.line 340
:cond_3c
const-string v0, "ro.origin.lockscreen"
const-string v0, "true"
invoke-static {v2, v3}, Landroid/os/SystemProperties;->get(Ljava/lang/String;Ljava/lang/StringLjava/lang/String;
move-result-object v0
const-string v1, "simulateICS"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/ObjectZ
move-result v0
if-eqz v0, :cond_6d
.line 341
iget-object v0, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->this$0:Lcom/android/internal/policy/impl/LockPatternKeyguardView;
invoke-virtual {v0}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->getCallback()Lcom/android/internal/policy/impl/KeyguardViewCallback;
move-result-object v0
invoke-interface {v0, p1}, Lcom/android/internal/policy/impl/KeyguardViewCallback;->keyguardDone(Z)V
.line 342
iget-object v0, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->this$0:Lcom/android/internal/policy/impl/LockPatternKeyguardView;
#getter for: Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mStartForIntent:Landroid/content/Intent;
invoke-static {v0}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->access$1000(Lcom/android/internal/policy/impl/LockPatternKeyguardViewLandroid/content/Intent;
move-result-object v0
if-eqz v0, :cond_3b
.line 343
iget-object v0, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->this$0:Lcom/android/internal/policy/impl/LockPatternKeyguardView;
invoke-virtual {v0}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->getContext()Landroid/content/Context;
move-result-object v0
iget-object v1, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->this$0:Lcom/android/internal/policy/impl/LockPatternKeyguardView;
#getter for: Lcom/android/internal/policy/impl/LockPatternKeyguardView;->mStartForIntent:Landroid/content/Intent;
invoke-static {v1}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->access$1000(Lcom/android/internal/policy/impl/LockPatternKeyguardViewLandroid/content/Intent;
move-result-object v1
invoke-virtual {v0, v1}, Landroid/content/Context;->startActivity(Landroid/content/IntentV
goto :goto_3b
.line 346
:cond_6d
iget-object v0, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView$1;->this$0:Lcom/android/internal/policy/impl/LockPatternKeyguardView;
invoke-virtual {v0}, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->getCallback()Lcom/android/internal/policy/impl/KeyguardViewCallback;
move-result-object v0
invoke-interface {v0, p1}, Lcom/android/internal/policy/impl/KeyguardViewCallback;->keyguardDone(Z)V
goto :goto_3b
.end method
Now save this Smalli
Now search for this
KeyguardScreenCallback.smalli
then search for
then add this below this code
Here our fourth step is completed.method public abstract isGotoUnlockscreen(Landroid/content/IntentV
.end method
Now here we start our 5th step
downlaod this Zip (5th step)
Now open zip copy this fonts to your system/fonts (necceassry step other wise you will face bootloop)
Now open you build.prop
then search for
then above it add
I provided this flashable zip you can use it for your Flashing lockscreen (FLASHABLE.ZIP)#add wanglu 20120811 start
#do not greenorging lockscreen
ro.origin.lockscreen=simulateICS
#add wanglu 20120811 end
Note:
1 .if you are using my work so plz give me credit . because i spend many night and days for getting success.
and
If you are porting this guide to To another inform me first . then i will create a seprate guide for your device.
by giving you credit and tester
Last edited: