[APP][Android 4.4+][iOS 9.0+] XVacuum Firmware (Xiaomi Vacuum - Roborock v1/v2/v3)

Search This thread

.//Hack

Member
Mar 4, 2011
39
57
XVacuum Firmware

Flashing firmwares and sound packages from your smartphone (Android and iOS)
Roborock v1/v2(S50/51/55), T6, S6, 1S, T7, Q7 are supported.

The first and second generations have common language packs. The third (T6, S6, 1S) has its own packs.

Android:
(only pkg is supported, neither 7z, nor zip, nor rar but only pkg in the unarchived view; as for sound packages, be aware that wav-files in an archive isn't a pkg-package). These packages should be opened only from the internal storage (/sdcard). It will better if you place packages into root folder. Also avoid any special characters in file names, as the robot isn't able to download such files.

iOS:
Firmwares and sound packages must be placed in Documents folder of the application by iTunes (Shared Files section), iTools, iFunbox or other similar applications. (only pkg is supported, neither 7z, nor zip, nor rar but only pkg in the unarchived view; as for sound packages, be aware that wav-files in an archive isn't a pkg-package). Also avoid any special characters in file names, as the robot isn't able to download such files.

At the moment, there are two ways (see below):
  1. Without Wi-Fi reset of the robot (you need to get the token by any available ways).
  2. With Wi-Fi reset (the application will get the token by itself)


The instruction without Wi-Fi reset (you need to get the token by any available ways):
  1. Launch the application.
  2. Click the menu and then Settings.
  3. Fill the IP and token of the robot.
  4. Click the "Save" button.
  5. The application will ask you to restart the application for applying the settings, kill the application:
    • Android: double click to "Back" button or click "Exit" from the menu.
    • iOS: double click to "Home" button and swipe up the application to kill it.
  6. Launch my program again. The program is written for "blondies": there is almost no way to make mistakes. It consists of two buttons (firmware and sound), and that's all. An "About" menu is also available should you want to know more about me and contribute to the project.
  7. The buttons will be inactive until the program has established connection with the robot and received a status.
  8. As soon as the status have arrived, the buttons become active and you can start flashing the robot.
  9. Choose a firmware or sound package.
  10. Notice the log under the buttons and rejoice at the quick and easy flashing.

If you got an error:
  • "timeout: Could not connect to the vacuum, handshake is timeout", it means that you filled the invalid IP of the robot.
  • "timeout: Call to the vacuum timed out" after 50 tries to get the status, it means that you filled the invalid token.
  • "timeout: Call to the vacuum timed out" after 50 tries of flashing a firmware, it means that your cleaner doesn't support local updates (it was blocked 4004 and higher for the first generation, 1910 and higher for the second generation, the third generation was blocked always). The first and second generation can be reseted to the factory firmware if it is below 4004 for the first generation, below 1910 for the second generation. https://support.roborock.com/hc/en-us/articles/360035372632-How-to-reset-Roborock-to-factory-default


The instruction with Wi-Fi reset (the application will get the token by itself):
  1. You need to reset the Wi-Fi settings of the robot to use this program (you will need to add the robot to MiHome again after all processing is complete).
    1. For the first version: press the "Home" and "Power" buttons simultaneously within 3 seconds.
    2. For the second version: press the "Spot Clean" and "Home" buttons within 3 seconds.
  2. Your robot should say that Wi-Fi is reset and a new access point should appear in your smartphone. Connect to it.
  3. Disable your mobile internet because some phones ignore Wi-Fi unless it provides an internet connection.
  4. Launch my program. The program is written for "blondies": there is almost no way to make mistakes. It consists of two buttons (firmware and sound), and that's all. An "About" menu is also available should you want to know more about me and contribute to the project.
  5. The buttons will be inactive until the program has established connection with the robot and received a token and status.
  6. As soon as the token and status have arrived, the buttons become active and you can start flashing the robot.
  7. Choose a firmware or sound package.
  8. Notice the log under the buttons and rejoice at the quick and easy flashing.
  9. After all processing is complete, you will need to add the robot to the MiHome.

Attention!
Due to the built-in file manager, Play Protect considers the application potentially dangerous and doesn't allow most users to install it. To install the application anyway:
1. Open "Play Market".
2. Tap on "Play Protect" in the menu.
3. Disable the "Check security risks" option during the installation of the application.

Android:
Download the application: View attachment XVacuum Firmware 4.1.0 - Andoid 4.4+.zip (unpack it before using)
Developer: .//Hack
Minimal version of Android: 4.4

iOS:
Download the application: View attachment XVacuum Firmware 4.1.0 - iOS 9.0-15.2.zip (unpack it before using)
Developer: .//Hack
Minimal version of iOS: 9.0
If you don't have JailBreak use Cydia Impactor.

If you have wav-files and want to make a pkg file, just use my program wav2pkg (Windows) - below.

Do you want to thank the developer financially?
Details


Tinkoff card: 5536 9137 9197 1969
Sberbank card: 2202 2007 1004 4098
Kykyryza card: 2 9603257 90117
Ozon card: 2 2302318 050546
PayPal: dsshackne@gmail.com (EUR, USD, RUR)
Yandex.Money (YooMoney): 41001365201505
WebMoney:
- WME: E266145873860
- WMZ: Z130755667036
- WMR: R830172982278

History

04.01.2022 (4.1.0)
  • The application works better with the third generation (1S, T6, S6, T7, S5 Max and etc.)
  • Updated the bank accounts.
  • iOS8 is out of date now to support the maximum version range (9.0-15.2).
  • Small fixes.

18.01.2020 (4.0.0)
  • The application tries to reconnect in any way possible in a case when the connection is lost.
  • If regional lock is activated the application tries to disable it few times. On failure, it displays an error to the log.
  • Fixed working after waking up from sleeping on iOS. Previously, you need to restart the application.
  • Requests to a vacuum work faster now.
  • Many small fixes

21.09.2019 (3.3.0)
  • The path to the selected file is displayed in the log

08.09.2019 (3.2.0)
  • The information about the vacuum is got in the background mode
  • Small fixes

25.08.2019 (3.1.2)
  • Added information about a vacuum to the log (Model, Firmware and IP)
  • Disabling the regional lock to have able to flash a firmware without the regional lock
  • Small fixes

24.07.2019 (3.0.1)
  • Small bug fixes
  • Added information about support for Roborock v3 (T6, S6, 1S)

09.06.2019 (3.0.0)
  • You can flash the robot without Wi-Fi reset (the IP and token must be filled in the setting from the menu, after saving, the setting you need to restart the application).
  • Logs are extended. It will show more information in case of unexpected errors.
  • Now, the bank details can be copied by the click on the neded line.
  • In case of success flashing, a window with information about me will be shown.

31.03.2019 (2.2.0)
  • Fixed the log block collapse.
  • Small fixes: mainly for iOS.

25.03.2019 (2.1.1)
  • Small fixes and iOS version.

14.01.2019 (2.1.0)
  • The code is significantly refactored and compressed.

14.01.2019 (2.0.0)
  • Now the application has a built-in file manager. You can select only pkg (many people tried to flash everything except pkg, not understanding what they did wrong). The "Back" button closes the file manager but does not move up one level. I'll add it in next versions.
  • Added new bank details to the "About" window.

13.01.2019 (1.0.2)
  • Now the socket closes together with the application. You won't get the error EADDRINUSE (Address already in use) when you restart the application.

12.01.2019 (1.0.1)
  • The window "About" can be closed with the "Back" button.
  • The menu can be closed with the "Back" button.
  • The application is now compressed at less than 1MB.
  • Added the current version to the "About" window.
  • Minimal version of Android is 4.4 (most likely the log block will be collapsed on Android 4-5, so you can see one line only).

9.01.2019 (1.0.0)
  • The first released version.

Known issues

  1. java.net.BindException: bind failed: EADDRINUSE (Address already in use): or similar errors with "Address already in use" can occur if other programs use the 8080 and 8081 ports. If you cannot identify such a program, just close all programs and restart XVacuum Firmware.
  2. If your phone has gone to the sleep, most likely the phone will stop accepting connections. The robot will return an error, since it won't be able to download the firmware;
  3. The "Back" button closes the file manager but does not move up one level.
  4. [Android]A file can be chosen from the internal storage (/sdcard) only
 
Last edited:

.//Hack

Member
Mar 4, 2011
39
57
wav2pkg​
The program converts wav-files to pkg-package and backward (Windows)​

Unpack the program to the root of any disk (advanced users: the path must not contain any spaces or non-Latin symbols). For example: C:\wav2pkg

The instruction to make pkg-package:
  1. Place all folders with wav-files to the "voicepacks" folder. The folders must contain only Latin symbols, digits and/or underscores. You can place any number of folders. The program converts them into separate pkg files. The path must be, for example, C:\wav2pkg\voicepacks\english\*.wav
  2. Launch wav2pkg.bat from the wav2pkg folder
  3. The program will start displaying information about the progress of the conversion.
  4. Produced packages will be placed into the "voicepacks" folder and carry the names of the folders that they were converted from.

You don't need to remove pkg-files before the next launch of the program.

The instruction to extract wav-files from pkg-package:
  1. Place all pkg-files to the "pkgs" folder. The packages must contain only Latin symbols, digits and/or underscores. You can place any number of packages. The program extracts them into separate folders. The path must be, for example, C:\wav2pkg\pkgs\english.pkg
  2. Launch wav2pkg.bat from the wav2pkg folder
  3. The program will start displaying information about the progress of the conversion.
  4. Produced wav-files will be placed into folders which carry the names of the packages that they were extracted from and they will be placed into the "pkgs" folder.

You don't need to remove folders before the next launch of the program.

Download: View attachment wav2pkg.zip
 
Last edited:

.//Hack

Member
Mar 4, 2011
39
57
Does no one need this? Or maybe did I place the thread in the wrong forum's section? Because the thread in the russian community is very hot. The application was downloaded more than 4000 500 000 times.
 
Last edited:
  • Like
Reactions: ephestione

mosespl

Senior Member
Mar 19, 2012
721
199
Wrocław
Could you please explain for what I need this? I have this s50 robot, but I don't know the exact purpose of this topic. I have eu version and english voices. There is some modifications or funny voices?
 
  • Like
Reactions: pbangelly

akiden

Member
Jan 24, 2008
13
0
Thanks buddy!!! Finally found a thread in English that covers firmware flashing.

I have the Gen 2 (s50) international version and want to flash to China version in order to connect to China server.

Where do I find the latest China version firmware for s50?


Sent from my iPhone using Tapatalk
 

ydur1

Senior Member
Apr 30, 2009
223
7
Does anyone have all the instruction lines for sound pack? I am making a pkg for dutch. I have the instruction lines for error 1-19. But I still need to have english instructions for some commands. I hope someone can help me. Otherwise how can i extraxt a pkg, so I can see what wav files are inside the pkg?
Thank you.
 
Last edited:

denil

Member
Oct 26, 2013
6
0
Thanks for the app, but I'm waiting for it to be compatible with vacuum 1s. I try this but can't send voices (the token captures ok).

I read in last post I read that isn't posible :(
 

.//Hack

Member
Mar 4, 2011
39
57
When somebody get access to the filesystem of the vacuum and find the encryption keys We'll can make voice and firmware packs for the vacuum. Now we can flash original packs only.
 
  • Like
Reactions: denil

Top Liked Posts

  • There are no posts matching your filters.
  • 16
    XVacuum Firmware

    Flashing firmwares and sound packages from your smartphone (Android and iOS)
    Roborock v1/v2(S50/51/55), T6, S6, 1S, T7, Q7 are supported.

    The first and second generations have common language packs. The third (T6, S6, 1S) has its own packs.

    Android:
    (only pkg is supported, neither 7z, nor zip, nor rar but only pkg in the unarchived view; as for sound packages, be aware that wav-files in an archive isn't a pkg-package). These packages should be opened only from the internal storage (/sdcard). It will better if you place packages into root folder. Also avoid any special characters in file names, as the robot isn't able to download such files.

    iOS:
    Firmwares and sound packages must be placed in Documents folder of the application by iTunes (Shared Files section), iTools, iFunbox or other similar applications. (only pkg is supported, neither 7z, nor zip, nor rar but only pkg in the unarchived view; as for sound packages, be aware that wav-files in an archive isn't a pkg-package). Also avoid any special characters in file names, as the robot isn't able to download such files.

    At the moment, there are two ways (see below):
    1. Without Wi-Fi reset of the robot (you need to get the token by any available ways).
    2. With Wi-Fi reset (the application will get the token by itself)


    The instruction without Wi-Fi reset (you need to get the token by any available ways):
    1. Launch the application.
    2. Click the menu and then Settings.
    3. Fill the IP and token of the robot.
    4. Click the "Save" button.
    5. The application will ask you to restart the application for applying the settings, kill the application:
      • Android: double click to "Back" button or click "Exit" from the menu.
      • iOS: double click to "Home" button and swipe up the application to kill it.
    6. Launch my program again. The program is written for "blondies": there is almost no way to make mistakes. It consists of two buttons (firmware and sound), and that's all. An "About" menu is also available should you want to know more about me and contribute to the project.
    7. The buttons will be inactive until the program has established connection with the robot and received a status.
    8. As soon as the status have arrived, the buttons become active and you can start flashing the robot.
    9. Choose a firmware or sound package.
    10. Notice the log under the buttons and rejoice at the quick and easy flashing.

    If you got an error:
    • "timeout: Could not connect to the vacuum, handshake is timeout", it means that you filled the invalid IP of the robot.
    • "timeout: Call to the vacuum timed out" after 50 tries to get the status, it means that you filled the invalid token.
    • "timeout: Call to the vacuum timed out" after 50 tries of flashing a firmware, it means that your cleaner doesn't support local updates (it was blocked 4004 and higher for the first generation, 1910 and higher for the second generation, the third generation was blocked always). The first and second generation can be reseted to the factory firmware if it is below 4004 for the first generation, below 1910 for the second generation. https://support.roborock.com/hc/en-us/articles/360035372632-How-to-reset-Roborock-to-factory-default


    The instruction with Wi-Fi reset (the application will get the token by itself):
    1. You need to reset the Wi-Fi settings of the robot to use this program (you will need to add the robot to MiHome again after all processing is complete).
      1. For the first version: press the "Home" and "Power" buttons simultaneously within 3 seconds.
      2. For the second version: press the "Spot Clean" and "Home" buttons within 3 seconds.
    2. Your robot should say that Wi-Fi is reset and a new access point should appear in your smartphone. Connect to it.
    3. Disable your mobile internet because some phones ignore Wi-Fi unless it provides an internet connection.
    4. Launch my program. The program is written for "blondies": there is almost no way to make mistakes. It consists of two buttons (firmware and sound), and that's all. An "About" menu is also available should you want to know more about me and contribute to the project.
    5. The buttons will be inactive until the program has established connection with the robot and received a token and status.
    6. As soon as the token and status have arrived, the buttons become active and you can start flashing the robot.
    7. Choose a firmware or sound package.
    8. Notice the log under the buttons and rejoice at the quick and easy flashing.
    9. After all processing is complete, you will need to add the robot to the MiHome.

    Attention!
    Due to the built-in file manager, Play Protect considers the application potentially dangerous and doesn't allow most users to install it. To install the application anyway:
    1. Open "Play Market".
    2. Tap on "Play Protect" in the menu.
    3. Disable the "Check security risks" option during the installation of the application.

    Android:
    Download the application: View attachment XVacuum Firmware 4.1.0 - Andoid 4.4+.zip (unpack it before using)
    Developer: .//Hack
    Minimal version of Android: 4.4

    iOS:
    Download the application: View attachment XVacuum Firmware 4.1.0 - iOS 9.0-15.2.zip (unpack it before using)
    Developer: .//Hack
    Minimal version of iOS: 9.0
    If you don't have JailBreak use Cydia Impactor.

    If you have wav-files and want to make a pkg file, just use my program wav2pkg (Windows) - below.

    Do you want to thank the developer financially?
    Details


    Tinkoff card: 5536 9137 9197 1969
    Sberbank card: 2202 2007 1004 4098
    Kykyryza card: 2 9603257 90117
    Ozon card: 2 2302318 050546
    PayPal: dsshackne@gmail.com (EUR, USD, RUR)
    Yandex.Money (YooMoney): 41001365201505
    WebMoney:
    - WME: E266145873860
    - WMZ: Z130755667036
    - WMR: R830172982278

    History

    04.01.2022 (4.1.0)
    • The application works better with the third generation (1S, T6, S6, T7, S5 Max and etc.)
    • Updated the bank accounts.
    • iOS8 is out of date now to support the maximum version range (9.0-15.2).
    • Small fixes.

    18.01.2020 (4.0.0)
    • The application tries to reconnect in any way possible in a case when the connection is lost.
    • If regional lock is activated the application tries to disable it few times. On failure, it displays an error to the log.
    • Fixed working after waking up from sleeping on iOS. Previously, you need to restart the application.
    • Requests to a vacuum work faster now.
    • Many small fixes

    21.09.2019 (3.3.0)
    • The path to the selected file is displayed in the log

    08.09.2019 (3.2.0)
    • The information about the vacuum is got in the background mode
    • Small fixes

    25.08.2019 (3.1.2)
    • Added information about a vacuum to the log (Model, Firmware and IP)
    • Disabling the regional lock to have able to flash a firmware without the regional lock
    • Small fixes

    24.07.2019 (3.0.1)
    • Small bug fixes
    • Added information about support for Roborock v3 (T6, S6, 1S)

    09.06.2019 (3.0.0)
    • You can flash the robot without Wi-Fi reset (the IP and token must be filled in the setting from the menu, after saving, the setting you need to restart the application).
    • Logs are extended. It will show more information in case of unexpected errors.
    • Now, the bank details can be copied by the click on the neded line.
    • In case of success flashing, a window with information about me will be shown.

    31.03.2019 (2.2.0)
    • Fixed the log block collapse.
    • Small fixes: mainly for iOS.

    25.03.2019 (2.1.1)
    • Small fixes and iOS version.

    14.01.2019 (2.1.0)
    • The code is significantly refactored and compressed.

    14.01.2019 (2.0.0)
    • Now the application has a built-in file manager. You can select only pkg (many people tried to flash everything except pkg, not understanding what they did wrong). The "Back" button closes the file manager but does not move up one level. I'll add it in next versions.
    • Added new bank details to the "About" window.

    13.01.2019 (1.0.2)
    • Now the socket closes together with the application. You won't get the error EADDRINUSE (Address already in use) when you restart the application.

    12.01.2019 (1.0.1)
    • The window "About" can be closed with the "Back" button.
    • The menu can be closed with the "Back" button.
    • The application is now compressed at less than 1MB.
    • Added the current version to the "About" window.
    • Minimal version of Android is 4.4 (most likely the log block will be collapsed on Android 4-5, so you can see one line only).

    9.01.2019 (1.0.0)
    • The first released version.

    Known issues

    1. java.net.BindException: bind failed: EADDRINUSE (Address already in use): or similar errors with "Address already in use" can occur if other programs use the 8080 and 8081 ports. If you cannot identify such a program, just close all programs and restart XVacuum Firmware.
    2. If your phone has gone to the sleep, most likely the phone will stop accepting connections. The robot will return an error, since it won't be able to download the firmware;
    3. The "Back" button closes the file manager but does not move up one level.
    4. [Android]A file can be chosen from the internal storage (/sdcard) only
    8
    wav2pkg​
    The program converts wav-files to pkg-package and backward (Windows)​

    Unpack the program to the root of any disk (advanced users: the path must not contain any spaces or non-Latin symbols). For example: C:\wav2pkg

    The instruction to make pkg-package:
    1. Place all folders with wav-files to the "voicepacks" folder. The folders must contain only Latin symbols, digits and/or underscores. You can place any number of folders. The program converts them into separate pkg files. The path must be, for example, C:\wav2pkg\voicepacks\english\*.wav
    2. Launch wav2pkg.bat from the wav2pkg folder
    3. The program will start displaying information about the progress of the conversion.
    4. Produced packages will be placed into the "voicepacks" folder and carry the names of the folders that they were converted from.

    You don't need to remove pkg-files before the next launch of the program.

    The instruction to extract wav-files from pkg-package:
    1. Place all pkg-files to the "pkgs" folder. The packages must contain only Latin symbols, digits and/or underscores. You can place any number of packages. The program extracts them into separate folders. The path must be, for example, C:\wav2pkg\pkgs\english.pkg
    2. Launch wav2pkg.bat from the wav2pkg folder
    3. The program will start displaying information about the progress of the conversion.
    4. Produced wav-files will be placed into folders which carry the names of the packages that they were extracted from and they will be placed into the "pkgs" folder.

    You don't need to remove folders before the next launch of the program.

    Download: View attachment wav2pkg.zip
    2
    I've already tried that several times... it's pressing and holding the power button and short-pressing the reset button. Unfortunately this didn't help as well.
    Hello,

    You make a confusion between Wifi reset and Factory reset.

    To make a hard reset on roborock V1, you must continuously push home button and reset button (with a little pin) until your robot says something.

    Then the white light and the blue light will be on / off alternatively.

    One the process finish you will be able to flash the firmware.

    ---------- Post added at 12:24 AM ---------- Previous post was at 12:23 AM ----------

    I have previously successfully installed vacuum_2008_valetudo_re_0_9_2.pkg with this app.
    Now I would like to update to 0.9.3.
    But it doesn't work for some reason. All I get is the message:
    -> State: idle
    <- (attempt 1) Checking the status...
    -> State: idle
    <- (attempt 1) Checking the status...
    -> State: idle
    <- (attempt 1) Checking the status...
    ... over and over again ...

    What could the problem be? How to fix this?

    See my answer upper.

    BR
    2
    The application was updated.
    2
    Yes, you can.
    In the russian community, we made firmwares with some features and valetudo http://4pda.ru/forum/index.php?act=findpost&pid=82130220&anchor=Spoil-82130220-1 You can use the google translate to translate features
    https://vacuumz.info/download/gen1/