Guide to Flashing the Panasonic Codefree Custom Firmware
UB420/424, UB820/824, UB9000/9004
As of: 21 Apr 2026 / Firmware 1.82 + Dark Theme V1.39 + Connect/USB fix
After a successful flash, any region code can be selected, external .SRT subtitles can be played from USB, PUO/UOP is partially disabled, the UB424 and UB824 gain the 350/500 nits function from the UB9004, and more.
Credits & Source: Credit for the firmware goes primarily to prodarek and Drecksoft on AVForums.
Windows users: All work is performed inside a virtual machine. To that end, Oracle VirtualBox is used to run a completely pre-configured Lubuntu Linux installation.
Linux users: No virtual machine is needed here; you can jump in directly at the download of the patch. Depending on your Linux distribution, installation of additional libraries is required — see the file 2_instructions.txt in the patch, point 1.
macOS users: VirtualBox is guaranteed to work up to and including macOS 12 Monterey. Since VirtualBox 7.1, Apple processors are supported; from 7.2 onward, macOS 13 Ventura is required.
The following instructions refer to use with Windows.
I. Preparation
1. The Panasonic player must be updated to the official firmware 1.82. This can be done via the built-in update function or manually via a FAT32 USB stick. If an older custom firmware is already installed, it will be overwritten automatically. After a successful update, automatic firmware updates should be turned off.
2. Note down the player's IP address under Setup > Player Settings > Network > Network Settings > IP Address / DNS Settings.
3. The player's Quick Start and Viera Link must be turned off. Setup > Player Settings > System > Quick Start / Viera Link > Off.
4. Discs or USB devices must be removed from the player.
5. A USB stick with at least 8 GB of capacity is required (4 GB might work). A fast USB 3 stick is recommended here.
6. Download and install VirtualBox.
(If not already present in Windows, the Visual C++ Redistributable may need to be downloaded and installed beforehand.)
7. Download and extract (WinRAR or 7-Zip) the Lubuntu Linux image (password: lulu): 3.11 GB file on MEGA
II. Creating and Flashing the Firmware
1. Start VirtualBox, use "Add" to open the extracted Lubuntu image (the file "lubuntu.vbox") and then start it.
2. If an error message prevents the VM from starting, virtualization is not enabled in your PC's UEFI/BIOS. This is called e.g. Intel Virtualization Technology, Intel VT, or AMD-V, depending on your motherboard manufacturer it can be found in a different location in the configuration.
3. Once the VM has started and the desktop has loaded, the patch package must also be downloaded inside the VM, due to permission inheritance. Lubuntu start menu > Internet > Firefox web browser: Patch-Program169-182.7z (or insert the link found there). [Mirror in the attachment of this post: Patch-Program169-182.zip]
4. Plug the USB stick into the PC. It must then be mounted at the top via the VM's top menu: Devices > USB > click the USB stick name (a checkmark appears next to it). A window "Open in File Manager" will open; confirm it.
5. In this window, navigate to lu > Downloads at the top, and right-click "Extract Here" on the "Patch-Program169-182.7z" you just downloaded. In the newly created folder of the same name, start the program "Patcher", confirm with "Execute" and accept the Software User Agreement.
6. In the Patcher, top right, select the USB stick under "Select USB Device", click "Create USB" and confirm the security warning. In the next authentication window, enter the password "lulu". Formatting the USB stick takes about 2–5 minutes (the progress stays at 0.00%) and ends with the message "Successfully wrote [ 3690.00 Mb ] to [ /dev/sdb ]."
7. Go back to the File Manager and click the eject icon next to the USB stick. Then unmount it via the VM's top menu by clicking it again under Devices > USB > USB stick name. You can now unplug the USB stick.
8. Now plug the prepared USB stick into the powered-off Panasonic player. Then turn the player on and wait until it has booted (the display shows Home).
9. In the Patcher program (if it was closed, simply reopen it), enter the player's IP address in the top left and click "Connect".
10. Now click the new "Exec Script" button at the top. The player's firmware is now written to the USB stick. Wait until "### ALL DONE ###" is reported.
11. Now turn the player off. Once the device has shut down safely, you can unplug the USB stick.
12. Plug the USB stick back into the PC, mount it again via the Lubuntu top menu and open the File Manager. In the upper partition "3.8 GB Volume" there are various folders and files such as "script.sh" and four "fma*.img" files (* = 4, 5, 6, 7).
This is also the ideal moment to back up the original firmware dump. Without the original files, no further patches/features can be applied to the currently installed firmware (see V. Dark Mode or VI. Feature Updates of the Patch). We therefore copy the four files fma4.img, fma5.img, fma6.img and fma7.img into a separate folder in Lubuntu. In an emergency, the original files of other people/players can be used.
Now we copy the path of our USB stick: At the top we see a grey-highlighted alphanumeric combination XXXX-XXXX — right-click on it and select "Copy Path".
13. We start QTerminal under Lubuntu start menu > System Tools > QTerminal. The following commands are always entered without quotation marks. Ideally, pasting the copied commands is done with CTRL+SHIFT+V (not with right-click).
14. In the new terminal window, type "cd", then a space, then paste the copied USB stick path with CTRL+SHIFT+V. The line now reads "cd /media/lu/XXXX-XXXX". Confirm with Enter.
15. Type "dir" and press Enter. If the files from before, such as "script.sh", appear, we are in the right place.
16. Not applicable / placeholder for optional additional patches.
(Currently only relevant for users who want to display Asian characters in subtitles — read the folder/instructions in the .7z file.)
17. Now enter:
sudo bash 2_patch.sh
Confirm with Enter. Enter the system password "lulu" (it will not be displayed) and confirm with Enter again. Creation takes a short moment and ends with "### ALL DONE ###".
18. As the final command, enter:
cp -f 3_write.sh script.sh
Confirm with Enter. The firmware is now fully prepared and QTerminal can simply be closed.
[Image: IMG_4803.webp]
19. In the File Manager, click Eject for the USB stick again and unmount via the top menu before unplugging the stick.
20. Now plug the USB stick into the powered-off Panasonic player and turn the player on.
21. Go back to the Patcher program, enter the IP address again, click "Connect" and then "Exec Script".
The Patcher now writes the new firmware to the player. The messages "Start writing /dev/fma4", "Start writing /dev/fma5", "Start writing /dev/fma7" follow.
The successful write operation ends with "### ALL DONE ###".
[Image: IMG_4804.webp]
22. Now turn the player off, ideally via the power button on the device itself. It may take a moment until all displays on the screen have gone out. We now unplug the power cable, remove the stick, and can meanwhile exit Lubuntu and the VM.
Now plug the power cable back in, wait briefly until the message on the display has disappeared, and start the player. We are greeted by the new home screen — and we are done!
[Image: IMG_4805.webp]
III. Codefree Settings / Key Combinations
In the Panasonic-Patcher folder you will find the file PanasonicCodefree.pdf with all key combinations.
First, we absolutely must enable the Advanced Features with:
OPT OPT OPT 9 1
The player now restarts. Now forced subtitles can be turned off, forced trailers can be skipped, etc. A complete "PUO off" for directly skipping forced messages is still work in progress.
The Codefree (region) setting is done with:
OPT OPT OPT DVD_REGION BD_REGION
i.e. DVD Region 1 and BD Region A would be:
OPT OPT OPT 1 1
IV. Playing External Subtitles
If your desired BD/UHD disc doesn't have suitable subtitles, they can now be supplied in the form of an .srt file with UTF-8 text. To do this, the subtitle file — which must be named exactly "sub.srt" — is placed on a FAT-formatted USB stick. The file must be in a folder called "sub": sub\sub.srt.
V. Adding Dark Mode Afterwards
To add Dark Mode to an already flashed player, the following steps are needed:
1. If you don't have one yet, create a new USB stick with the Patcher (cf. II.6.). It may be necessary to unmount the stick, unplug it, plug it back in and mount it again.
2. Download the Dark Mode Patch: the file in the attachment of this post: patcher_overlay_V1.39.zip
3. Extract the patch and copy its contents to the USB stick, overwriting the reported files. A configuration can be made via 0_setup.ini.
4. Copy our backed-up 4 fma*.img files of the original firmware into the folder on the stick.
5. In QTerminal, mount the path to the stick again and run the familiar sudo command again:
cd /media/lu/XXXX-XXXX sudo bash 2_patch.sh
6. Now put the finished stick back into the player, connect with the Patcher and run the script. The process has now been split into two steps. In Stage 1, fma 4 5 6 are written, which takes only a few seconds.
7. Now bring the stick back into Lubuntu the usual way and open 0_setup.ini on the stick. Change STAGE=1 to STAGE=2 here and save. Then put it back into the player and connect. Now fma 7 is written.
VI. Feature Updates of the Patch
Not yet available at the moment: If a feature update or a new optional patch within firmware 1.82 is to be applied, reading out the firmware (steps 7–11) must be skipped. We then download the potential new patcher package, create a fresh USB stick again, and copy our backed-up 4 fma*.img files of the original firmware into the folder on the stick, before we continue with step 12 and QTerminal. The modified firmware must not be patched a second time (brick danger!), which is why the backup is so important.
VII. Resetting the Used USB Stick
If the USB stick is to be used conventionally again, it must first be freed from the two partitions and formatted anew. In Windows it is initially not visible, but can be found under Computer Management > Storage > Disk Management. With right-click > Delete Volume, the 100 MB partition and the 3.50 GB partition are removed. What remains is an unallocated block, which can be formatted again and assigned a drive letter via right-click > New Simple Volume.
VIII. Problems Mounting / Recognizing the USB Stick in the VM or the Player
A few users had problems being unable to read out the firmware with the sticks they created. The Patcher reported "Failed to connect to the ip xxx.xxx.xxx.xxx - Could not connect to the player". Others reported that the created USB sticks were no longer recognized in the VM, despite correct unmounting and mounting. The solution for this is an alternative file:
1. Download the file drive.img.gz
2. In Lubuntu, place this file in the "Patch-Program169-182/res/" folder of the extracted Patcher and overwrite the existing file.
3. Create a new stick with the Patcher. This also works noticeably faster now, and the partition is about 1 GB instead of 3.5 GB.
Postscript:
If no connection can be established even with this new file, various users had success with the following options:
- Try other USB 3 sticks
- Try a USB 2.0 stick
- Perform the creation of the USB stick on Windows 10 instead of Windows 11