How to patch Amazon Kindle App for Sony PRS-T1
Kindle App Key Patch 하는 법
apk 분해 툴로 분해하였을 시 나오는 smali 파일 중 아래 파일을 수정
1. 경로 : classes\com\amazon\kcp\reader\ReaderNavigator.smali
2. 수정되는 Method
- .method public onKeyEvent(ILandroid/view/KeyEvent;)Z
3. 수정되는 내용
- sparse-switch p1, :sswitch_data_dc
- 위 문장을 찾아서 p1의 값이 0이면 getScanCode()를 하도록 한다.
- 위 문장을 아래 내용처럼 변경한다
- 검정색은 원래 코드, 빨간색은 추가 코드(#으로 시작되는 줄은 주석임)
# start key patch
if-nez p1, :cond_1000
invoke-virtual {p2}, Landroid/view/KeyEvent;->getScanCode()I
move-result v0
move p1, v0
:cond_1000
# end key patch
.line 50
const/4 v0, 0x1
.line 51
sparse-switch p1, :sswitch_data_dc
- 또한 :sswitch_data_dc 부분을 따라가보면 아래와 같이 서술되어 있다.
:sswitch_data_dc
.sparse-switch
0x13 -> :sswitch_2a
0x14 -> :sswitch_1c
0x15 -> :sswitch_38
0x16 -> :sswitch_47
0x17 -> :sswitch_b0
0x18 -> :sswitch_6d
0x19 -> :sswitch_56
0x3e -> :sswitch_84
0x42 -> :sswitch_b0
0x43 -> :sswitch_c1
.end sparse-switch
위 부분에서 0x18과 0x19를 각각 0x69, 0x6a로 변경하고 그 순서를 정렬하도록 한다.(아래 참조)
:sswitch_data_dc
.sparse-switch
0x13 -> :sswitch_2a
0x14 -> :sswitch_1c
0x15 -> :sswitch_38
0x16 -> :sswitch_47
0x17 -> :sswitch_b0
0x3e -> :sswitch_84
0x42 -> :sswitch_b0
0x43 -> :sswitch_c1
0x69 -> :sswitch_6d
0x6a -> :sswitch_56
.end sparse-switch