Skip to content

Linux Development Environment

Brian Clifton edited this page Feb 22, 2022 · 43 revisions

System Requirements

Before you begin, ensure your system satisfies the system requirements.

Install additional build dependencies

You will need Git, Python 3, the LTS version NodeJS, and npm. You may need to make python3 the default if Python 2.7 is default for your OS

Alternatively to npm, you can also use Yarn. We recommend following the Yarn install docs to install Yarn and a compatible version of NodeJS. After installing yarn you'll want to run yarn import to create a yarn.lock file from our package-lock.json.

If you are using Ubuntu, additionally install:

apt-get install build-essential libgnome-keyring-dev python-setuptools npm

You are now ready to clone and initialize the repo. After npm run init is finished, there is one final step to finish installing build dependencies. This shell script only works on Debian and Ubuntu but check system requirements for other distros:

# cd to brave-browser repo root
./src/build/install-build-deps.sh

You might also want to try ./src/build/install-build-deps.sh --unsupported if above command gives an error about using a non supported Linux distribution.

Use ./src/build/install-build-deps-android.sh for android builds

Troubleshooting

Check out the upstream Checking out and building Chromium on Linux docs before filing an issue.

Known issues

On debug build for Android lint may crash with error java.lang.OutOfMemoryError: Java heap space. Solution is to set environment variable export JAVA_OPTS="-Xmx10G -Xms1G".

Making debug build for Android

If you are building debug apk for Android and doing debugging, you may want to add --gn=enable_proguard_obfuscation:false to build command:

npm run build -- --target_os=android --target_arch=arm --gn=enable_proguard_obfuscation:false

This will give you nice stacks from Java crashes or exceptions without need to run retrace script.

In order to make sure output format is apk, add --target_android_output_format=apk to build command:

npm run build -- Debug --target_os=android --target_arch=arm --target_android_output_format=apk

To change target SDK level, add --target_android_base, e.g.:

npm run build -- Debug --target_os=android --target_arch=arm --target_android_output_format=apk --target_android_base=mono

Installing a build on Android

Both for devices and if you have a started emulator:

./src/build/android/adb_install_apk.py ./src/out/android_Debug_x86/apks/Bravex86.apk

If you have an aab file:

bundletool build-apks --connected-device --bundle=out/android_Debug_x86/apks/Bravex86.aab --output=out/android_Debug_x86/apks/Bravex86.apks
bundletool install-apks --apks=out/android_Debug_x86/apks/Bravex86.apks

Getting crash dumps for Android

adb logcat -d | third_party/android_platform/development/scripts/stack --output-directory out/android_Component_arm

Other debugging instructions for Android

https://chromium.googlesource.com/chromium/src/+/master/docs/android_debugging_instructions.md

Clone this wiki locally