Цитата:
Сообщение от Asus
Orange PI PC, Android 4.4.2(3.4.39)
Больше склоняюсь к варианту, что поддержка GPS вырезана в самом ядре.
|
Поддержку GPS из ядра вырезать невозможно, поскольку ее там вообще нет

Модулями ядра являются драйверы портов. Они передают данные от физических устройств через соответствующие файлы устройств (/dev/ttySx, /dev/ttyUSBx, /dev/ttyACMx).
Цитата:
Сообщение от Asus
И никакие танцы с копированием библиотек не дадут результата.
1. Кто-нибудь может подробно описать прохождение данных с приёмника до приложения? Как это происходит, через какие службы или библиотеки.
|
А интерпретирует поток данных, получаемый из файлов устройств, фреймворк андроида. Данные могут быть как в формате nmea, так и в каком-нибудь двоичном формате. Поэтому программный код, интерпретирующий поток данных, выделен в библиотеки, называемые на этом форуме "либами". Поскольку при использовании внешних gps-приемников интересует только формат nmea, то и подключать нужно библиотеку gps.default.so, скомпилированную для соответствующей архитектуры процессора. Эта библиотека имеет два параметра, которые можно задать в файле /system/build.prop
Цитата:
ro.kernel.android.gps=ttyUSBx # источник данных
ro.kernel.android.gpsttybaud=4800 # скорость порта
|
Также эти параметры можно задать на этапе загрузки командой setprop.
Приложение, получающее данные о местоположении, применяет вызовы API для обращения к провайдеру местоположения (location provider). Для того, чтобы этот компонент фреймворка отвечал на запросы, необходимо указать в файлах конфигурации, находящихся в каталоге /etc/permissions/, что наше устройство имеет gps-приемник. Вот краткое описание процесса.