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

Исправление зависших кнопок на 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

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

Публикации

Истории

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

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн