踩叶轻飞吧 关注:4贴子:145
  • 1回复贴,共1

【踩叶轻飞】安卓4.0添加音量键唤醒功能教程

只看楼主收藏回复

①修改system\usr\keylayout\Generic.kl
key 114 VOLUME_DOWN
key 115 VOLUME_UP
为:
key 114 VOLUME_DOWN WAKE_DROPPED
key 115 VOLUME_UP WAKE_DROPPED
②解压system\framework\android.policy.jar得到classes.dex,反编译得到smali
修改system\framework\android.policy\Smali_classes\com\android\internal\policy\impl\keyguardviewmediator.smali:
原Java代码:
private boolean isWakeKeyWhenKeyguardShowing(int paramInt, boolean paramBoolean)
{
if (PhoneWindowManager.mCustUsed)
{
for (int i = 0; i < PhoneWindowManager.mUnableWakeKey.length; i++)
if (paramInt == PhoneWindowManager.mUnableWakeKey[i])
{
paramBoolean = false;
return paramBoolean;
}
return true;
}
switch (paramInt)
{
case 24:删除此行
case 25:删除此行
case 164:
default:
return true;
case 27:
case 79:
case 85:
case 86:
case 87:
case 88:
case 89:
case 90:
case 91:
case 126:
case 127:
case 130:
}
return false;
}
对应smali修改:
.method private isWakeKeyWhenKeyguardShowing(IZ)Z
.registers 7
.param p1, "keyCode" # I
.param p2, "isDocked" # Z
.prologue
const/4 v2, 0x1
const/4 v1, 0x0
.line 965
sget-boolean v3, Lcom/android/internal/policy/impl/PhoneWindowManager;->mCustUsed:Z
if-eqz v3, :cond_19
.line 967
const/4 v0, 0x0
.local v0, "i":I
:goto_7
sget-object v3, Lcom/android/internal/policy/impl/PhoneWindowManager;->mUnableWakeKey:[I
array-length v3, v3
if-ge v0, v3, :cond_17
.line 968
sget-object v3, Lcom/android/internal/policy/impl/PhoneWindowManager;->mUnableWakeKey:[I
aget v3, v3, v0
if-ne p1, v3, :cond_14
move p2, v1
.line 996
.end local v0 # "i":I
.end local p2 # "isDocked":Z
:goto_13
:sswitch_13
return p2
.line 967
.restart local v0 # "i":I
.restart local p2 # "isDocked":Z
:cond_14
add-int/lit8 v0, v0, 0x1
goto :goto_7
:cond_17
move p2, v2
.line 972
goto :goto_13
.line 974
.end local v0 # "i":I
:cond_19
sparse-switch p1, :sswitch_data_20
move p2, v2
.line 996
goto :goto_13
:sswitch_1e
move p2, v1
.line 994
goto :goto_13
.line 974
:sswitch_data_20
.sparse-switch
0x18 -> :sswitch_13删除
0x19 -> :sswitch_13删除
0x1b -> :sswitch_1e
0x4f -> :sswitch_1e
0x55 -> :sswitch_1e
0x56 -> :sswitch_1e
0x57 -> :sswitch_1e
0x58 -> :sswitch_1e
0x59 -> :sswitch_1e
0x5a -> :sswitch_1e
0x5b -> :sswitch_1e
0x7e -> :sswitch_1e
0x7f -> :sswitch_1e
0x82 -> :sswitch_1e
0xa4 -> :sswitch_13
.end sparse-switch
.end method


1楼2013-12-17 14:18回复
    4


    来自手机贴吧3楼2014-02-02 19:13
    回复