Как стать автором
Обновить

Исправление зависших кнопок на Nexus 4

Время на прочтение1 мин
Количество просмотров11K
У Nexus 4 может возникать очень неприятная проблема с навигационными кнопками, как на этом видео:



Решение проблемы долго не было известно: Багрепорт
Возмутившись данным недоразумением, я стал искать решение и нашел.


Кому лень читать, а проблема есть https://github.com/gkraynov/nexus-4-navfix
Кем-то предлагались даже особо жесткие решения.
Я не мог поверить, что проблема кроется исключительно в аппаратном баге. После ковыряния в системе обработки сенсорных событий замечена интересная вещь — deadzone.
Всякий раз, когда вы набираете сообщение, то навигационная панель блокируется на короткое время, чтобы избежать реакции на случайные нажатия. К сожалению, Nexus 4 при загадочных обстоятельствах может попросту начать блокировать эту зону навсегда.
Самым простым способом было отключение этой зоны совсем, все таки это лучше чем ничего. Для того, чтобы не усложнять жизнь пользователям, я написал скрипт, который автоматически генерирует нужный патч.

Алгоритм довольно прост:
1. Скачивается SystemUI.apk через ADB
2. Распаковываются ресурсы
3. Размер deadzone устанавливается в 0dip
4. Запаковывается обратно
5. Создается UPDATE.zip

В придачу еще обновление для отката изменений, что позволяет легко применять OTA обновления и повторять операцию. Root не требуется, только кастомное recovery.
Для Android 5.0.1 есть уже собранный пакет https://github.com/gkraynov/nexus-4-navfix/releases

Если есть идеи улучшения — буду признателен.
Теги:
Хабы:
Всего голосов 14: ↑8 и ↓6+2
Комментарии19

Публикации

Истории

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань