[Tip_Smali] 잠금화면 추가시, 리붓시, "효과 없음" 으로 돌아오는 부분 픽스 하기.

*TIP!/Smali



안녕하세요. 이제 첫글로 팁 게시물을 써보고자 합니다.^^ ㅎㅎ 두근~ 두근~

요번 팁은

.

.

.

잠금화면 추가시, 리붓시, "효과 없음" 으로 돌아오는 부분 픽스 하기.


입니다.....

요번에 세이님께서 S5 포팅룸을 포팅 하셨는데, 물론 모든 분은 아니겠지만, 몇몇분들은 잠금화면을 활성화에서 사용하시는 분이 있드라구요.

그냥 활성화 후, 설정하시게 되시면, 제부팅후 효과부분이 "효과없음" 으로 변경 될 것입니다. 그러하여,


이 부분이 에러 있다고 하시는 분들은 꼭 이 강좌을 참고해주시기 바랍니다.


이 강좌을 시작 하기전에,

★꼭!~ 루팅 및 디컴을 다를수 있으시는 분 그리고

강좌 시도중에 문제가 있을시, 절대로 "JHOLLEH" 에서 책임을 지지 않으며, 시작하기전에 백업! 이 필요로 합니다.

"이 강좌는 XDA 회원님께서 가르쳐주신 바탕으로, 허락에 의해서 작성합니다.";

[준비단계]

- Keyguard.apk (기기는 해외 포팅 펌 S5 로 사용하였습니다.) 제 기종이 해외기종이라... 근데, 그 메소드 한 부분만 수정해주면 되기때문에, 그렇게 복잡하진 않을것 입니다.^^

- 디컴할 프로그램 (Apktool) 자바가 필요로 합니다.

- Notepad+ 및 문서 비교할 프로그램.


[시작하기]

일단, "Apktool" 로 Keyguard.apk 을 디컴 해줍니다.

디컴후에, /Keyguard\smali\com\android\keyguard 경로안에있는, KeyguardViewMediator.smali 을 열어주세요.

그럼 Ctrl+F 을 이용해 ".method private checkUnlockEffectVarification()V" 메소드을 찾아주세요.

ps. 찾을 실때는 "" 없애야 합니다.^^


찾으시면, 아래 처럼 수정 해주세요.

- 수정전


 .method private checkUnlockEffectVarification()V

    .locals 5


    .prologue

    const/4 v2, 0x0


    const/4 v1, 0x1


    .line 1644

    iget-object v0, p0, Lcom/android/keyguard/KeyguardViewMediator;->mContext:Landroid/content/Context;


    invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;


    move-result-object v0


   const-string v3, "lockscreen_ripple_effect"


  invoke-static {v0, v3, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I


    move-result v3


    .line 1648

    invoke-static {v3}, Lcom/android/keyguard/sec/KeyguardEffectViewMain;->isLockScreenEffect(I)Z


    move-result v0


    if-nez v0, :cond_3


    move v0, v1


    .line 1657

    :goto_0

    const/4 v4, 0x5


    if-ne v3, v4, :cond_0


    move v0, v1


    .line 1672

    :cond_0

    const/4 v4, 0x2


    if-ne v3, v4, :cond_1


    move v0, v1


    .line 1678

    :cond_1

    if-ne v0, v1, :cond_2


    .line 1679

    iget-object v0, p0, Lcom/android/keyguard/KeyguardViewMediator;->mContext:Landroid/content/Context;


    invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;


    move-result-object v0


    const-string v1, "lockscreen_ripple_effect"


    invoke-static {v0,v1,v2},Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z


    .line 1681

    :cond_2

    return-void


    :cond_3

    move v0, v2


    goto :goto_0

.end method

- 수정후


 .method private checkUnlockEffectVarification()V

    .locals 5


    .prologue

    const/4 v2, 0x0


    const/4 v1, 0x1


    .line 1644

    iget-object v0, p0, Lcom/android/keyguard/KeyguardViewMediator;->mContext:Landroid/content/Context;


    invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;


    move-result-object v0


    const-string v3, "lockscreen_ripple_effect"


  invoke-static {v0, v3, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I


    move-result v3


    .line 1648

    invoke-static {v3}, Lcom/android/keyguard/sec/KeyguardEffectViewMain;->isLockScreenEffect(I)Z


    move-result v0


    if-nez v0, :cond_4


    move v0, v1


    .line 1657

    :goto_0

    const/4 v4, 0x0


    if-ne v3, v4, :cond_0


    move v0, v1


    .line 1672

    :cond_0

    const/4 v4, 0x0


    if-ne v3, v4, :cond_1


    move v0, v1


    .line 1678

    :cond_1

const/4 v4, 0x0

    if-ne v3, v4, :cond_2


move v0, v1

.line 1679

    :cond_2

    if-ne v0, v1, :cond_3

    .line 1680

    iget-object v0, p0, Lcom/android/keyguard/KeyguardViewMediator;->mContext:Landroid/content/Context;


    invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;


    move-result-object v0


    const-string v1, "lockscreen_ripple_effect"


 invoke-static {v0, v1, v2}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z


    .line 1681

    :cond_3

    return-void


    :cond_4

    move v0, v2


    goto :goto_0

.end method


이렇게 변경 해주시면, 수정 완료가 됩니다.^^ 그리고 .line 1679 부분에 라인이 중복이 되서 하나 더 추가해주었습니다. 혹, 라인이 부족 하시면 아래 .line 1681 이랑 중복되지 않게 추가 해주시면 됩니다.^^

마지막으로 컴파일 해주시고, 퍼미션 권한 주신후, 재부팅 해주시면 끝!~


[끝!~]

제가 복잡 / 어렵게 설명하지 하지 않았는지, 걱정이 되군요~~

이렇게, 서툰 강좌에도 관심을 가져주셔서 진심으로 감사드립니다.^^

Ps. 오타가 있을수도 있어요... ㅠㅠ 이해 부탁드려욧~~


이상으로 첫번째인 글이자, 팁 강좌을 마치겠습니다.^^