Summary: This blog was written by Sizlaq. It is about how he used a saved Android split APK set and a rooted app-data backup to restore LEGO MINDSTORMS Robot Inventor with its downloaded content already in place.
Important Note: The files linked in this post are external archive downloads for the LEGO MINDSTORMS Robot Inventor app and its related content. LEGO MINDSTORMS, LEGO Education and Robot Inventor are LEGO Group products/trademarks. Use these downloads only where you are legally entitled to do so and only for legitimate preservation, repair, education or personal restore purposes. I do not own the LEGO app or content, and the links are provided as a convenience for people trying to restore a legacy installation. Download and run archived software at your own risk, and scan files before installing them.
Why these backups mattered
The reason I started looking into this was simple: LEGO had announced that the LEGO MINDSTORMS Robot Inventor apps were being discontinued after 1st June.
That raised two separate risks. The first risk was that the app itself might become difficult to download in the future. The second, and more awkward, risk was that even if the app could still be installed, the in-app downloadable content might disappear or stop downloading.
For this to be useful as a real restore, I did not want to only archive the installer. I wanted to prove that I could start from a clean device or machine, install the app, restore the saved app data, and end up with the tutorials, builds and downloaded content already available inside the app.
That became the aim of the whole exercise: not just “can I install the app?”, but “can I restore the app to a usable state without depending on LEGO’s download servers still being available?”
Other platform restore guides
This restore was also done for the other platforms:
Update these placeholder links once the other blog posts have been published.
The starting point
I started with Android because that was the version I was already using, and it gave me a good working reference for what a healthy LEGO MINDSTORMS Robot Inventor install should look like.
That mattered because a backup is only useful if you know what you are trying to get back to. I wanted to be able to open the restored app and see that it behaved like the original install, with the content already present, rather than being left with an empty app shell that still needed to contact LEGO’s servers.
The Android restore quickly became the most technical platform in the series. The app files are one part of the backup, but the content backup is separate because Android stores the important data inside the app’s private storage area.
/data/user/0/com.lego.retail.mindstorms
That private directory is not something a normal file manager or non-root ADB session can freely write to. To restore the app properly, I needed root access so that the saved app-data folder could be copied back into place with the right ownership and labels.
What I was trying to prove
The Android test was built around a very specific question: could I take a clean Android device, use the archived app files and restored app data, and then open MINDSTORMS with the downloaded content already available?
That meant the restore had to cover both of these pieces:
- the split APK files used to install the app;
- the private app-data backup containing the downloaded content.
The backup I used was deliberately kept as two separate zip files so the two jobs were clear:
lego-mindstorms-apk.zip
com.lego.retail.mindstorms.zip
Important Android limitation: ARM64 only
The saved Android APK set only includes the ARM64 split:
split_config.arm64_v8a.apk
That means the target Android device must support arm64-v8a. There is no separate 32-bit ARM install option in this backup.
Before installing, I checked the device ABI with:
adb shell getprop ro.product.cpu.abilist
The restore should only continue if the output includes:
arm64-v8a
What was required for the Android restore
For Android, the restore needed more than a copy of the app. The final backup had to include the app installation files, the app’s private data folder, and clear instructions that explained how those pieces fit together.
The required pieces were:
- an Android device that supports
arm64-v8a; - the saved split APK set for LEGO MINDSTORMS Robot Inventor;
- the saved app-data/content backup for
com.lego.retail.mindstorms; - ADB access from a computer;
- root access on the Android device so the private app-data folder could be restored;
The important limitation was that the APK backup only contained the ARM64 split. That made the device architecture check a real requirement rather than an optional detail.
Key steps in the Android approach
At a high level, the Android approach was to prove the restore in two layers. First, the app itself had to be installable from the archived split APK set. Second, the app data had to be restored so that the downloaded content was available without relying on LEGO’s servers.
The key steps were:
- confirm the device supported the supplied ARM64 APK split;
- install the archived Android app package set;
- let Android create the app’s private storage area;
- restore the saved
com.lego.retail.mindstormsapp-data backup into that private storage area; - preserve the correct ownership and Android file context so the app could read its data;
- open the app and confirm that the restored content was already present.
This outline matters because it shows why the Android restore was not just an APK reinstall. The content lived in the private app data, so the restore had to include that data as well.
Findings and challenges
The main finding was that Android was the most sensitive platform because the useful content was stored inside private app storage. Without restoring that folder, the app could be installed but would not necessarily be useful as an offline restore.
The biggest challenge was that private Android app storage is protected. A normal file copy is not enough, and a non-root backup would not give the same level of control. Root access made it possible to put the app data back where Android expected it.
The second challenge was the split APK format. The app was not a single APK file; it was a set of APK files that had to match the target device. Because the saved set only included arm64-v8a, older or 32-bit-only devices were not suitable for this archive.
What success looked like
The success criteria was not just that Android showed the app icon. The real test was opening MINDSTORMS and confirming that the restored content was already there.
That was the point of backing up the app’s private data folder in the first place. It meant the restore did not rely on the in-app content download continuing to work in the future.
Lessons from the Android restore
The Android restore showed that the app and the content need to be treated as two separate pieces. The APK files can reinstall the app, but they do not automatically bring back the downloaded content.
The other lesson was that Android is much stricter than desktop platforms. Without root, the restore cannot properly write back into the app’s private data folder. With root, the restore is possible, but the commands need to be followed carefully because ownership and SELinux labels matter.
Final thoughts
Android was the first platform I restored because it was the version I already had in use. It also became the best reminder that archiving an installer is not always enough.
For LEGO MINDSTORMS Robot Inventor, the useful restore is the combination of the app and its downloaded content. Preserving both meant I could get back to a usable app without depending on future server availability.
Download the Android app and content archive
The Android split APK backup, app-data/content backup and an installation guide are available here:
Download the Android app and content archive
MINDSTORMS-Android-Installation-Guide.txt
lego-mindstorms-apk.zip
com.lego.retail.mindstorms.zip