티스토리 뷰
넥서스 S를 사용하고 있어서 멜론이 기본적으로 지원되는 다른 SKT폰의 경우는 알 수 없지만,
멜론의 Library - > 아티스트를 열면 MP3파일과 DCF파일의 가수들이 리스트되는데
MP3파일의 가수들이 먼저 리스트되고 아래에 DCF파일의 가수들이 리스트된다.
여기서 가수를 선택하면 가수의 앨범이 아래에 리스트되는데, DCF쪽 가수를 선택하면,
오류가 발생하여 프로그램이 죽어버린다.(자세한 오류내용은 로그캣 참조)
APKTool로 멜론앱을 푼 후, 텍스트 에디터로 smali\com\iloen\melon폴더에서
AlbumBrowserActivity$AlbumListAdapter.smali 파일을 연다.
검색으로 .line 1007 을 검색하면,
1 ....... 2 move/from16 v1, v23 3 4 if-ne v0, v1, :cond_7 5 6 .line 1007 7 8 move-object/from16 v0, p0 9 ........
이 부분이 나온다. 이 부분의 구조를 다시 써보면 이런 구조일 것이라 추측한다. (jad로 디컴파일하면 알 수 있다.)
1 if ( 이게 dcf파일이냐? ) goto cond_7 2 mp3파일이니 알아서 처리 3 goto 딴데로 4 : cond_7 5 dcf파일이니 알아서 처리 6 goto 딴데로
여기서 cond_7 내부의 getQuantityString메소드에서 오류가 발생한다.
그런데 이렇게 mp3와 dcf를 따로 처리하는 이유를 확인해보니 mp3는 'X곡', dcf는 'X곡 중 X곡' 으로 표시하기 위해 그런 것 같은데(res/values/plurals.xml참조), 사실 별 필요 없는 것이 파일이 몇 곡 있는지만 알려주면 되지 않은가.
따라서 위 코드에서 if-ne v0, v1, :cond_7 부분(cond_숫자는 바뀔 수 있음)만 #로 주석처리 해주고 재컴파일하면
문제없이 정상적으로 동작한다.
'컴퓨터 이야기 > Android' 카테고리의 다른 글
Notepad++용 Smali파일 Highlight 파일 (0) | 2011.09.24 |
---|---|
안드로이드의 미래? (1) | 2011.08.12 |
멜론 수정 내역 (0) | 2011.06.23 |
Eclair 2.1의 락스크린화면에서 벨<->무음을 벨<->진동으로 바꾸자.(44r) (0) | 2011.02.22 |
io 스케줄러를 deadline으로 변경 (0) | 2011.01.07 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- STOP_APP_SWITCH
- Leap Year
- 레터스 투 줄리엣
- 2월 29일
- 안드로이드
- 잠금화면
- apktool
- 요리·레시피
- 문학·책
- dex2jar
- 락스크린
- 아일랜드
- IT·컴퓨터
- 프로포즈 데이
- 하이픈
- Ubuntu7.10
- 일상·생각
- Gutsy
- setfsb
- 5 sec rule
- GutsyGibbon
- NEXUS S
- 더블린
- U123
- 전화번호
- Android
- ubuntu
- 5초 룰
- lockscreen
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함