내가제로쿨님이 그러시길....펌업후에
저걸 적용하면 볼륨키를 누르면 종료트윅이 떠버린다네요..
왜 그럴까하고 다시 뜯어봤습니다.
기존 노트4 구문
invoke-virtual {v0, v13, v6, v5}, Lcom/android/internal/policy/impl/sec/SamsungPhoneWindowManager;->handleSamsungVolumeControl(IZZ)V
펍업후 노트4 구문
invoke-virtual {v0, v12, v6, v5}, Lcom/android/internal/policy/impl/sec/SamsungPhoneWindowManager;->handleSamsungVolumeControl(IZZ)V
인수값이 v13에서 v12로 오히려 바뀌었습니다.
저 12는 갤파 노트2 4.4.2 시절에 가지던 값이었는데 ㅎㅎ;;;
따라서.... 노트4에 펌업후에 저 기능을 포팅하시려거든..가이드에서.. 4.4.4는 v13이라는말을 사뿐히 씹어드시면 됩니다.
자 다음은 종료트윅입니다.
수정방법은 기존과 아주아주 같아요~~
다만.. 수정할 파일이 두개가 있네요.
왜냐하면요...... 종료트윅에 가장 많이 쓰이는 스말리의 구문에 있습니다.
아래는 그중하나인 99의 구문입니다.
# getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
invoke-static {v2}, Lcom/android/internal/policy/impl/GlobalActions;->access$400(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;
GlobalActions에서 access$400(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context
라는 메서드한테 접근합니다.
근데 새로 펌업된 구문의 400 메서드는..?
.method static synthetic access$400()Z
.registers 1
.prologue
.line 162
sget-boolean v0, Lcom/android/internal/policy/impl/GlobalActions;->mlsShowingMiniDialog:Z
return v0
.end method
요러네요~ 아.... 메서드가 다르네요!!! 고수님들이라면 한번에 알아차리고 수정하셧을텐데...(하얀여우님이 루팅을 안하셔서 로그캣을 못 뽑아서 그럴수도있으니 넘어가죠 (?) )
새로 펌업되서 불러와야 할 메서드는 바로
.method static synthetic access$600(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;
.registers 2
.param p0, "x0" # Lcom/android/internal/policy/impl/GlobalActions;
.prologue
.line 162
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
return-object v0
.end method
요놈입니다. 400과 600으로 숫자가 다릅니다 @_@;;;;;
따라서 종료트윅을 위해 새로 추가하는 스말리의 $400 을 $600으로 바꾸시면 됩니다.