원본 출처(네이버::아트릭스 라이프 - 테그라 라이프 카페)는 폭파되어 사라져서 없어졌다.

그래도 내가 만든 것이 아니고 퍼온 지식이라는 의미에서, 혹시 모르니 링크를 남겨둔다.


>> 출처: http://cafe.naver.com/atrix4g/46378


아래 작업을 하기 위한 smali, baksmali 등에 대한 내용은 다른 데서 참조하면 되고

여기선 핵심이 되는 중요 내용만 기록으로 남긴다. 이것 역시 내년쯤 되어 이런 버그(?)들이 사라지고 나면 의미가 없어질 기록이겠지만.



...




framework.jar 파일을 baksmali로 풀면 나오는 파일들 중에서

com/android/internal/telephony/gsm 폴더까지 들어간 다음

SmsMessage.smali 파일을 찾아

울트라 에디터나 노트패드++ 등으로 열어서 Ctrl+F를 이용하여 "gsm7bit" 라는 단어로 검색해 아래 스샷의 위치까지 찾아 들어간다.




CM9, CM10.1 등 버전마다 조금씩 다르긴 하지만 대충 2000~2200 라인 사이에 있다.

저 단어가 중요한 것은 아니고, 검색하기 편한 글자라... 사실 저 위치 앞쪽에 수정할 곳이 있다.


정확하게는

const/4 v5, 0x0


iput-object v5, p0, Lcom/android/internal/telephony/gsm/SmsMessage;->messageBody:Ljava/lang/String;

이 두 줄 사이,


위 그림에서는

라인 1998의 빈 줄 부분에 다음 코드를 추가한다.

invoke-virtual {p1, v1}, Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getUserDataKSC5601(I)Ljava/lang/String;

move-result-object v5

이렇게 두줄을 추가하면 된다.



위 그림처럼.


대충 내용을 보자면, KS_C_5601 문자코드를 사용하는 것으로 짐작(?)되는 KT 문자를 정상적으로 파싱하기 위한 처리로 보인다.


끝.




Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]