-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Android app installation on 64 bit emulators
Chromium packs both 32 and 64 bit libraries inside 64 bit apks
. And emulators fail to run them because doesn't handle 32 bit libraries correctly. So to install Brave application on such emulators we should install aab
instead.
Chromium provides all the necessary tools to install aab
with the source code.
From the src
folder, run these commands:
./build/android/gyp/bundletool.py build-apks --connected-device --bundle=<path to aab file> --output=<path to apks file> --adb=third_party/android_sdk/public/platform-tools/adb
./build/android/gyp/bundletool.py install-apks --apks=<path to apks file> --adb=third_party/android_sdk/public/platform-tools/adb
Usually <path to apks file>
is the same as <path to aab file>
but with extension apks
.
Example of the command: ./build/android/gyp/bundletool.py build-apks --connected-device --bundle=out/android_Debug/apks/BraveMonox64.aab --output=out/android_Debug/apks/BraveMonox64.apks --adb=third_party/android_sdk/public/platform-tools/adb
- Install Homebrew from https://brew.sh
- Run command
brew install android-platform-tools
- Run command
brew install bundletool
Run these commands:
bundletool build-apks --bundle=<path to aab file> --output=<path to apks file>
bundletool install-apks --apks=<path to apks file>
Usually <path to apks file>
is the same as <path to aab file>
but with extension apks
.
Example of the command: bundletool build-apks --bundle=BraveMonoarm64.aab --output=BraveMonoarm64.apks
Commands above assume that you have only 1 emulator (and no other devices connected) on the machine. Otherwise you will need to specify device-id
param to the bundletool
command.
For instance bundletool build-apks --bundle=BraveMonoarm64.aab --output=BraveMonoarm64.apks --device-id=emulator-5554
.
List of ids can be found by running adb devices
command.
There is a problem with vulkan
on arm64
emulators on M1
Mac. It shows annoying crash dialogs when apps starts. After closing those dialogs app works as expected.