diff --git a/README.md b/README.md index 842d4be1..68730c43 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/docs/HOW_TO_BUILD.md b/docs/HOW_TO_BUILD.md new file mode 100644 index 00000000..e3ba53e0 --- /dev/null +++ b/docs/HOW_TO_BUILD.md @@ -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. +