А финт, если либу положить в сборку 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
которую я естественно фиксить не хочу
Я дизассемблировал 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.
Я все-таки снес стандартную прошивку, и заменил ее на самопал
Теперь все 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, везде бекапы, резервные копии, логи.
Никакого ЦРУ не надо, китайцы какие только данные по дискам не распихали
Этот 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
Интересно кто и для чего ими пользуется. Пароль же тоже должен где-то
лежать.
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 и проверяют?
У подобных модулей есть версии для разных 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
Мдя, 6.9 пока нет в открытом доступе. Т.е. простое наличие телефона с 7.1.1 (7.1.2) не даст возможности получить RAW данные GNSS? У меня тут есть Snapdragon 652 с возможностью зашить туда LineageOS но судя по Вашему опыту это только начало и еще ничего не даст?
Приветствую!
Я уже пару месяцев, как слежу за этим тредом. Вот недавно приобрёл себе новый телефон и увлёкся GNSS В основном как более точный лог моих путешествий. Недоволен стандартной точностью Mate 9. Заметил что вышел Open Source для Mate 9, включая gps_bcm4774.c Я конечно же не специалист, но может я могу чем то помочь, чтобы в этом телефоне появился GNSS? Попробовал GNSSLogger, но к сожалению он пишет сырые данные только в файл для анализа МатЛабом, а не выдаёт допустим в RINEX поток
я тоже страдаю
Конечно нет. 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 сейчас вроде бы ничего и нет?