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:
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