에테리스
13.05.10
조회 수 7122
추천 수 20
댓글 16
이 포스팅은 에테리스 블로그 (http://eteris.tistory.com/202)에서 복사되어졌습니다.

정상적인 크기의 이미지는 위 링크에서 보실 수 있습니다.







현재 공개된 갤럭시S4 국내용의 경우 systemUI.apk가 디컴파일은 되나 컴파일이 되지 않아 많은 테마를 제작하시는 분들이 애를 먹고 계신데요.


오늘 오전에 문제를 해결해, 이 점에 대해 포스팅해 봅니다.


참고로 이 포스팅은 초보자의 apk manager 사용법을 위한 포스팅은 아니기에, 기본적인 apk manager의 사용법은 모두 배제하고


오직 갤럭시S4의 systemUI.apk의 디컴파일 <-> 컴파일을 해결하는 부분에만 집중하였습니다.



먼저 apk manager와 apktool을 최신버전으로 받는게 좋을 것 같습니다.


현재 xda 갤럭시S4 (AT&T) 쓰레드에 apk manager가 있습니다.


출처 (XDA Developers, http://forum.xda-developers.com/showthread.php?p=40909902)


여기서 툴을 받으시면 되는데... 저기에 APK Manager를 누르시면 그냥 APK Multi Tool을 받구요.


그래서 저 모든것이 포함된 링크에서 받으시는 게 좋습니다


AIO Tool Pack이라는 링크를 누르면 하단의 모든 툴이 포함된 zip파일을 받으실 수 있습니다.


그리고 apktool사이트에서 최신 apktool과 aapt등을 다운받으시구요.


출처 (APK Tools, https://code.google.com/p/android-apktool/)


이걸 apk manager의 other폴더에 존재하는 모든 apktool 관련 파일을 덮어써줍니다.



자 그리고 SystemUI.apk를 디컴파일을 합니다.... 잘됩니다.


다시 컴파일을 합니다. 그럼 안됩니다.


위와 같이 테마사의 친구 option 21 어쩌구저쩌구 에러가 뜹니다. ㅎㅎ


먼저 에러 로그를 확인해봅시다.



warning은 무시해도 되고 실제 error가 일어난 로그를 확인해보면,


res/layout/system_bar_notification_panel_title.xml의 style 코드 @style/SystemBarNotificationText와,


res/layout/system_bar_settings_view.xml의 style 코드 4종에 관련하여


주어진 이름과 매치되는 리소스를 찾지 못함 (No Resources found that matches given name) 이라는 에러가 떠있습니다.


즉, 1.apk / 2.apk / 127.apk 등 apk manager를 위해 미리 참조하기 위해 등록하는 3개의 파일로도 참조하지 못하는


코드가 있으며 이는 android style 관련 코드라는 것입니다.


다행히도, android:style 코드는 부가적인 코드이며 항상 존재해야 하는 코드는 아닙니다.

(android:id 처럼 필수적인 요소는 아니라는 뜻이죠.)


따라서 컴파일때 굳이 필요있는 요소는 아니므로, 해당 파일에서 문제가 된 style 관련 코드를 모두 삭제합니다.



system_bar_settings_view.xml의 style코드입니다. 전부 삭제해주세요.



system_bar_notification_panel_title.xml의 style 관련 코드 역시 모두 삭제해줍니다.



그리고 컴파일을 합니다. 정상적으로 컴파일이 되는 것을 알 수 있습니다.


다만 style 코드를 수정한 두 파일에 대해서는 덮어쓰기를 하지 마세요.

(unsigned파일에서 순정파일로 해당 두 파일은 layout 덮어쓰기를 절대 하시지 마세요.)


다른 리소스에 대해서는 종전과 같이 테마 제작을 하실 수 있습니다.


댓글 16
  • ?
    lantana
    13.05.10
    대단하십니다...추천~!!
  • ?
    가츠
    13.05.10
    하다보니 저도 저 에러가 떠서 해결했습니다^^ 에테리스님의 이글을 보기전 오후에 올리신글에서 힌트!! 를 얻어서 해결했네요^^ 저는 저 워닝도 보기싫어서 구문 넣어줬네요.. 상단바 투명은 해결했고, 퀵패널 투명에 도전중인데 잘안되네요 ㅋ 감사합니다~*
  • ?
    퀵패널이 이전 갤3/갤노트2와 달리 systemUI.apk의 values/drawable.xml에 notification background의 색상 코드를 바꾸면 됩니다.
  • ?
    가츠
    13.05.10
    layout에 status_bar_expanded.xml 에서 색상코드 바꾸니 되긴하네요. 전체 투명은 보기가 힘든거같고.. 몇몇군대만 부분적으로 바꾸려구요^^ 답변 감사합니다~
  • ?
    전 s_papa님 께서 해결해주셔서..이미 작업은했습니다만... 앞으로 제가 직접하기에 많은도움이 될거같네요. 좋은강좌 감사합니다~~^^ [2.1.0/E300SKSUAMDK/4.2.2]
  • ?
  • ?
    chitos7
    13.05.10
    감사합니다.^^ 바로 이해됐습니다.~
  • ?
    에테리스님 systemui - value - styles.xml에 5개 추가하고 컴파일하면 정상적으로 컴파일되는데, 단말기에서는 정상적으로 작동되는지 모르겠네요. 이 방법으로 된다면 작업이 간단해 질 것 같기도 한데요..테스트 바랍니다.
  • ?
    김란아
    13.05.12
    좋은자료 감사합니다^^
  • ?
    감사합니다 덕분에 유플이지만 성공했네요
  • ?
    CS,
    13.05.14
    좋은정보 감사합니다. 저 한가지 질문할게있는데...혹시 디오덱스로 작업해보셨나요 ? 만약에 해보셨다면 프레임워크 같은경우 디오덱스로 안되고 오덱스랑.apk 랑 나뉘든데...왜 그런지 혹시 아시나용!?
  • ?
    대단하십니다.. 추천!
  • ?
    자운팔
    13.07.20
    좋은 정보 감사합니다.
  • ?
    chitos7
    13.10.05
    15 추천수 돌파 축하드려요!!
  • ?
    코요퉤
    13.11.04
    대단히 대단하십니다!!! 감사합니다
  • ?
    이글덕분에 SecSettings.apk를 컴파일 성공했는데요... 하지만 AndroidManifest.xml를 덮어쓰기를 하고 적용하면 환경설정이 사라져버리네요... AndroidManifest.xml에서 style 코드 지운것도 없는데 이것도 덮어쓰기 하면 안되나봐요?
댓글 쓰기 권한이 없습니다.
최신순 목록 검색 쓰기
등록된 글이 없습니다.
1 - 2