RTKlib/постпроцессинг

А финт, если либу положить в сборку APK и она загрузиться первой. А то и вовсе может быть возможно переназначить этот вызов на свой JavaObject::callSetterFix. По крайней мере при сборке на обычном С++ бывает ругается, что существуют две реализации и он выбирает какую-то одну.
Вообще андроид странный, я 4 месяца пытался собрать rtkgps+, чтобы он не падал на моём телефоне. И вот недавно я выяснил причину, что в java и в нативном коде массивы которые копировались друг в друга были разной длинный. Но на моём андроиде копирование молча падало в дебрях системы, на на более новых нет, и как бы работало О_о
Так же спасибо Sergey Astakhov, твои unix сокеты пригодились.
П.С. Так же я узнал секрет, как на андроиде записывать логи с приёмника с timetag-ом, что бы потом их можно было повторять в rtknavi - надо в конце имени файла добавить ::T

Единственный телефон с BCM4774 (AFAIK http://www.myfixguide.com/manual/huawei-honor-8-teardown ), для которого есть LineageOS 14.1 это Huawei Honor 8
https://forum.xda-developers.com/showpost.php?p=71279818
В нем “GPS fixed” (whatever that means) и Galileo официально не поддерживается (хотя само железо умеет ).
Для Mate 9 есть самопальный ROM https://forum.xda-developers.com/mate-9/development/shield-rom-mate-9-t3560304 и для него пишуть


Bugs:
- GPS doens't work if you aren't on B156 base

B156 я устанавливать не хочу, т.к. в нем пофиксили Vulnerability ID: HWPSIRT-2017-01060
http://www.huawei.com/en/psirt/security-advisories/2017/huawei-sa-20170306-01-smartphone-en
которую я естественно фиксить не хочу :slight_smile:
Я дизассемблировал libandroid_servers.so из него (objdump отсюда https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu , IDApro для arm64 у меня нет, а demo для него не работает), и там конечно никакие кетайцы memory leak в navmessage
править и не думали.
При этом для Kirin960


- Huawei NOT RELEASING Kernel source code

Так что ситуация на данный момент довольно запутанная.
Если у кого есть телефон с 7.1.1 (и Qualcomm ?), то интересно узнать о вашем experience.

Я все-таки снес стандартную прошивку, и заменил ее на самопал :sunglasses:
Теперь все read-write. GPS не работает по следующей причине


[   16.240081s][pid:1,cpu4,init]init: (Parsing /init.connectivity.gps.rc took 0.00s.)
[   18.029235s][pid:1,cpu7,init]init: Starting service 'gpsdaemon'...
[   19.310211s][pid:1,cpu4,init]init: Service gpsd_4774 does not have a SELinux domain defined.
[   19.696044s][pid:1,cpu6,init]init: Service 'gpsdaemon' (pid 459) exited with status 0

В /sepolicy gpsd_4774 действительно нет, в /property_contexts есть


ctl.gpsd_4774                   u:object_r:gpsd_prop:s0

а добавить контекст в init.connectivity.gps.rc


    service gpsd_4774  /vendor/bin/glgps4774 -c /data/gps/gpsconfig.xml
    socket gps seqpacket 660 gps system
    class late_start
    user gps
    group system inet sdcard_rw wakelock
    disabled

не удается, так как при перезапуске он заменяется на версию из какого-то ramdisk.
При этом в ramdisk из boot.img такого файла нет (???)
В телефоне до хрена partitions, везде бекапы, резервные копии, логи.
Никакого ЦРУ не надо, китайцы какие только данные по дискам не распихали :roll_eyes:
Этот glgps4774 еще через AtCmdTransportPort=“/dev/appvcom9”
посылает телефону магические команды.
В SuplTlsCertPath=“/data/cust/xml/server.pem” никакого сертификата нет.
При этом есть запароленная пара
/vendor/etc/gnss/config/gnss_lss_slp_thirdparty.p12
и запароленный ключъ
/vendor/etc/gnss/config/gnss_lss_rfg_key_thirdparty.pem :roll_eyes:
Интересно кто и для чего ими пользуется. Пароль же тоже должен где-то
лежать.
cacert_location.pem и xtra_root_cert.pem отсутствуют.


Disk /dev/block/sda: 4 MB, 4194304 bytes, 8192 sectors
Disk /dev/block/sdb: 4 MB, 4194304 bytes, 8192 sectors
Disk /dev/block/sdc: 16384 sectors, 64.0M

Number  Start (sector)    End (sector)  Size Name
     1             128             255  512K frp
     2             256             767 2048K persist
     3             768            2047 5120K reserved1

Disk /dev/block/sdd: 124928000 sectors,  576M
Number  Start (sector)    End (sector)  Size Name
     1             128             255  512K vrl
     2             256             383  512K vrl_backup
     3             384            2559 8704K modem_secure
     4            2560            4095 6144K nvme
     5            4096           20479 64.0M oeminfo
     6           20480           28671 32.0M secure_storage
     7           28672           36863 32.0M modem_om
     8           36864           37887 4096K modemnvm_factory
     9           37888           38911 4096K modemnvm_backup
    10           38912           41983 12.0M modemnvm_img
    11           41984           43007 4096K modemnvm_system
    12           43008           63487 80.0M splash2
    13           63488          129023  256M cache
    14          129024          129535 2048K bootfail_info
    15          129536          130047 2048K misc
    16          130048          138239 32.0M reserved2
    17          138240          139263 4096K reserved10
    18          139264          141311 8192K hisee_fs
    19          141312          145407 16.0M dfx
    20          145408          149503 16.0M rrecord
    21          149504          149567  256K fw_lpm3_a
    22          149568          150527 3840K reserved3_a
    23          150528          151551 4096K hisee_img_a
    24          151552          154623 12.0M fastboot_a
    25          154624          155647 4096K vector_a
    26          155648          156159 2048K isp_boot_a
    27          156160          159743 14.0M isp_firmware_a
    28          159744          162815 12.0M fw_hifi_a
    29          162816          164863 8192K teeos_a
    30          164864          181247 64.0M recovery2_a
    31          181248          185343 16.0M sensorhub_a
    32          185344          193535 32.0M boot_a
    33          193536          209919 64.0M recovery_a
    34          209920          214015 16.0M dts_a
    35          214016          214527 2048K trustfirmware_a
    36          214528          228863 56.0M modem_fw_a
    37          228864          241663 50.0M reserved4_a
    38          241664          262143 80.0M modemnvm_update_a
    39          262144          270335 32.0M patch_a
    40          270336          278527 32.0M version_a
    41          278528          479231  784M vendor_a
    42          479232          528383  192M product_a
    43          528384          577535  192M cust_a
    44          577536         1777663 4688M system_a
    45         1777664         1810431  128M reserved5
    46         1810432        15615999 52.6G userdata

Нашел, где находится используемый ramdisk.cpio.gz,
он в сборке .img на /dev/block/sdd32 с характерным названием boot_a
Также полностью пересобрал AOSP (7.0.0_r30) для generic_arm64 из исходников.

Коллеги, подскажите, есть ли смысл в приобретении китайского flight controller’a за $15 на neo-m8n типа https://www.aliexpress.com/item/F17533-Mini-M8N-GPS-Module-NEO-M8N-GPS-for-APM-2-6-2-8-PIX-PX4/32662584468.html

  • blackbox на openlog для сбора треков на веле? Или там только координаты идут наружу и сырые данные не получить?
    Сейчас пишу треки телефоном, для “разбора полётов”.

Смысл есть, даже если там стоит прошивка 3.х (а китаец заявляет Галлилео), где сырые данные прикрыты, то он на порядок лучше чем смартфон.

OK, тогда о чём спрашивать китайцев? О версии прошивки? (пусть ставят u-center и проверяют? :slight_smile:
У подобных модулей есть версии для разных flight controller’ов (Pixhawk, cc3d, f3), но думаю там различия только в типах коннекторов и распиновке. Или я не прав? (китайцев перед заказом спрошу)
Какие ещё критерии выбора?

Версии не для контроллеров, а для самого чипа ublox.
Там ещё какие-то наё…ки с памятью бывают, что её так мало, что следующее обновление просто не влезет, хотя и нужды в нём пока особо нет.

Под версиями для контроллеров я подразумевал разные варианты кабелей, не firmware, прошивка думаю одна, просто в одном варианте припаяно 6 проводов, а в другом 4, и коннекторы разные.

Ну и почитал про контрафакт, можно получить с ali или ebay M7 без флэша с наклейкой от M8…

Сколько там проводов - очевидно, пофигу. А что касается контрафакта - во-первых, цена “меньше $20” - это уже ситуация, когда дареному коню никуда не смотрят, а во-вторых, это всё равно лучше, чем говноприемник в смартфоне.

Цена на ali тоже не показатель - на M8N разброс от $12 до >$100 (одинаковые внешне модели), и за 50 встречаются предыдущие поколения, 6 и 7.
Про прошивку один продавец сегодня ответил, что не знает какая, сорри.

В общем снег растаял и появилась возможность поискать отверстия в местах обитания покемоновпунктов.
Вот такая локализация у меня получилась.

И хотя тут рапортуют о 13см невязки, промах базовой станции (координаты которой я использовал для контроля) оказался на 17см по данной оси. Всего же промахнулся на 20см. Но всё равно я считаю это круто.
Так что на векторах до 10км можно смело рассчитывать на не хуже чем пол метра.
Хотя, может это я оптимистично настроен, параметры трансформации очень уж отдалённо похожи на mapbasic.

Есть продвижение с GNSS на Андроиде?

It does not make much sense to discuss advanced technical topics in this forum,
unless you can provide an .lst file from idapro for aarch64 :roll_eyes:

Мдя, 6.9 пока нет в открытом доступе. Т.е. простое наличие телефона с 7.1.1 (7.1.2) не даст возможности получить RAW данные GNSS? У меня тут есть Snapdragon 652 с возможностью зашить туда LineageOS но судя по Вашему опыту это только начало и еще ничего не даст?

Приветствую!

Я уже пару месяцев, как слежу за этим тредом. Вот недавно приобрёл себе новый телефон и увлёкся GNSS :slight_smile: В основном как более точный лог моих путешествий. Недоволен стандартной точностью Mate 9. Заметил что вышел Open Source для Mate 9, включая gps_bcm4774.c Я конечно же не специалист, но может я могу чем то помочь, чтобы в этом телефоне появился GNSS? Попробовал GNSSLogger, но к сожалению он пишет сырые данные только в файл для анализа МатЛабом, а не выдаёт допустим в RINEX поток :frowning:

я тоже страдаю :open_mouth:

Конечно нет. 7.* это только API к vendor интерфейсу, и все зависит от этого самого вендора,
что и как он вам даст увидеть.
Есть телефоны вроде Pixel, которые например вообще фазу не дают
и наверняка скоро будет куча дешевых телефонов с 7.x, где никаких RAW data
само железо не умеет (типа MTK).

Lineageos сама по себе ничего не дает, а результаты на Snapdragon 652 конечно интересно посмотреть, что он реально умеет.

Там ничего особенного нет, только вкл/выкл часов и питания.

Эта проблема решаема. Можно поправить GNSSLogger, чтобы он например писал
ublox binary или novatel binary, которые понимает rtklib.
Я на будущее на самом деле предвещаю GPL3 форк rtklib,
так как хитрый японец тоже мутит какую-то
монетизацию, судя по его блогу.

А Вы не подскажете где и как это всё можно реализовать? Я скомпилировал Китайский? форк, где упомянут RINEX, но увы ничего не изменилось. По крайней мере визуально.

Как по мне так нужна утилита под андроид для проверки доступных фич GNSS на текущей связке железо + ОС + проприетарные либы. Можно было бы репортить на xda тем, кто допиливает kernel. Плюс мне самому не понятно как проверить возможности телефона в части доступных данных GNSS после перехода на 7.1.
Кроме GNSSLogger сейчас вроде бы ничего и нет?