CheMaRy Web Page

Electronics, DIY, programming and more…

Category Archives: Programming

Huawei Honor Pocket Printer CV80 China Version to International

I purchased the Huawei Honor Pocket Printer model CV80 from Aliexpress on late 2019 but I didn’t tested until 2021, I was unable to sync it with my Android device using the Huawei Printer app from Google Play, then I tried to scan the QR code on the manual and downloaded the Chinese version of the app, with this version the printer can be discovered and prints correctly.

I seems Huawei as it does with mobile phones and other products has two firmware versions one for Chinese market and other for international buyers. Physically the versions differs only in the color of the front panel and on the name on top, for international units it’s “HONOR” while for Chinse units it’s “HUAWEI”. I got the Chinese version and it’s not supported by the Google Play HUAWEI Printer app.

I couldn’t find how to flash the International firmware on the Chinese printer so I tried another approach to have an app I could understand.

Using the International App with Chinese printer

I followed this tutorial to extract the code from the .apk files and I compared the Chinese version with the International one, the Chinese version seems more updated, but most of the code is the same, then I got two options:

  1. Change the resource files on the Chinese version to translate the strings
  2. Discover why International version doesn’t find the Bluetooth device.

Changing the language resources seems time consuming as the Chinese version has more strings and I have to find the corresponding string in the English file or translate the missing ones, so I decided to start by investigating why International version can not find the Bluetooth printer.

I guessed that somewhere the program was filtering the discovered Bluetooth devices either by name or by MAC address, and after some digging I found what I was looking for, luckily the code contains some debug strings that simplifies guessing what it does:

International version, class "com.huawei.cv80.printer_huawei.abroad.ui.connection.BleScanActivity"
Chinese version, class "com.huawei.av80.printer_honor.ui.connection.BleScanActivity"

This code filters by device name, on Chinese version Bluetooth device name has the format “HONOR Printer-9999” and International version uses “HUAWEI Printer-9999”, so I changed the strings on the BleScanActivity.smali and rebuilt and signed the .apk . After accepting the security alerts about using a self signed apk the app was installed successful and now the international version can discover the device and everything works as expected.

International version didn’t found any update, but I was able to update my device with the Chinese version and the help of Google Translate.