갤럭시S4 컴파일 되지 않는 SystemUI.apk을 컴파일 하기


현재 공개된 갤럭시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 덮어쓰기를 절대 하시지 마세요.)


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


이 글을 공유하기


댓글(9)

  • 무슨뜻이졍..
    2013.06.18 23:15

    style 코드를 수정한 두파일에 대해서는 덮어쓰기를 하지 마세요.
    라고 하셨는데 무슨 말씀이신지..ㅎㅎ

    • 2013.06.19 13:10 신고

      보통 컴파일 <-> 디컴파일 작업을 한 뒤, 생성된 unsigned 파일에서 리소스를 복사해서 기존 파일로 덮어쓰길 하는데,
      이때 style 코드를 수정한 두 파일에 대해서 만큼은 절대 복사를 하지 않아야 한다는 뜻입니다.

  • i291
    2013.07.30 21:53

    에테리스님 좋은 정보 감사합니다.
    혹시괜찮으시면 다운 받으신 파일들을 메일로 받을 수 있을까요?
    저는 받으려고 하는데 자꾸 에러가 나고 어느 곳을 눌러야 할지 모르는 것도 있네요.
    부탁 드리겠습니다.

    i291@naver.com 입니다.

    즐거운 하루 되세요^^

  • 컴파일
    2013.09.02 21:43

    분명 똑같이 삭제를 했는데도 불구하고 컴파일이 되지 않습니다...

    • 2013.09.03 11:07 신고

      음..이럴 땐 로그를 보시면서 어느파일의 몇번째 라인인지를 보시고

      style 코드를 삭제하시면 되겠습니다.

  • 컴파일
    2013.10.05 14:36

    D:\apk_manager_5.2_fix_softdx\other\..\projects\SystemUI.apk\res\layout\system_bar_settings_view.xml:5: error: Error parsing XML: not well-formed (invalid token)

    이런 애러가 뜨는데요 제가 라인하구 찾아봤는데
    <?xml version="1.0" encoding="utf-8"?>
    <com.android.systemui.statusbar.tablet.SettingsView android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui>
    <LinearLayout android:id="@id/airplane">
    <ImageView android:id="@id/airplane_icon" android:src="@drawable/ic_sysbar_airplane_on" />

    이부분인거같거든요.. 여기서 어떤 문제가 있는건지 혹시 아시나요??

    • 2013.10.06 19:04 신고

      로그를 그대로 복사해오셨다는 전제 하에

      xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui>

      에서 마지막에 systemui 에서 "가 빠진 듯 하네요.

  • bb
    2013.12.31 01:42

    혹시 갤럭시s4 skt 순청 systemui.apk 보내주실수있으세요?ㅠㅠ
    부탁드립니다..simbjun@naver.com 입니다

Designed by CMSFactory.NET