fairworld's life

How to patch Amazon Kindle App for Sony PRS-T1 본문

Sony PRS-T1

How to patch Amazon Kindle App for Sony PRS-T1

fairworld 2012. 6. 26. 14:53

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