Add how to build

This commit is contained in:
Carmelo Messina
2024-03-11 13:12:01 +01:00
parent 6511f3ec2e
commit 8df670e568
2 changed files with 54 additions and 30 deletions
+3 -30
View File
@@ -93,37 +93,10 @@ you can activate the 'RendererAppContainer' flag from the command line with
--enable-features=RendererAppContainer
```
## (TODO) Integrity and authenticity
# Docs
- [How to build](https://github.com/uazo/cromite/blob/master/docs/HOW_TO_BUILD.md)
You can verify the integrity of a downloaded APK file from this project with any `sha256sum`-compatible tool by downloading the corresponding `brm_X.Y.Z.sha256.txt` or `chr_X.Y.Z.sha256.txt` file, where X.Y.Z is the release version number. Example:
```
$ sha256sum --check brm_68.0.3440.54.sha256.txt
arm64_SystemWebView.apk: OK
arm64_ChromePublic.apk: OK
arm64_ChromeModernPublic.apk: OK
```
You can verify authenticity, e.g. that the author ([csagan5](https://github.com/csagan5)) released the file, by using gpg2:
```
$ gpg2 --quiet --verify brm_68.0.3440.54.sha256.txt.asc
gpg: assuming signed data in 'brm_68.0.3440.54.sha256.txt'
gpg: Signature made Sun 08 Jul 2018 04:22:52 PM CEST using RSA key ID D85DC0C5
gpg: Good signature from "csagan5 <32685696+csagan5@users.noreply.github.com>"
```
You can download csagan5's public GnuPG key from here: [csagan5.asc](./csagan5.asc).
# (TODO) How to build
The [Bromite main repository](https://github.com/bromite/bromite) contains tags for each corresponding Chromium release (see https://chromium.googlesource.com/chromium/src.git).
Please refer to [official Chromium build documentation](https://www.chromium.org/developers/how-tos/get-the-code) to get started on how to build Chromium; if you can build Chromium for Android, you can build Bromite.
The Chromium version tag used as base for the patches is available here: [RELEASE](./build/RELEASE); this is always corresponding to the git tag for every release.
The GN args used to build Bromite are available here: [bromite.gn_args](./build/bromite.gn_args).
The patches are to be applied second the order specified in the `bromite_patches_list.txt` file (you can use `git am`).
# (TODO) Contributing
# Contributing
Please submit issues following the issue template; beware that GitHub does not display the templates from mobile.
+51
View File
@@ -0,0 +1,51 @@
# How to build
Please refer to [official Chromium build documentation](https://www.chromium.org/developers/how-tos/get-the-code) to get started on how to build Chromium.
The Chromium version tag used as base for the patches is available here: [RELEASE](../build/RELEASE); this is corresponding to the git tag for every release.
The GN args used to build Cromite are available here: [cromite.gn_args](../build/cromite.gn_args).
The patches are to be applied second the order specified in the `cromite_patches_list.txt` file (you can use `git am`).
A complete, ready-to-build docker image is also available.
Each release contains the description reference containing the name of the corresponding docker image. All images are in the format:
`uazo/cromite-build:(VERSION)-(COMMIT)`
You can see all the images released in https://hub.docker.com/r/uazo/cromite-build/tags
This is the list of commands to perform a build:
Given:
```
SHA=fac696b3a422f196f698e6543913946ddaba1ef3
VERSION=122.0.6261.111
CHVERSION=uazo/cromite-build:$VERSION-$SHA
CONTAINER=dev1
BDEBUG=false
```
execute:
```
docker create --name $CONTAINER \
-e "WORKSPACE=/home/lg/working_dir" \
-e "TARGET_ISDEBUG=$BDEBUG" \
--entrypoint "tail" $CHVERSION "-f" "/dev/null"
docker start dev1
docker exec -ti dev1 bash
```
and, inside the container:
```
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
export HOME=/home/lg/working_dir
cd $HOME
cd chromium/src/
```
please note that these commands are valid for the build of android and linux platforms.
for the windows build you need to configure the cross build mode from linux.
all release builds are done via the [action available](https://github.com/uazo/cromite/blob/master/.github/workflows/build_cromite.yaml) from which you can see the mode I have adopted.