Skip to content

kirpichik/HuashanTouchscreenReseter

Repository files navigation

Huashan Touchscreen Reseter

Описание

Небольшой "костыль" для работы "не родных" тачскринов для Sony Xperia SP(Huashan)

При замене тачскрина на не оригинальный от производителя, наблюдаются периодические отключения сенсерного экрана. Само отключение происходит при выходе устройства из режима сна, то есть непосредственном включении экрана. В момент нажатия кнопки, если тачскрин отвалился, экран включится с задержкой (0.5 - 1 сек.)

Удалось выделить 2 типа таких отключений:

  1. Полное отваливание. Экран никак не реагирует, проходит после некоторого кол-ва включений/выключений экрана.
  2. Частичное отваливание или нехватка чувствительности. Экран как бы чувствует нажатия, но не реагирует на них. То есть элементы интерфейса подсвечиваются, но не активируются. Хорошо заметно на экране блокировки с уведомлением. При попытке на него нажать, будет только слегка выделяться серым. При этом экран разблокировать нельзя. Этот тип бывает очень редко. Обычными способами не получалось выйти из этой ситуации, перезагрузка не помогала.

Решение?

Управление драйвером сенсорного экрана находится в:

/sys/devices/i2c-3/3-0024/main_ttsp_core.cyttsp4_i2c_adapter/

Удалось выявить, что вызов calibration

cat calibration

Позволяет временно выйти из первого типа отключения, до следующего такого случая, не перевключая экран. Выйти из второго типа отключения позволяет комбинация команд:

echo 1 > hw_reset
cat calibration

Как работает "костыль"

Программа слушает нажатия кнопки камеры и при небольшом нажатии вызывается решение для первого метода, при полном нажатии - для второго.

Таким образом, если при включении экрана сенсор не работает, можно нажать на кнопку камеры и он заработает. Это позовляет не перезапускать постоянно экран/устройство для восстановления работы сенсорного экрана.

Так же присутствует функция, позволяющая при каждом включении экрана выполнять calibration. Таким образом, при включении экрана кнопкой питания, сенсор не будет отвечать сразу, а только после примерно одной секунды, но это избавит от надобности часто нажимать кнопку камеры после включения экрана, так как calibration исправляет самый частый тип отвала сенсора.

Установка

Установка как приложение

  1. Удалите предыдущую версию приложения!
  2. Установите на устройство файл touchscreen-reseter.apk
  3. Откройте это приложение и предоставьте ему права суперпользователя.
  4. Если на нижней кнопке написано "Остановить", то нажмите на нее. Это остановит старую версию, если она была запущена.
  5. Нажмите на нижней кнопке "Запустить"
  6. Если у вас была установлена версия вне приложения, то откройте Kernel Adiutor(или каким-либо другим способом) удалите init.d скрипт с именем tsr-init

Скрипт и init.d

  1. Скачайте и положите в одну папку на устройстве следующие файлы:
  • setup.sh
  • tsr-init
  • touchscreen-reseter
  1. Откройте терминал на устройстве(или adb) и выполните команды:
su
cd *имя папки в которую вы распаковали архив*
chmod +x setup.sh
./setup.sh

Дополнительные инструменты

В репозитории включены дополнительные инструменты для отладки ввода тачскрина и кнопок.

./input-event-test /dev/input/eventX

Отображает информацию об устройстве и позволяет считывать ввод с этих устройств.