List PSP product codes, user agent strings, software version headers #14

Open
opened 2019-11-24 23:39:04 +00:00 by lucidiot · 2 comments
Owner

PSPs leak three types of info in their HTTP request headers; here's an example from my PSP-3000

User-Agent: Mozilla/4.0 (PSP (PlayStation Portable); 2.00)
x-psp-browser: 6.60 (LX; system=6.60)
x-psp-productcode: CEL

I found this forum topic where I will scrape all given product codes to get a non-exhaustive-yet-not-that-bad list of product codes, user agent strings and browser/firmware versions.

PSPs leak three types of info in their HTTP request headers; here's an example from my PSP-3000 ``` User-Agent: Mozilla/4.0 (PSP (PlayStation Portable); 2.00) x-psp-browser: 6.60 (LX; system=6.60) x-psp-productcode: CEL ``` I found [this forum topic](http://pspradio.co.uk/forums/ubbthreads.php?ubb=showflat&Number=280) where I will scrape all given product codes to get a non-exhaustive-yet-not-that-bad list of product codes, user agent strings and browser/firmware versions.
Author
Owner

Grepped product codes from the above forum topic:

  • CEL (Europe)
  • CEK (UK)
  • AU3 (Australia / NZ)
  • E12 (South Asia)
  • J1 (Japan)
  • LP2
  • MX2 (Mexico)
  • UC2 (USA)

The PS3 dev wiki has a page listing PS3 target IDs, with extra region codes:

  • HK5 (Hong Kong)
  • BR2 (Brazil)
  • CN9 (China)
  • RU3 (Russia)
  • TW1 (Taiwan)
  • KR2 (Korea)
  • DEX, QABDP, DTCPIPDEVDEX (development/testing boards)
  • TOOL ("Reference Tool" or system debugger)

Grepping through the topic some more, it turns out the only known User-Agent is Mozilla/4.0 (PSP (PlayStation Portable); 2.00).

As for the x-psp-browser header, they match a (.+) (([A-Z]{2}); system=(.+)) regex: official firmware versions would match the stricter ([0-9.]+) (([A-Z]{2}); system=1) regex. I could not find much info about the two-character code in the middle, mine is LX, and I only found SX and FW in this topic.

TODO:


Validated codes:

  • Europe division (e)
    • CEL (Europe)
    • CEK (UK)
    • AU3 (Australia / NZ)
    • RU3 (Russia)
  • America division (a)
    • MX2 (Mexico)
    • UC2 (USA)
  • Japan division (j)
    • J1 (Japan)
  • Asia division (as)
    • E12 (South Asia)
    • TW1 (Taiwan)
    • KR2 (Korea)

This guide explains the headers in detail:

The two-character code has three official values:

  • LX: Launched from the XMB (opened the Web Browser icon)
  • SX: Started from an application on the XMB (ex. Internet Radio)
  • LU: Started from an application on a UMD or Memory Stick (a game)

The system=6.60 is there to differenciate the browser's version and the system's version.

An additional header is present when in SX or LU mode, x-psp-application. Only one example is given without much specific syntax, so this may need some experimenting.

Grepped product codes from the above forum topic: * `CEL` (Europe) * `CEK` (UK) * `AU3` (Australia / NZ) * `E12` (South Asia) * `J1` (Japan) * `LP2` * `MX2` (Mexico) * `UC2` (USA) [The PS3 dev wiki](https://psdevwiki.com) has [a page](https://psdevwiki.com/ps3/Target_ID) listing PS3 target IDs, with extra region codes: * `HK5` (Hong Kong) * `BR2` (Brazil) * `CN9` (China) * `RU3` (Russia) * `TW1` (Taiwan) * `KR2` (Korea) * `DEX`, `QABDP`, `DTCPIPDEVDEX` (development/testing boards) * `TOOL` ("Reference Tool" or system debugger) Grepping through the topic some more, it turns out the only known User-Agent is `Mozilla/4.0 (PSP (PlayStation Portable); 2.00)`. As for the `x-psp-browser` header, they match a `(.+) (([A-Z]{2}); system=(.+))` regex: official firmware versions would match the stricter `([0-9.]+) (([A-Z]{2}); system=1)` regex. I could not find much info about the two-character code in the middle, mine is `LX`, and I only found `SX` and `FW` in this topic. TODO: - [x] Test those codes with the Information Board's country selection #8 - [ ] Test those codes with SensMe's downloader (https://www.playstation.com/psp-app/sensme/getPackage.php) #1 --------------------------------------------- Validated codes: * Europe division (`e`) * `CEL` (Europe) * `CEK` (UK) * `AU3` (Australia / NZ) * `RU3` (Russia) * America division (`a`) * `MX2` (Mexico) * `UC2` (USA) * Japan division (`j`) * `J1` (Japan) * Asia division (`as`) * `E12` (South Asia) * `TW1` (Taiwan) * `KR2` (Korea) [This guide](http://us.playstation.com/pscomauth/groups/public/documents/webasset/ps_contentguidelines_pp.pdf) explains the headers in detail: The two-character code has three official values: * `LX`: Launched from the XMB (opened the Web Browser icon) * `SX`: Started from an application on the XMB (ex. Internet Radio) * `LU`: Started from an application on a UMD or Memory Stick (a game) The `system=6.60` is there to differenciate the browser's version and the system's version. An additional header is present when in `SX` or `LU` mode, `x-psp-application`. Only one example is given without much specific syntax, so this may need some experimenting.
lucidiot self-assigned this 2019-11-25 07:47:13 +00:00
Author
Owner

Note: The Internet Radio SDK documentation includes a method that allows using any user agent when accessing radio streams, because some stream servers will detect Mozilla in the user agents and serve an HTML statistics page instead of the actual stream.

Note: The [Internet Radio SDK](https://free01.thegood.cloud/s/2WbjBaQqFwopARp) documentation includes a method that allows using any user agent when accessing radio streams, because some stream servers will detect `Mozilla` in the user agents and serve an HTML statistics page instead of the actual stream.
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: lucidiot/psp-research#14
No description provided.