Skocz do zawartości
mateooshn

Usuwanie/chowanie przycisków na pasku nawigacyjnym (SystemUI)

    Rekomendowane odpowiedzi

    Zaczęło sie od tego, że postanowiłem zrobić ROM jak najbliższy do AOSP, i lekki.

    Niestety, FloatingWidget od ASUSa zżerały mi dużo RAMu.

    Usunąłem więc APK odpowiedzialne za latające widżety, ale przycisk paska statusu został.

    Chodzi mi o czwarty przycisk:

    post-138064-1425574592949_thumb.png

    Zdekompilowałem więc SystemUI.apk i wg tego poradnika:

    [GUIDE] How to modify SystemUI.apk to remove nav bar volume soft keys

    zmodyfikowałem plik res/layout/system_bar.xml:

    [color="#00FF00"]/home/mateusz/apktool/SystemUI/res/layout/system_bar.xml (+1, -1)[/color]
      <?xml version="1.0" encoding="utf-8"?>
      <com.android.systemui.statusbar.tablet.TabletStatusBarView android:background="@drawable/system_bar_background"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
          <FrameLayout android:layout_gravity="bottom" android:id="@id/bar_contents_holder" android:layout_width="fill_parent" android:layout_height="@android:dimen/system_bar_height">
              <RelativeLayout android:id="@id/bar_contents" android:clipChildren="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
                  <include android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginTop="1.0dip" android:layout_alignParentRight="true" layout="@layout/system_bar_notification_area" />
                  <LinearLayout android:orientation="horizontal" android:id="@id/navigationArea" android:clipChildren="false" android:clipToPadding="false" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentLeft="true">
                      <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/back" android:layout_width="@dimen/navigation_key_width" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_back" android:contentDescription="@string/accessibility_back" systemui:keyCode="4" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
                      <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/home" android:layout_width="@dimen/navigation_key_width" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_home" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
                      <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/recent_apps" android:layout_width="@dimen/navigation_key_width" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_recent" android:contentDescription="@string/accessibility_recent" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
                      <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/menu" android:visibility="invisible" android:layout_width="@dimen/navigation_menu_key_width" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_menu" android:contentDescription="@string/accessibility_menu" systemui:keyCode="82" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
    [color="#FF0000"]--                 <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/popup" android:layout_width="@dimen/navigation_key_width" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_floatingwidget_default" systemui:glowBackground="@drawable/ic_sysbar_highlight" />[/color]
    [color="#000080"]++                 <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/popup" android:visibility="invisible" android:layout_width="0.0dip" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_floatingwidget_default" systemui:glowBackground="@drawable/ic_sysbar_highlight" />[/color]
                  </LinearLayout>
                  <com.android.systemui.statusbar.policy.EventHole android:id="@id/fake_space_bar" android:paddingLeft="8.0dip" android:paddingRight="8.0dip" android:visibility="gone" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_toLeftOf="@id/notificationArea" android:layout_toRightOf="@id/navigationArea" />
              </RelativeLayout>
          </FrameLayout>
          <FrameLayout android:layout_gravity="bottom" android:id="@id/bar_shadow_holder" android:layout_width="fill_parent" android:layout_height="@android:dimen/system_bar_height">
              <RelativeLayout android:id="@id/bar_shadow" android:background="#ff000000" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent">
                  <ImageView android:id="@id/dot0" android:layout_width="80.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:layout_alignParentLeft="true" android:layout_alignParentBottom="true" />
                  <ImageView android:id="@id/dot1" android:layout_width="80.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_sysbar_lights_out_dot_large" android:layout_toRightOf="@id/dot0" android:layout_alignParentBottom="true" />
                  <ImageView android:id="@id/dot2" android:layout_width="80.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:layout_toRightOf="@id/dot1" android:layout_alignParentBottom="true" />
                  <ImageView android:id="@id/dot3" android:layout_width="80.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:layout_toRightOf="@id/dot2" android:layout_alignParentBottom="true" />
                  <ImageView android:id="@id/dot4" android:layout_width="80.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" />
              </RelativeLayout>
          </FrameLayout>
      </com.android.systemui.statusbar.tablet.TabletStatusBarView>

    Jak można domyślać się, zakończyło się to błędem:

    I: Using Apktool 2.0.0-Beta9 on SystemUI
    W: Could not find sources
    I: Checking whether resources has changed...
    I: Building resources...
    Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [/tmp/brut_util_Jar_7664729215294441908.tmp, p, --forced-package-id, 127, --min-sdk-version, 16, --target-sdk-version, 16, --version-code, 16, --version-name, 4.1.1-WW_user_4.5.4.31116393_20130910, -F, /tmp/APKTOOL9180195289177662095.tmp, -0, arsc, -I, /root/apktool/framework/1.apk, -S, /home/mateusz/apktool/SystemUI/res, -M, /home/mateusz/apktool/SystemUI/AndroidManifest.xml]
    at brut.androlib.Androlib.buildResourcesFull(Androlib.java:435)
    at brut.androlib.Androlib.buildResources(Androlib.java:363)
    at brut.androlib.Androlib.build(Androlib.java:286)
    at brut.androlib.Androlib.build(Androlib.java:258)
    at brut.apktool.Main.cmdBuild(Main.java:236)
    at brut.apktool.Main.main(Main.java:88)
    Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [/tmp/brut_util_Jar_7664729215294441908.tmp, p, --forced-package-id, 127, --min-sdk-version, 16, --target-sdk-version, 16, --version-code, 16, --version-name, 4.1.1-WW_user_4.5.4.31116393_20130910, -F, /tmp/APKTOOL9180195289177662095.tmp, -0, arsc, -I, /root/apktool/framework/1.apk, -S, /home/mateusz/apktool/SystemUI/res, -M, /home/mateusz/apktool/SystemUI/AndroidManifest.xml]
    at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:470)
    at brut.androlib.Androlib.buildResourcesFull(Androlib.java:416)
    ... 5 more
    Caused by: brut.common.BrutException: could not exec command: [/tmp/brut_util_Jar_7664729215294441908.tmp, p, --forced-package-id, 127, --min-sdk-version, 16, --target-sdk-version, 16, --version-code, 16, --version-name, 4.1.1-WW_user_4.5.4.31116393_20130910, -F, /tmp/APKTOOL9180195289177662095.tmp, -0, arsc, -I, /root/apktool/framework/1.apk, -S, /home/mateusz/apktool/SystemUI/res, -M, /home/mateusz/apktool/SystemUI/AndroidManifest.xml]
    at brut.util.OS.exec(OS.java:89)
    at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:464)
    ... 6 more

    I teraz dwie kwestie:

    1. Czy ja robię to w sposób właściwy? Może są jakieś inne opcje, lepsze lub "czyściejsze" aby ten przycisk zniknął? Chodzi o to, żeby po usunięciu tego przycisku całość mi się wyśrodkowała, a nie że zostanie puste miejsce.

    2. Czy z tego błędu można wywnioskować co Asus zrobił w SystemUI że nie mogę go zbudować? Bez błędów edytowałem Settings, a jeśli już błędy występowały, to komunikat wyraźnie pokazywał, co w którym pliku jest źle. Tymczasem ASUS coś skopał w tym swoim SystemUI skoro nawet "apktool d -s SystemUI && apktool b SystemUI" kończy się błędem...

    Aktualnie mam Debian/jessie amd64 + wszystkie liby 32bitowe + APKTool 2.0.0-beta9 + najnowsze ADB/smali/baksmali

    SystemUI z frameworkiem wrzucam tutaj:

    https://mega.co.nz/#F!zZsXHaJL!POpgRSm-cw54RTfYSFI7Dg

    Edytowane przez Zenderable
    Długie kody dajemy w znacznik [SPOILER]

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    cr3pt

    A czemu nie zrobisz kompilacji od 0 (kompilacja) tylko modujesz??

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x