Ngày xưa vì ham rẻ (giá hiện tại trên taobao là 7.8Tr) nên mua con Roborock T6 nội địa tàu. Dùng cực kì khó chịu khi phải fake time zone GMT+8 để có thể sử dụng được app MiHome. Ngoài ra thì còn phải sử dụng stock firmware vì không dám update, nếu chẳng may có update thì server Xiaomi nó chơi Geo block luôn và không thể nào sử dụng được app và chỉ còn cách là factory reset hoặc kiếm cái sim Tàu để dùng. Từ bao bì đến hướng dẫn và cả bộ voice 100% tiếng tàu, chữ tiếng anh duy nhất trên con robot là từ thương hiệu Roborock. Nhưng may sao trên app vẫn dụng được tiếng anh.
Sau 1 thời gian chịu đựng mình đã quyết định root con robot của mình, biến nó thành bản S6 quốc tế, đầy đủ Voice pack tiếng Anh lẫn tiếng Ta, đủ các món ăn chơi, có thể cài được Valetudo, hơn nữa Roborock sử dụng Ubuntu 14.04 nên sau khi root còn có thể làm được nhiều trò hay ho nữa. Ví dụ như chơi nhạc, IOT, biến nó thành chó trông nhà....vân vân và mây mây.
Không giống các đời trước, con robot này của Xiaomi đã tăng cường bảo mật, vì vậy cách duy nhất để root nó là phải tháo vỏ lấy PCB để gắn kết nối UART.
Phương pháp này hoàn toàn có thể sử dụng được với các con đời trước như T5/S5, T4/S4... miễn là sử dụng Allwinner SoC. Ngoài ra theo thông tin tìm hiểu được thì kể cả các con Roborock Gen1 của Xiaomi sản xuất sau tháng 9/2019 đều không thể root theo phương thức cũ (LAN/Token), như vậy cách root này sẽ được sử dụng rộng rãi hơn, và nó hiện tại đang là cách duy nhất.
Thế nên trước khi tiến tới root, ta đi mổ bụng nó, và quá trình chiếm đến 70% thời gian vì nó nhiều vít kinh khủng. Tổng cộng là 62 con vit để có thể lôi được mainboard ra.
Toàn bộ ảnh các con vit ở đây:
Nhưng trước hết ở phần chuẩn bị.
-----------------------------
Để root được ta cần kết nối cáp UART-USB với mainboard, ở đây mình sử dụng phương pháp hàn, nhưng bạn hoàn có thể nhờ ai đó giữ hộ 3 chân này (Thực tế nếu bạn sử dụng cổng micro USB trên robot thì chỉ cần sử dụng TX và RX là đủ). Sau khi root xong thì bóc mối hàn ra lắp như cũ không vấn đề gì.
Sau đó thì cắm cáp vào PC, cài driver và kết nối theo đúng thứ tự.
Do Xiaomi sử dụng Allwinner SoC nhưng có patch 1 chút ở phần U-boot và vô tình 1 anh người Đức quốc xã phát hiện ra dòng code vi diệu đó nên đã khiến quá trình root trở lên dễ dàng hơn rất nhiều.
Chính vì điều này nên khi bấm nút ON ở robot 3s để vào U-Boot ta đồng thời giữ phím "s" ở bàn phím để vào Shell mode.
Và ở đây ta sử dụng các lệnh để dump root password ở file vinda và giải mã nó, sau đó tiến hành boot bình thường.
Việc cần làm thêm là disable Firewall và chỉnh chọt lại 1 chút cho việc kết nối SSH sau này trở lên dễ dàng hơn.
Giờ thì bạn có thể tắt robot, tháo mối hàn, lắp robot lại bình thường.
Khi đã root xong thì mọi thao tác cài đặt custom FW và chế cháo đều có thể thực hiện qua Wifi với SSH.
Phần còn lại là build custom fw và cài đặt. Vì cấu trúc của eMMC, nên khi cài đặt ta sẽ phải cài đặt trên System B sau đó là System A.
Do 2 file này ở chế độ readonly chúng ta cần vào SSH gõ lệnh mount lại thử mục default để có thể edit đc. Bước cuối cùng là reboot.
Nếu bạn thấy video này hữu ích hãy like, comment, share và quan trọng nhất là subcribes đăng ký bấm chuông để ủng hộ mình.
Cảm ơn các bạn và chúc các bạn may mắn.
Sau 1 thời gian chịu đựng mình đã quyết định root con robot của mình, biến nó thành bản S6 quốc tế, đầy đủ Voice pack tiếng Anh lẫn tiếng Ta, đủ các món ăn chơi, có thể cài được Valetudo, hơn nữa Roborock sử dụng Ubuntu 14.04 nên sau khi root còn có thể làm được nhiều trò hay ho nữa. Ví dụ như chơi nhạc, IOT, biến nó thành chó trông nhà....vân vân và mây mây.
Không giống các đời trước, con robot này của Xiaomi đã tăng cường bảo mật, vì vậy cách duy nhất để root nó là phải tháo vỏ lấy PCB để gắn kết nối UART.
Phương pháp này hoàn toàn có thể sử dụng được với các con đời trước như T5/S5, T4/S4... miễn là sử dụng Allwinner SoC. Ngoài ra theo thông tin tìm hiểu được thì kể cả các con Roborock Gen1 của Xiaomi sản xuất sau tháng 9/2019 đều không thể root theo phương thức cũ (LAN/Token), như vậy cách root này sẽ được sử dụng rộng rãi hơn, và nó hiện tại đang là cách duy nhất.
Thế nên trước khi tiến tới root, ta đi mổ bụng nó, và quá trình chiếm đến 70% thời gian vì nó nhiều vít kinh khủng. Tổng cộng là 62 con vit để có thể lôi được mainboard ra.
Toàn bộ ảnh các con vit ở đây:
imgur.com/a/f1q7enm
- Vít bản lề nắp đựng rác: 6
- Vít nắp tháp LDS Laser: 3+2
- Vít tháp LDS Laser: 4
- Vít nắp đáy: 7
- Vít đáy: 26
- Vít cảm biến va chạm: 8
- Vít PCB nút điều khiển: 2
- Vít PCB chính: 4
Nhưng trước hết ở phần chuẩn bị.
- Cable UART-USB trong video sử dụng bản chipset PL2303, các bạn có thể sử dụng các loại khác như FT232RL, FT232 hoặc CP2102..
- 3 đây 2 đầu đực.
- Phần mềm: Putty và WinSCP
- Toàn bộ lệnh dùng trong video: https://pastebin.com/raw/Tx7YG7AX
- UART-USB Driver: https://bit.ly/34N9gPh
- device.conf: https://pastebin.com/raw/WCExWCiS
- roborock.conf: https://pastebin.com/raw/c7ufscps
-----------------------------
Để root được ta cần kết nối cáp UART-USB với mainboard, ở đây mình sử dụng phương pháp hàn, nhưng bạn hoàn có thể nhờ ai đó giữ hộ 3 chân này (Thực tế nếu bạn sử dụng cổng micro USB trên robot thì chỉ cần sử dụng TX và RX là đủ). Sau khi root xong thì bóc mối hàn ra lắp như cũ không vấn đề gì.
Sau đó thì cắm cáp vào PC, cài driver và kết nối theo đúng thứ tự.
Do Xiaomi sử dụng Allwinner SoC nhưng có patch 1 chút ở phần U-boot và vô tình 1 anh người Đức quốc xã phát hiện ra dòng code vi diệu đó nên đã khiến quá trình root trở lên dễ dàng hơn rất nhiều.
Chính vì điều này nên khi bấm nút ON ở robot 3s để vào U-Boot ta đồng thời giữ phím "s" ở bàn phím để vào Shell mode.
Và ở đây ta sử dụng các lệnh để dump root password ở file vinda và giải mã nó, sau đó tiến hành boot bình thường.
Nếu bạn nào quan tâm tới thuật toán giải mã root:In U-Boot
----------
ext4load mmc 2:6 40008000 vinda
md 40008000
run setargs_mmc boot_normal
Xiaomi/Roborock/Rockrobo root password calculator (v1,s4,t4,s5,s6,t6)
-----------
https://builder.dontvacuum.me/password.php
The root password is derived from this by XORing each character with 0x37. Calculate this with the language of your choice, for example Perl:
$ perl -e ‘print(join(“”, (map { chr(ord($_) ^ 0x37) } split(//, $ARGV[0]))), “\n”);’ ‘CDSQ[VBQ][VP[VPV’
tsdflaufjlaglaga
Việc cần làm thêm là disable Firewall và chỉnh chọt lại 1 chút cho việc kết nối SSH sau này trở lên dễ dàng hơn.
Sau quá trình này thì chúng ta đã hoàn thành quá trình root, có thể các bạn sẽ muốn change root password.In Linux
--------
iptables -F
(you can run the next commands over SSH)
- Make SSH access permannent
sed -i -e '/ iptables -I INPUT -j DROP -p tcp --dport 22/s/^/#/g' /opt/rockrobo/watchdog/rrwatchdoge.conf
sed -i -E 's/dport 22/dport 29/g' /opt/rockrobo/watchdog/WatchDoge
sed -i -E 's/dport 22/dport 29/g' /opt/rockrobo/rrlog/rrlogd
- Patch Recovery (so that SSH survies factory resets)
mkdir /mnt/recovery
mount /dev/mmcblk0p7 /mnt/recovery
sed -i -e '/ iptables -I INPUT -j DROP -p tcp --dport 22/s/^/#/g' /mnt/recovery/opt/rockrobo/watchdog/rrwatchdoge.conf
sed -i -E 's/dport 22/dport 29/g' /mnt/recovery/opt/rockrobo/watchdog/WatchDoge
sed -i -E 's/dport 22/dport 29/g' /mnt/recovery/opt/rockrobo/rrlog/rrlogd
umount /mnt/recovery
Giờ thì bạn có thể tắt robot, tháo mối hàn, lắp robot lại bình thường.
Khi đã root xong thì mọi thao tác cài đặt custom FW và chế cháo đều có thể thực hiện qua Wifi với SSH.
Phần còn lại là build custom fw và cài đặt. Vì cấu trúc của eMMC, nên khi cài đặt ta sẽ phải cài đặt trên System B sau đó là System A.
Để biến robot thành bản S6 quốc tế, chúng ta cần đánh lừa server Xiaomi rằng robot của chúng ta là bản S6. Để làm được điều đấy thì chỉ cần chỉnh sửa 2 file config là device.conf và roborock.confInstall Custom Firmware:
The dustbuilder to build your own custom firmware (with Valetudo):
-----------
https://builder.dontvacuum.me/
Extract FW
-----------
cd /mnt/data
tar -xzvf v11_001998.tar.gz
Patch System_B
-----------
cd /mnt/data
bash install_b.sh
reboot
Patch System_A
-----------
cd /mnt/data
bash install_a.sh
reboot
Do 2 file này ở chế độ readonly chúng ta cần vào SSH gõ lệnh mount lại thử mục default để có thể edit đc. Bước cuối cùng là reboot.
Để test thử mình sẽ setup lại robot với region ở Germany. Cảm nhận đầu tiên là server ở Đức rất mượt và nhanh. Toàn bộ map và file log đều lưu ở 1 phần riêng nên sẽ không bao giờ bị mất. Check thử bộ voice, đã có tiếng anh và cả tiếng việt.Remount to edit file conf
----------
mount -o remount,rw '/mnt/default'
Nếu bạn thấy video này hữu ích hãy like, comment, share và quan trọng nhất là subcribes đăng ký bấm chuông để ủng hộ mình.
Cảm ơn các bạn và chúc các bạn may mắn.
Last edited: