Coder Social home page Coder Social logo

zeld / psa-update Goto Github PK

View Code? Open in Web Editor NEW
95.0 8.0 6.0 323 KB

CLI alternative to PSA (Peugeot / Citroën / DS / Opel) infotainment system update (NAC / RCC firmware and navigation maps), hopefully more robust.

License: The Unlicense

Rust 100.00%
psa peugeot citroen opel nac rcc rust cli ds

psa-update's Introduction

psa-update

CLI alternative to PSA (Peugeot / Citroën / DS / Opel) infotainment system update (NAC / RCC firmware and navigation maps), hopefully more robust.

Screenshot

psa-update offers mostly the same features as the official firmware/map update application proposed by the car vendor, except that it does not format the USB device that has to be used to upload the firmware/map update to the car. Updates are exclusively downloaded from the official PSA site.

Features:

  • Download of RCC / NAC firmware updates, and GPS navigation map updates (NAC only)
  • Resume of download in case of failure
  • Preparation of USB storage device for car system update
  • Lightweight self-contained executable that can run on multiple platforms: Windows, Linux, MacOS

Usage

The command line executable can be invoked in a terminal using vehicle VIN as a parameter:

$ psa-update <VIN>

This will check for available RCC or NAC updates, and interactively ask for download and extraction of the firmware update to a USB device.

To check for updates of both firmware and GPS navigation map (NAC only):

$ psa-update <VIN> --map eur

The list of available maps identifiers can be obtained using the help:

$ psa-update --help

The update and license files must be copied to an empty FAT32 USB drive, eiter using the tool or manually.

Once copied to the USB drive, the update can be applied on the infotainment system following PSA instructions. For example for Peugeot:

Requirements

On Linux, OpenSSL is required. On Windows and MacOS, nothing is required, the operating system TLS framework is used.

Install

Binaries are available for Windows (x86-64), Linux (x86-64) and MacOS (x86-64) in the releases section. To install, simply download and extract the psa-update executable. For other platforms the project can be built from source code (see below).

Build from source

To build and run from source code using stable rust compiler toolchain (version 1.54+):

$ git clone https://github.com/zeld/psa-update.git
$ cargo run

Proxy

Download is possible behind a proxy provided the http_proxy and https_proxy environment variables are correctly set. In a Linux or MacOS shell:

export http_proxy=<host>:<port>
export https_proxy=<host>:<port>

In a Windows CMD prompt:

SET http_proxy=<host>:<port>
SET https_proxy=<host>:<port>

Logging

Logging can be enabled using the RUST_LOG variable. For example to enable debug log level:

RUST_LOG="debug" ./psa-update

Credits

  • Inspired from the Linux script in this french forum post
  • For the list of navigation maps, and associated content, this french forum post
  • List of firmware and map updates on this site

psa-update's People

Contributors

zeld avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

psa-update's Issues

Cannot dowload update for C4 2021

Hello there!

I am sorry in advance if this is a wrong place to ask, as it might be a completely Citroen-side problem, but I have already tried updating in a dealership in my country (eastern Europe) and they were unable to do so but they say that the update exists.

I have been trying to update the firmware and navigation in my car, but for some reason both 'Citroen Update' app and psa-update CLI fail to find any update for my VIN.

  1. Citroen Update windows app (which was not very easy to find)

Screenshot (4)

  1. psa-update
*\psa-update-1.0.2-x86_64-pc-windows-msvc>psa-update VR7**************
Error: Device not found, make sure the VIN VR7************** is correct.
error: process didn't exit successfully: `target\debug\psa-update.exe` (exit code: 1)

// Slightly changed VIN to a lowercase letters just for fun

*\psa-update-1.0.2-x86_64-pc-windows-msvc>psa-update VR7**************
Error: Failed to retrieve device information, make sure the VIN VR7************** is correct.
error: process didn't exit successfully: `target\debug\psa-update.exe` (exit code: 1)

Here is the file I pulled from my car:

Package: ovip-int-firmware-version
Version: 42.03.31.32_NAC-r0
Status: install user installed
Architecture: armv7a
Installed-Time: 579

Package: map-eur
Version: 9.0.0-r0
Status: install ok half-installed
Architecture: armv7a

There is not much information on how to properly perform update without Citroen Update app or if it is worth doing.
I would really love to update firmware and maps.

Could you please help me to figure out:

  1. How to correctly check for the latest firmware and map versions?
  2. Is something wrong with the car VIN? Why Citroen Update says, it does not allow update for this vehicle?
  3. Is something wrong on Citroen side?
  4. Should I try contacting international Citroen support, as my dealership is useless?

Any insight on the issue is much appreciated!
Thanks in advance!

OpenSSL/libssl update

Hi, I recently run your program and got a "error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory".
Somehow my OS (Manjaro) dropped support for OpenSSL 1 in favour for OpenSSL 3, because some month ago it worked without problems. Luckily v1 is still in the repos, so I just had to install it again.
But maybe you should consider updateing to OpenSSL 3 too, because OpenSSL 1 is only supported till 11th September 2023.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.