Данная инструкция понадобится тем, кто использует планшет в автомобиле как carpc. Себе я поставил Nexus 7 2012 3G. Прошивок для него много, аж начиная с андроид 4.2 до 7.1 на момент написания данной инструкции. Но заточенных именно для carpc имеется только 2 прошивки, которые у меня через некоторое время начинали глючить.
В связи с этим решил установить стоковую прошивку на андроид 5.1. Но, т.к. привык к мультимедийным кнопкам в навбаре решил сделать их и на стоковой прошивке. Инструкции как это сделать я не нашел, но нашел готовые патчи для Nexus 7 2013 и посмотрев как автор это сделал попробовал и у себя.
На android 5.1 Lollipop
Думаю можно попробовать по инструкции для 6.0
- Декомпилируем \system\priv-app\SystemUI\SystemUI.apk
- Копируем следующие изображения в папку \res\drawable-sw600dp-hdpi-v13 (-v13 может и не быть, зависит от инструмента декомпиляции)
- В файле \res\layout\heads_up.xml заменить
Готовый патч под TWRP для Nexus 7 2012 под android 5.1 LMY47V
На android 6.0
- декомпилируем \system\priv-app\SystemUI\SystemUI.apk
- копируем следующие изображения в папку \res\drawable-sw600dp-hdpi-v13 (-v13 может и не быть, зависит от инструмента декомпиляции)
- в файле \res\layout-sw600dp-v13\navigation_bar.xml редактируем так
- в \res\values\ids.xml добавить
На android 7.X
Просто устанавливаем приложение Custom Navigation Bar и через него добавляем/настраиваем кнопки
либо проделываем так
- декомпилируем \system\priv-app\SystemUI\SystemUI.apk
- в файле \res\xml\tuner_prefs.xml перед (либо в любом удобном для вас месте)
Открываем шторку, жмем шестеренку (настройки) 5-7 секунд и отпускаем. Откроется настройки. В самом конце появится пункт "System UI Tuner". Заходим в панель навигации и добавляем/изменяем кнопки.
P.S. кто хочет изменить высоту навбара, сделать следующее:
- декомпилируем \system\framework\framework-res.apk
- в файле \res\values\dimens.xml значение на
Компилируем framework-res.apk и заменяем в системе.
Будет выглядеть так
В связи с этим решил установить стоковую прошивку на андроид 5.1. Но, т.к. привык к мультимедийным кнопкам в навбаре решил сделать их и на стоковой прошивке. Инструкции как это сделать я не нашел, но нашел готовые патчи для Nexus 7 2013 и посмотрев как автор это сделал попробовал и у себя.
На android 5.1 Lollipop
Думаю можно попробовать по инструкции для 6.0
- Декомпилируем \system\priv-app\SystemUI\SystemUI.apk
- Копируем следующие изображения в папку \res\drawable-sw600dp-hdpi-v13 (-v13 может и не быть, зависит от инструмента декомпиляции)
- В файле \res\layout\heads_up.xml заменить
- "@integer/notification_panel_layout_gravity"
- "fill_horizontal|center|top"
- "@integer/kg_selector_gravity"
- "center|left|top|clip_horizontal"
- "@integer/notification_panel_layout_gravity"
- "fill_horizontal|center|top"
- "@integer/notification_panel_layout_gravity"
- "fill_horizontal|center|top"
- "@integer/notification_panel_layout_gravity"
- "fill_horizontal|center|top"
- <?xml version="1.0" encoding="utf-8"?>
- <com.android.systemui.statusbar.phone.NavigationBarView android:background="@drawable/system_bar_background" android:layout_width="fill_parent" android:layout_height="fill_parent"
- xmlns:android="http://schemas.android.com/apk/res/android" xmlns:systemui="http://schemas.android.com/apk/res-auto">
- <FrameLayout android:id="@id/rot0" android:layout_width="fill_parent" android:layout_height="fill_parent">
- <LinearLayout android:orientation="horizontal" android:id="@id/nav_buttons" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="fill_parent" android:animateLayoutChanges="true">
- <View android:visibility="invisible" android:layout_width="@dimen/navigation_extra_key_width" android:layout_height="fill_parent" android:layout_weight="0.0" android:layout_marginStart="2.0dip" />
- <Space android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/prev" android:layout_width="55.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_prev" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_prev_track" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="88" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/play" android:layout_width="55.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_play" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_play_track" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="85" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/next" android:layout_width="55.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_next" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_next_track" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="87" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/back" android:layout_width="55.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_back" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_back" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="4" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/home" android:layout_width="55.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_home" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_home" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="3" systemui:keyRepeat="true" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/recent_apps" android:layout_width="55.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_recent" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_recent" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/volmute" android:layout_width="55.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_mute" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_volume_mute" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="164" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/voldown" android:layout_width="55.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_voldown" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_volume_down" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="25" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/volup" android:layout_width="55.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_volup" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_volume_up" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="24" />
- <Space android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
- <FrameLayout android:layout_width="@dimen/navigation_extra_key_width" android:layout_height="fill_parent" android:layout_weight="0.0" android:layout_marginEnd="2.0dip">
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/menu" android:visibility="invisible" android:layout_width="@dimen/navigation_extra_key_width" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_menu" android:scaleType="centerInside" android:contentDescription="@string/accessibility_menu" android:layout_marginEnd="2.0dip" systemui:keyCode="82" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/ime_switcher" android:visibility="invisible" android:layout_width="@dimen/navigation_extra_key_width" android:layout_height="fill_parent" android:src="/@drawable/ic_ime_switcher_default" android:scaleType="centerInside" android:contentDescription="@string/accessibility_ime_switch_button" android:layout_marginEnd="2.0dip" />
- </FrameLayout>
- </LinearLayout>
- <LinearLayout android:orientation="horizontal" android:id="@id/lights_out" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent">
- <Space android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
- <ImageView android:layout_width="128.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" android:layout_marginStart="5.0dip" />
- <ImageView android:layout_width="128.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="128.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="128.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="128.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="128.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="128.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="128.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="128.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" android:layout_marginEnd="5.0dip" />
- <Space android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
- </LinearLayout>
- <com.android.systemui.statusbar.policy.DeadZone android:layout_gravity="top" android:id="@id/deadzone" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:minSize="@dimen/navigation_bar_deadzone_size" systemui:maxSize="@dimen/navigation_bar_deadzone_size_max" systemui:holdTime="@integer/navigation_bar_deadzone_hold" systemui:decayTime="@integer/navigation_bar_deadzone_decay" systemui:orientation="horizontal" />
- </FrameLayout>
- <FrameLayout android:id="@id/rot90" android:paddingTop="0.0dip" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent">
- <LinearLayout android:orientation="horizontal" android:id="@id/nav_buttons" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="fill_parent" android:animateLayoutChanges="true">
- <View android:visibility="invisible" android:layout_width="@dimen/navigation_extra_key_width" android:layout_height="fill_parent" android:layout_weight="0.0" android:layout_marginStart="2.0dip" />
- <Space android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/prev" android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_prev" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_prev_track" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="88" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/play" android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_play" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_play_track" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="85" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/next" android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_next" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_next_track" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="87" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/back" android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_back" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_back" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="4" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/home" android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_home" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_home" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="3" systemui:keyRepeat="true" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/recent_apps" android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_recent" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_recent" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/volmute" android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_mute" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_volume_mute" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="164" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/voldown" android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_voldown" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_volume_down" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="25" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/volup" android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_volup" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_volume_up" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" systemui:keyCode="24" />
- <Space android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
- <FrameLayout android:layout_width="@dimen/navigation_extra_key_width" android:layout_height="fill_parent" android:layout_weight="0.0" android:layout_marginEnd="2.0dip">
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/menu" android:visibility="invisible" android:layout_width="@dimen/navigation_extra_key_width" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_menu" android:scaleType="centerInside" android:contentDescription="@string/accessibility_menu" android:layout_marginEnd="2.0dip" systemui:keyCode="82" />
- <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/ime_switcher" android:visibility="invisible" android:layout_width="@dimen/navigation_extra_key_width" android:layout_height="fill_parent" android:src="/@drawable/ic_ime_switcher_default" android:scaleType="centerInside" android:contentDescription="@string/accessibility_ime_switch_button" android:layout_marginEnd="2.0dip" />
- </FrameLayout>
- </LinearLayout>
- <LinearLayout android:orientation="horizontal" android:id="@id/lights_out" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent">
- <Space android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
- <ImageView android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" android:layout_marginStart="5.0dip" />
- <ImageView android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" />
- <ImageView android:layout_width="95.0dip" android:layout_height="fill_parent" android:src="/@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0.0" android:paddingStart="25.0dip" android:paddingEnd="25.0dip" android:layout_marginEnd="5.0dip" />
- <Space android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
- </LinearLayout>
- <com.android.systemui.statusbar.policy.DeadZone android:layout_gravity="top" android:id="@id/deadzone" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:minSize="@dimen/navigation_bar_deadzone_size" systemui:maxSize="@dimen/navigation_bar_deadzone_size_max" systemui:holdTime="@integer/navigation_bar_deadzone_hold" systemui:decayTime="@integer/navigation_bar_deadzone_decay" systemui:orientation="vertical" />
- </FrameLayout>
- </com.android.systemui.statusbar.phone.NavigationBarView>
- <item type="id" name="volup">false</item>
- <item type="id" name="volmute">false</item>
- <item type="id" name="voldown">false</item>
- <item type="id" name="prev">false</item>
- <item type="id" name="play">false</item>
- <item type="id" name="next">false</item>
- <string name="accessibility_prev_track">Previous track.</string>
- <string name="accessibility_play_track">Play track.</string>
- <string name="accessibility_next_track">Next track.</string>
- <string name="accessibility_volume_mute">Mute volume.</string>
- <string name="accessibility_volume_down">Increase volume.</string>
- <string name="accessibility_volume_up">Decrease volume.</string>
Готовый патч под TWRP для Nexus 7 2012 под android 5.1 LMY47V
На android 6.0
- декомпилируем \system\priv-app\SystemUI\SystemUI.apk
- копируем следующие изображения в папку \res\drawable-sw600dp-hdpi-v13 (-v13 может и не быть, зависит от инструмента декомпиляции)
- в файле \res\layout-sw600dp-v13\navigation_bar.xml редактируем так
- в \res\values\ids.xml добавить
- <item type="id" name="volup">false</item>
- <item type="id" name="volmute">false</item>
- <item type="id" name="voldown">false</item>
- <item type="id" name="prev">false</item>
- <item type="id" name="play">false</item>
- <item type="id" name="next">false</item>
- <string name="accessibility_prev_track">Previous track.</string>
- <string name="accessibility_play_track">Play track.</string>
- <string name="accessibility_next_track">Next track.</string>
- <string name="accessibility_volume_mute">Mute volume.</string>
- <string name="accessibility_volume_down">Increase volume.</string>
- <string name="accessibility_volume_up">Decrease volume.</string>
На android 7.X
Просто устанавливаем приложение Custom Navigation Bar и через него добавляем/настраиваем кнопки
либо проделываем так
- декомпилируем \system\priv-app\SystemUI\SystemUI.apk
- в файле \res\xml\tuner_prefs.xml перед (либо в любом удобном для вас месте)
- <Preference android:title="@string/other" android:key="other" android:fragment="com.android.systemui.tuner.OtherPrefs" />
- <Preference android:title="@string/nav_bar" android:key="sysui_nav_bar" android:fragment="com.android.systemui.tuner.NavBarTuner" />
Открываем шторку, жмем шестеренку (настройки) 5-7 секунд и отпускаем. Откроется настройки. В самом конце появится пункт "System UI Tuner". Заходим в панель навигации и добавляем/изменяем кнопки.
P.S. кто хочет изменить высоту навбара, сделать следующее:
- декомпилируем \system\framework\framework-res.apk
- в файле \res\values\dimens.xml значение на
- navigation_bar_height_landscape
Компилируем framework-res.apk и заменяем в системе.
Будет выглядеть так
Этот комментарий был удален администратором блога.
ОтветитьУдалить