JLR Pathfinder Offline

Приветствую, вот это видели? Может там есть что-то интересное
https://github.com/AVL-DiTEST-DiagDev

Обновления блоков лежат локально. Пробовал ручками посмотреть на DSFM - не отдает. Как минимум те, что пробовал. Онлайн качает только CCF. Он нужен, чтобы PF тестировал только блоки, установленные на машину с этим VINом. Если не починен онлайн - то не будет качать CCF. Как чинить уже писал. Берем урлы DSFM сервера и прописываем их ручками в jlr-ngs.ini. Достаточно, думаю, только одного "dsfm.download.uri". Но можно и "dsfm.upload.uri" заодно. В исходных uri меняем http на https. Но работать не будет, поскольку серверу нужно TLS 1.3, а прога не поддерживает искаропки. Нужно немного поправить, чтобы стала поддерживать. Все же писал, подсказка - в логах. Немного поковырять софт и платить за патч не нужно. Что именно продают - честно говоря даже не в курсе.

Обновлял Gateway на Веларе 22 года. Все прошло успешно оффлайн. Гарантии, что это прямо последняя и актуальная версия прошивок - нет. Для последних без клауда не обойтись, думаю. Хотя это не точно. Также грузил as-built CCF - но тут без онлайна не работает, с онлайном - все хорошо, все прописывает. Если есть соответствующий адаптер и возможность оплатить доступ к клауду - лучше воспользоваться актуальным софтом. Хотя, как пример, для X540 2020 года актуальный софт PF. Потому как Топикс Клауд хочет видеть машину 21 года и новее.
 
Кто-нибудь настраивал PF для работы с ENET кабелем?
Я установил Softing d-pdu драйвера и PF увидел виртуальный интерфейс

pf-0.png
 
  • Like
Реакции: Slavajawa
Кто-нибудь настраивал PF для работы с ENET кабелем?
Я установил Softing d-pdu драйвера и PF увидел виртуальный интерфейс

Посмотреть вложение 7562


При старте PF, а также при запросе VIN в wireshark видны DoIP запросы, но т.к. ответной части(автомобиль) нет, то и ответов нет.
Кто-нибудь знает какие IP адреса используются у JLR автомобилей?

ws.png
 
При старте PF, а также при запросе VIN в wireshark видны DoIP запросы, но т.к. ответной части(автомобиль) нет, то и ответов нет.
Кто-нибудь знает какие IP адреса используются у JLR автомобилей?

Посмотреть вложение 7565

Попробую DoIP эмулятор запустить вместо реального автомобиля, этот эмулятор судя по названию AVL-DiTEST похоже та же контора делала что и PF
https://github.com/AVL-DiTEST-DiagDev
 
  • Like
Реакции: Slavajawa и Samik
Попробую DoIP эмулятор запустить вместо реального автомобиля, этот эмулятор судя по названию AVL-DiTEST похоже та же контора делала что и PF
https://github.com/AVL-DiTEST-DiagDev

При запуске эмулятора DoIP обмен между эмулятором и d-pdu библиотекой (Softing 11.26.122) происходит, это видно в wireshark.
Далее при запуске PF, когда PF запрашивает VIN из авто через CAN, d-pdu либа выдает ошибку: License check failed
[ 0|23:53:04.183| 2476] -> PDUCreateComLogicalLink [00000001 ] *pRscData={bustype=1(ISO_11898_2_DWCAN), protocol=287(ISO_14229_3_on_ISO_15765_2), pin
s=6:4097(HI) 14:4098(LOW)}, resourceId=0xFFFFFFFE, pCllTag=0x00000000, phCLL=0x4952F990, *CllCreateFlag=NULL
[ 0|23:53:04.183| 2476] LI [ ] CreateLink: module=DoIP_Vehicle
[ 0|23:53:04.183| 2476] ER [ ] PDUCreateComLogicalLink error: License check failed, function aborting.
[ 0|23:53:04.183| 2476] <- PDUCreateComLogicalLink [ ] ret=PDU_ERR_FCT_FAILED
[ 47|23:53:04.224| 2476] -> PDUGetObjectId [ ] pduObjectType=PDU_OBJT_BUSTYPE, pShortname="ISO_11898_2_DWCAN", pPduObjectId=0x4952F9B
0
 
  • Like
Реакции: Sergeaudi
При запуске эмулятора DoIP обмен между эмулятором и d-pdu библиотекой (Softing 11.26.122) происходит, это видно в wireshark.
Далее при запуске PF, когда PF запрашивает VIN из авто через CAN, d-pdu либа выдает ошибку: License check failed

А при использовании d-pdu либы Softing 1.20.042 происходит исключение в либе и PF вcтает раком )

Yes, that workaround works for ODIS-E.

Работает на ней online geco?
It works.
 
А d-pdu либа BMGDPMUNITY.dll (BernerMattner) возвращает пустой список модулей, это видно в трассировке: NumEntries=0
20 Aug 25 | 23:14:39.140 |584| INFO | *->DLL: PDUConstruct OptionStr=NULL
20 Aug 25 | 23:14:39.196 |584| INFO | *<-DLL: PDUConstruct function call successful
20 Aug 25 | 23:14:39.202 |584| INFO | *->DLL: PDUGetModuleIds - ModuleIdList(pp0028FB50)
20 Aug 25 | 23:14:39.202 |584| INFO | *<-DLL: PDUGetModuleIds successful, ModuleIdList(pp0028FB50) NumEntries=0
20 Aug 25 | 23:14:39.212 |584| INFO | *->DLL: PDUDestroyItem - Module ID Item(p006D6378)
20 Aug 25 | 23:14:39.215 |584| INFO | *<-DLL: PDUDestroyItem successful, Item(7168888)

А что делает DTC Monaco? Перед получением списка модулей делает вызов PDU_IOCTL_VEHICLE_ID_REQUEST, и это приводит к запросам по DoIP и происходит опрос подключенных авто в сети, в итоге определяется авто, и возвращается список из одного модуля: NumEntries=1
21 Aug 25 | 00:05:20.169 |2820| INFO | *->DLL: PDUConstruct OptionStr=
21 Aug 25 | 00:05:20.209 |2820| INFO | *<-DLL: PDUConstruct function call successful
21 Aug 25 | 00:05:20.210 |2820| INFO | *->DLL: PDUGetObjectId - pduObjectType=0x8023,pShortname=PDU_IOCTL_REGISTER_APP2
21 Aug 25 | 00:05:20.210 |2820| INFO | *<-DLL: PDUGetObjectId successful PduObjectId=4294967294
21 Aug 25 | 00:05:20.210 |2820| INFO | *->DLL: PDUGetObjectId - pduObjectType=0x8023,pShortname=PDU_IOCTL_REGISTER_APP
21 Aug 25 | 00:05:20.210 |2820| INFO | *<-DLL: PDUGetObjectId successful PduObjectId=4294967294
21 Aug 25 | 00:05:20.210 |2820| INFO | *->DLL: PDUGetObjectId - pduObjectType=0x8023,pShortname=PDU_IOCTL_VEHICLE_ID_REQUEST
21 Aug 25 | 00:05:20.211 |2820| INFO | *<-DLL: PDUGetObjectId successful PduObjectId=822
21 Aug 25 | 00:05:20.211 |2820| INFO | *->DLL: PDUIoCtl - hMod=4294967295,hCLL=4294967295,IoCtlCommandId=822(PDU_IOCTL_VEHICLE_ID_REQUEST)
21 Aug 25 | 00:05:21.214 |2820| INFO | *<-DLL: PDUIoCtl successful,hMod=4294967295,hCLL=4294967295
21 Aug 25 | 00:05:21.214 |2820| INFO | *->DLL: PDUGetModuleIds - ModuleIdList(pp042BFB90)
21 Aug 25 | 00:05:21.214 |2820| INFO | *<-DLL: PDUGetModuleIds successful, ModuleIdList(pp042BFB90) NumEntries=1
21 Aug 25 | 00:05:21.214 |2820| INFO | [1] hMod=3,TypeId=502,Status=0x8063
21 Aug 25 | 00:05:21.214 |2820| INFO | - VMN(s): MAC='000000000000' LGA='0028' VIN='53414c474132424b304b41353434393737' GID='000000000000'
21 Aug 25 | 00:05:21.214 |2820| INFO | - VAI(s): IP='192.168.100.43'

Видно, что вин определился правильно SALGA2BK0KA544977

Порешать проблему с получением списка автомобилей(модулей) через библиотеку BMGDPMUNITY.dll (BernerMattner) можно сделав библиотеку прокси, в которой получение списка модулей будет внутри PDUConstruct, т.к. то что делает DTS Monaco с вызовом PDU_IOCTL_VEHICLE_ID_REQUEST - это лисапед, и PF так не делает, а может даже и не умеет, т.к. это не по стандарту.

Если фокус с прокси либой получится, то PF должен увидеть авто и будет далее работать с этой либой

Еще из приколов этой либы BMGDPMUNITY.dll (BernerMattner) она не хочет работать с версий 2 протокола DoIP, поэтому в эмуляторе переключил на 1 версию
20 Aug 25 | 22:59:38.024 |2068| INFO | [DoIP]| ServiceHandler::SendRequest - Sending UDP data ok,SrcIPAddr=,DestIPAddr=255.255.255.255,DestPort=13400,UniqueId=0,PT=0x1,PDLe
n=0
20 Aug 25 | 22:59:38.024 |2068| INFO | [DoIP-AL]| SendVIRequest (<-)SendUDPRequest successful
20 Aug 25 | 22:59:38.024 |3616| WARN | [DoIP]| PayloadDataInfoHeader::isSupportedDoIPVersion - DoIP Version(0x02) not supported!
 
После того как сделал прокси(shim) либу для библиотеки BMGDPMUNITY.dll PF увидел этот интерфейс

shim.png


Но ВИН PF запрашивает через CAN, которого естественно нет )
В принципе в прокси либе можно запоминать ВИН, который был получен в момент DoIP запроса, и затем отдавать этот ВИН типа через кан - для этого в прокси либе надо эмулировать минимальное взаимодействие по кан
21 Aug 25 | 20:35:31.775 |3316| INFO | *->DLL: PDUGetObjectId - pduObjectType=0x8022,pShortname=ISO_11898_2_DWCAN
21 Aug 25 | 20:35:31.775 |3316| TRACE | CommandHandler::GetObjectId pduObjectType(32802),pShortname=ISO_11898_2_DWCAN
21 Aug 25 | 20:35:31.775 |3316| INFO | *<-DLL: PDUGetObjectId successful PduObjectId=4294967294
21 Aug 25 | 20:35:31.776 |3316| INFO | *->DLL: PDUGetObjectId - pduObjectType=0x8021,pShortname=ISO_14229_3_on_ISO_15765_2
21 Aug 25 | 20:35:31.776 |3316| TRACE | CommandHandler::GetObjectId pduObjectType(32801),pShortname=ISO_14229_3_on_ISO_15765_2
21 Aug 25 | 20:35:31.776 |3316| INFO | *<-DLL: PDUGetObjectId successful PduObjectId=4294967294
21 Aug 25 | 20:35:31.776 |3316| INFO | *->DLL: PDUGetObjectId - pduObjectType=0x8021,pShortname=ISO_15765_3_on_ISO_15765_2
21 Aug 25 | 20:35:31.776 |3316| TRACE | CommandHandler::GetObjectId pduObjectType(32801),pShortname=ISO_15765_3_on_ISO_15765_2
21 Aug 25 | 20:35:31.777 |3316| INFO | *<-DLL: PDUGetObjectId successful PduObjectId=4294967294
21 Aug 25 | 20:35:31.777 |3316| INFO | *->DLL: PDUGetObjectId - pduObjectType=0x8025,pShortname=HI
21 Aug 25 | 20:35:31.777 |3316| TRACE | CommandHandler::GetObjectId pduObjectType(32805),pShortname=HI
21 Aug 25 | 20:35:31.777 |3316| INFO | *<-DLL: PDUGetObjectId successful PduObjectId=4294967294
21 Aug 25 | 20:35:31.778 |3316| INFO | *->DLL: PDUGetObjectId - pduObjectType=0x8025,pShortname=LOW
21 Aug 25 | 20:35:31.778 |3316| TRACE | CommandHandler::GetObjectId pduObjectType(32805),pShortname=LOW
21 Aug 25 | 20:35:31.778 |3316| INFO | *<-DLL: PDUGetObjectId successful PduObjectId=4294967294
21 Aug 25 | 20:35:31.779 |3316| INFO | *->DLL: PDUCreateComLogicalLink - hMod=3,BusTypeId=4294967294,ProtocolId=4294967294,NumPinData=2,ResourceId=4294967294
21 Aug 25 | 20:35:31.779 |3316| TRACE | CommandHandler::CreateComLogicalLink - begin,hMod=3,resourceId=4294967294
21 Aug 25 | 20:35:31.779 |3316| TRACE | ComLinkHandler::ExistMod - hMod exists, hMod=3
21 Aug 25 | 20:35:31.779 |3316| TRACE | ComLinkHandler::GetStatus hMod=3,hCLL=4294967295,Status=0x8060(PDU_MODST_READY)
21 Aug 25 | 20:35:31.779 |3316| ERROR | CommandHandler::CreateComLogicalLink - invalid resource ID,hMod=3,resourceId=-2
21 Aug 25 | 20:35:31.779 |3316| ERROR | *<-DLL: PDUCreateComLogicalLink failed, Invalid(NULL) phCLL, pCllCreateFlag or wrong resource ID,hMod=3

Но ВИН PF запрашивает через CAN, которого естественно нет )
В принципе в прокси либе можно запоминать ВИН, который был получен в момент DoIP запроса, и затем отдавать этот ВИН типа через кан - для этого в прокси либе надо эмулировать минимальное взаимодействие по кан

также в прокси либе можно сделать эмуляцию измерения напряжения и всегда отдавать 13 Вольт, а то PF постоянно мониторит напряжение, но в ответ получает ошибки

1 Aug 25 | 20:35:30.574 |3528| INFO | *->DLL: PDUGetObjectId - pduObjectType=0x8023,pShortname=PDU_IOCTL_READ_VBATT
21 Aug 25 | 20:35:30.574 |3528| TRACE | CommandHandler::GetObjectId pduObjectType(32803),pShortname=PDU_IOCTL_READ_VBATT
21 Aug 25 | 20:35:30.574 |3528| INFO | *<-DLL: PDUGetObjectId successful PduObjectId=4294967294
21 Aug 25 | 20:35:30.576 |3528| INFO | *->DLL: PDUIoCtl - hMod=3,hCLL=4294967295,IoCtlCommandId=4294967294(UNKNOWN)
21 Aug 25 | 20:35:30.576 |3528| TRACE | CommandHandler::IoCtl hMod=3,hCLL=4294967295,IoCtlCommandId=4294967294
21 Aug 25 | 20:35:30.576 |3528| TRACE | ComLinkHandler::GetStatus hMod=3,hCLL=4294967295,Status=0x8060(PDU_MODST_READY)
21 Aug 25 | 20:35:30.576 |3528| ERROR | *<-DLL: PDUIoCtl failed, ID of I/O control not supported by this MVCI Protocol Module,hMod=3,hCLL=4294967295
21 Aug 25 | 20:35:31.581 |3528| INFO | *->DLL: PDUGetObjectId - pduObjectType=0x8023,pShortname=PDU_IOCTL_READ_VBATT
21 Aug 25 | 20:35:31.581 |3528| TRACE | CommandHandler::GetObjectId pduObjectType(32803),pShortname=PDU_IOCTL_READ_VBATT
21 Aug 25 | 20:35:31.581 |3528| INFO | *<-DLL: PDUGetObjectId successful PduObjectId=4294967294
21 Aug 25 | 20:35:31.582 |3528| INFO | *->DLL: PDUIoCtl - hMod=3,hCLL=4294967295,IoCtlCommandId=4294967294(UNKNOWN)
21 Aug 25 | 20:35:31.582 |3528| TRACE | CommandHandler::IoCtl hMod=3,hCLL=4294967295,IoCtlCommandId=4294967294
21 Aug 25 | 20:35:31.582 |3528| TRACE | ComLinkHandler::GetStatus hMod=3,hCLL=4294967295,Status=0x8060(PDU_MODST_READY)
21 Aug 25 | 20:35:31.582 |3528| ERROR | *<-DLL: PDUIoCtl failed, ID of I/O control not supported by this MVCI Protocol Module,hMod=3,hCLL=4294967295

А напряжение это критичный показатель без нее PF в сервисных функциях ошибки выдает

b.png
 
После добавления в прокси либу эмуляции измерения напряжения(PDU_IOCTL_READ_VBATT) PF показывает 12.5 Вольт

pf.png


Далее PF захотел узнать куда подключены выводы ethernet ножек и управлять переключением выводов
21 Aug 25 | 20:50:26.522 |628| INFO | *->DLL: PDUGetObjectId - pduObjectType=0x8023,pShortname=PDU_IOCTL_GET_ETH_PIN_OPTION
21 Aug 25 | 20:50:26.522 |628| TRACE | CommandHandler::GetObjectId pduObjectType(32803),pShortname=PDU_IOCTL_GET_ETH_PIN_OPTION
21 Aug 25 | 20:50:26.522 |628| INFO | *<-DLL: PDUGetObjectId successful PduObjectId=4294967294
21 Aug 25 | 20:50:26.523 |628| INFO | *->DLL: PDUIoCtl - hMod=3,hCLL=4294967295,IoCtlCommandId=4294967294(UNKNOWN)
21 Aug 25 | 20:50:26.523 |628| TRACE | CommandHandler::IoCtl hMod=3,hCLL=4294967295,IoCtlCommandId=4294967294
21 Aug 25 | 20:50:26.523 |628| TRACE | ComLinkHandler::GetStatus hMod=3,hCLL=4294967295,Status=0x8060(PDU_MODST_READY)
21 Aug 25 | 20:50:26.523 |628| ERROR | *<-DLL: PDUIoCtl failed, ID of I/O control not supported by this MVCI Protocol Module,hMod=3,hCLL=4294967295
 
  • Like
Реакции: Konucci
Здравствуйте! Подскажите, пожалуйста, при попытке загрузить в машину измененный ccf, получаю такую ошибку, как решить?
 

Вложения

  • IMG_5858.jpg
    IMG_5858.jpg
    2,1 МБ · Просмотры: 43
После добавления в прокси либу эмуляции измерения напряжения(PDU_IOCTL_READ_VBATT) PF показывает 12.5 Вольт

Посмотреть вложение 7602

Далее PF захотел узнать куда подключены выводы ethernet ножек и управлять переключением выводов
Вобщем ноут на котором эксперименты ставили кабелем про который в телеге говорил с дохлым акумом лежит в серваке. На днях заберу и попробую выдернуть оттуда всю инфу
 
При старте PF, а также при запросе VIN в wireshark видны DoIP запросы, но т.к. ответной части(автомобиль) нет, то и ответов нет.
Кто-нибудь знает какие IP адреса используются у JLR автомобилей?

Посмотреть вложение 7565
Цеплятся к машине и ваиршарком эхо слушать в ответ на широковещательный шторм))))
 
Hi guys! Sorry for english. I did a drivers for Cardaq3 plus J2534. You may use it for any cables just edit a little bit
 

Вложения

Вот упрощенная версия патча онлайн доступа для тех, кто не хочет утруждаться. Правда возникает вопрос - зачем оно тогда надо? Проще в сервис съездить, где сделают с нулевыми трудозатратами со стороны владельца.

PS. Для Windows 11 добавляем в конфиг jlr-ngs.ini строку -Dorg.osgi.framework.os.name=win32

Не для продажи! Не публикуйте на сторонних ресурсах! Только для личного пользования!
Все встало но к серверам не подключается

Постоянно идет как бы поиск сервера
 
сервера DSFM не работает несколько дней. как и вход в TOPix.