# iCopy-X v1.1.5 Released

> Firmware v1.1.5 for the open-source iCopy-X updates the Proxmark client to v4.23346, fixes the real-time clock write path and boot-time clock sync, adds a Simplified Chinese language pack, extends translation to plugin screens with per-plugin language packs, and stops plugin button labels drawing twice.

_2026-09-20_

Firmware **v1.1.5** is out for the open-source [iCopy-X](https://github.com/lab-401/icopy-x), with work from [Vost02](https://github.com/Vost02) and [quantum-x](https://github.com/quantum-x). The release updates the bundled Proxmark client, fixes the real-time clock so the device keeps and reports the correct time, adds Simplified Chinese, and extends translation coverage from the core UI into plugin screens. Grab it from the [v1.1.5 release page](https://github.com/lab-401/icopy-x/releases/tag/v1.1.5).

## Notable changes

### Proxmark client
- Bumped the Proxmark client to [v4.23346](https://github.com/RfidResearchGroup/proxmark3/releases/tag/v4.23346).

### Localisation
- Added a Simplified Chinese (`zh`) language pack covering every key in the English pack, using the bundled CJK font.
- Added plugin translation, with each plugin shipping its own `lang/<code>.json` pack and falling back to the core pack and then to English.
- Added French, Chinese and English packs for all fourteen bundled plugins (329 strings), including messages that plugins compose at runtime.
- Added twenty shared soft-key labels (Again, Confirm, Menu, Next, Prev, Done, Exit, Select, Skip, Continue, Load, Set, Add, Add More, Clone, Detect, Recover, Backup, Single, Range) to the core packs so plugins need no per-plugin entry for them.
- Added `tools/plugin_i18n.py` with `extract`, `fill` and `check` commands for scaffolding and verifying plugin packs, with `check` run over the bundled plugins in the test suite.
- Fixed the Plugins submenu title staying in English by taking it from the existing `plugins` resource key.
- Changed the plugins menu and promoted main-menu entries to show localised plugin names and to re-localise on resume.

### Quality of Life
- Fixed the RTC write protocol, so saving in Time Settings now sends the GD32 `giveyoutime` frame and actually updates the clock.
- Added a boot-time read of the GD32 RTC that sets the Linux system clock, replacing the fixed 2016-02-11 start date and correcting recorded file timestamps.
- Changed `rtc_sync` to log failures through the logger instead of writing a file to the user partition, with the boot call guarded so a failure cannot stop the app starting.
- Fixed plugin button labels being drawn twice on `ui.json`-driven screens by leaving the button bar to the framework.
- Fixed inactive plugin buttons being painted over as active, so a button marked inactive now renders dimmed and its key is gated.
