Files
status-app/mobile
Jonathan Rainville 4fc3f99b55 fix(android): restart frontend if the backend is dead
Part of #21142

- Add resilient frontend recovery in StatusGoServiceClient.java when backend Binder becomes unavailable.
- Trigger one-shot app relaunch + process kill on unrecoverable backend paths:
  - disconnected/not connected after bind wait
  - call failure after dead-object retry
  - Binder disconnect/binding death while app is foregrounded
- Harden recovery behavior:
  - only restart from UI-visibility failure when app is foregrounding
  - avoid restart storms with single-shot guard
  - scope/safeguard disconnect suppression during intentional unbind
  - handle null-context safely before arming restart
- Expose application context getter in StatusGoStub.java for disconnect-driven recovery handling.
2026-06-08 13:34:09 -04:00
..
2026-05-07 15:33:31 +05:30
2026-05-07 15:33:31 +05:30
2026-05-07 15:33:31 +05:30

Status Mobile Build System

This repository contains the build system for Status Mobile, supporting both iOS and Android platforms with Qt6 compatibility. Cross-compilation is currently supported on MacOs and Linux. Windows is not supported. The dev setup runs well on WSL with Windows emulator.

Table of Contents

Quick Start Guide (Container Builds)

This section is for users who want to get up and running quickly with minimal technical setup.

Prerequisites

  • Docker
  • ADB (Android Debug Bridge)
  • Android Emulator

Quick setup - android

  1. Install dependencies:
# macOS
brew install docker --cask
# Start docker
open -a Docker
brew install android-platform-tools android-commandlinetools xcbeautify
# Ubuntu
sudo apt-get update
sudo apt install android-sdk-common

sdkmanager --install \
"build-tools;35.0.1" \
"emulator" \
"platform-tools" \
"platforms;android-35" \
"ndk;27.2.12479018" \
"system-images;android-35;google_apis;arm64-v8a"
  1. Verify installation:
docker --version
adb --version
emulator --version
avdmanager --version
sdkmanager --version
  1. Building the app
make -f mobile/ContainerBuilds.mk
  1. Running the app
# Linux and MacOS
make -f mobile/ContainerBuilds.mk run

What Happens Behind the Scenes

  • The build process uses the same pre-built Docker image as the CI pipeline (harbor.status.im/status-im/status-desktop-build:1.0.0-qt6.11.0-android)
  • All required tools and dependencies (Qt 6.11.0, Android SDK/NDK, Go, Nim) are provided by the container
  • The container runs on linux/amd64 platform for consistency, even on ARM macOS machines
  • The built APK/AAB is available in the mobile/bin/android/qt6/ directory