Skip to content

Commit

Permalink
Add Chromium, Bromite, and Vanadium app and webview
Browse files Browse the repository at this point in the history
  • Loading branch information
danielfullmer committed Dec 26, 2019
1 parent fa3e639 commit a369299
Show file tree
Hide file tree
Showing 25 changed files with 1,673 additions and 82 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ This is a fork of the ajs124's NixDroid, focusing on customized vanilla-ish AOSP
Some features include:
- A NixOS-style module system for customizing various aspects of the build
- Signed builds for verified boot (dm-verity/AVB) and re-locking the bootloader
- Partial GrapheneOS support (currently doesn't build Vanadium, the chromium fork)
- Android 10 Support
- [GrapheneOS](https://grapheneos.org/) support
- Android 10 support

Some optional nixos-style modules include:
- Apps: [F-Droid](https://f-droid.org/) (including the privileged extention for automatic installation/updating), [Auditor](https://attestation.app/about), [Backup](https://github.com/stevesoltys/backup)
- Browser / Webview: [Chromium](https://www.chromium.org/Home) [Bromite](https://www.bromite.org/) [Vanadium](https://github.com/GrapheneOS/Vanadium)
- [Automated OTA updates](https://github.com/GrapheneOS/platform_packages_apps_Updater)
- [MicroG](https://microg.org/)
- Certain google apps (currently just stuff for Google Fi)
Expand Down
64 changes: 64 additions & 0 deletions apks/chromium/bromite.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{ chromiumBase, fetchFromGitHub }:

let
version = "79.0.3945.94";

bromite_src = fetchFromGitHub {
owner = "bromite";
repo = "bromite";
rev = version;
sha256 = "0d38vwjkdpsf7ag8j7680ka0lq39ymfin6nr11kasrifd2xhyvf9";
};

in (chromiumBase.override {
versionCode = "390410800"; # TODO: Calculate
customGnFlags = { # From bromite/build/GN_ARGS
blink_symbol_level=1;
dcheck_always_on=false;
debuggable_apks=false;
dfmify_dev_ui=true;
disable_android_lint=true;
disable_autofill_assistant_dfm=false;
disable_tab_ui_dfm=false;
enable_av1_decoder=true;
enable_dav1d_decoder=true;
enable_feed_in_chrome=false;
enable_gvr_services=false;
enable_hangout_services_extension=false;
enable_iterator_debugging=false;
enable_mdns=false;
enable_mse_mpeg2ts_stream_parser=true;
enable_nacl=false;
enable_nacl_nonsfi=false;
enable_remoting=false;
enable_reporting=false;
enable_resource_whitelist_generation=false;
enable_vr=false;
fieldtrial_testing_like_official_build=true;
icu_use_data_file=true;
is_cfi=true;
is_component_build=false;
is_debug=false;
is_official_build=true;
rtc_build_examples=false;
safe_browsing_mode=0;
strip_absolute_paths_from_debug_symbols=true;
strip_debug_info=true;
symbol_level=1;
use_debug_fission=true;
use_errorprone_java_compiler=false;
use_official_google_api_keys=false;
use_openh264=true;
chrome_pgo_phase=0;
full_wpo_on_official=true;
use_sysroot=false;
};
}).overrideAttrs (attrs: {
postPatch = attrs.postPatch + ''
( cd src
cat ${bromite_src}/build/bromite_patches_list.txt | while read patchfile; do
patch -p1 < ${bromite_src}/build/patches/$patchfile
done
)
'';
})
44 changes: 44 additions & 0 deletions apks/chromium/buildenv.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{ pkgs }:
with pkgs;
# TODO: Hack to workaround some android-related prebuilts that need to be fixup'd
# See 32-bit dependencies in src/build/install-build-deps-android
buildFHSUserEnv {
name = "chromium-fhs";
targetPkgs = pkgs: with pkgs; [
# Stuff verified to be needed in chromium
jdk8
glibc_multi.dev # Needs unistd.h
kerberos.dev # Needs headers
kerberos
ncurses5
libxml2

# Leftover stuff from android buildenv--not verified to be necessary
bc
gnupg
procps
openssl_1_0_2.dev
gnumake
nettools
schedtool
utillinux
m4
perl
zip
unzip
flex
lzop
imagemagick
which
rsync
lzip
freetype
fontconfig
];
multiPkgs = pkgs: with pkgs; [
zlib
ncurses5
gcc
libgcc # Needed by their clang toolchain
];
}
6 changes: 6 additions & 0 deletions apks/chromium/chromium.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{ chromiumBase }:

chromiumBase.override {
version = "80.0.3987.18";
versionCode = "398701800";
}
31 changes: 31 additions & 0 deletions apks/chromium/cipd/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{ stdenv, buildGoPackage, fetchgit, fetchhg, fetchbzr, fetchsvn }:

buildGoPackage rec {
name = "cipd-${version}";
version = "2019-12-13";
rev = "95480de32ef149429a7a6ab0e5c7380bfb0f102b";

goPackagePath = "go.chromium.org/luci";
subPackages = [ "cipd/client/cmd/cipd" ];

src = fetchgit {
inherit rev;
url = "https://chromium.googlesource.com/infra/luci/luci-go";
sha256 = "0hkg2j4y7vqjhfvlgkfjpc0hcrrb08f6nmz00zxrsf7735lv09i9";
};

goDeps = ./deps.nix;

meta = with stdenv.lib; {
description = "Chrome Infrastructure Package Deployment";
longDescription = ''
CIPD is package deployment infrastructure. It consists of a package
registry and a CLI client to create, upload, download, and install
packages.
'';
homepage = "https://chromium.googlesource.com/infra/luci/luci-go/+/refs/heads/master/cipd/";
license = licenses.asl20;
maintainers = with maintainers; [ danielfullmer ];
platforms = with platforms; linux;
};
}
156 changes: 156 additions & 0 deletions apks/chromium/cipd/deps.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
[
{
goPackagePath = "cloud.google.com/go";
fetch = {
type = "git";
url = "https://code.googlesource.com/gocloud";
rev = "9dab157497282bedd6dc12347d27fde50cd37222";
sha256 = "0p8h1vmi4bily9wg1vhiqi26pk93pk8lk3ixbwcclhjg6g137p3q";
};
}
{
goPackagePath = "github.com/danjacques/gofslock";
fetch = {
type = "git";
url = "https://github.com/danjacques/gofslock";
rev = "0a45f885bc37dab4affc578e5b8fdc9ce6fa0364";
sha256 = "1bw6jn0r629bjb3qsm35x4ggrm8dypyrlzgxn1yb6r88d68i9dkj";
};
}
{
goPackagePath = "github.com/golang/protobuf";
fetch = {
type = "git";
url = "https://github.com/golang/protobuf";
rev = "ed6926b37a637426117ccab59282c3839528a700";
sha256 = "0fynqrim022x9xi2bivkw19npbz4316v4yr7mb677s9s36z4dc4h";
};
}
{
goPackagePath = "github.com/julienschmidt/httprouter";
fetch = {
type = "git";
url = "https://github.com/julienschmidt/httprouter";
rev = "08a3b3d20bbeeab9ca4889bcdb65fec0423ef882";
sha256 = "1kd649cmmwfl8q802k56g4rzdy3xbjvy90djj11wfq98ka3xnsiy";
};
}
{
goPackagePath = "github.com/maruel/subcommands";
fetch = {
type = "git";
url = "https://github.com/maruel/subcommands";
rev = "967e945be48bc4df686f64d0ff2aac67e9d1b6ec";
sha256 = "1baigh3yz5r0imxgricd5kzkskh59r24cpf66k5vmfm3kkski518";
};
}
{
goPackagePath = "github.com/mitchellh/go-homedir";
fetch = {
type = "git";
url = "https://github.com/mitchellh/go-homedir";
rev = "af06845cf3004701891bf4fdb884bfe4920b3727";
sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1";
};
}
{
goPackagePath = "github.com/op/go-logging";
fetch = {
type = "git";
url = "https://github.com/op/go-logging";
rev = "970db520ece77730c7e4724c61121037378659d9";
sha256 = "1cpna2x5l071z1vrnk7zipdkka8dzwsjyx7m79xk0lr08rip0kcj";
};
}
{
goPackagePath = "github.com/texttheater/golang-levenshtein";
fetch = {
type = "git";
url = "https://github.com/texttheater/golang-levenshtein";
rev = "eb6844b05fc6f7e10932b0621c7f5f7e8890541d";
sha256 = "1xjp0zkkpax85xyya5sispvxl7axjncn7g4qbswxmrya7i6j7ycx";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "e9b2fee46413994441b28dfca259d911d963dfed";
sha256 = "18sz5426h320l9gdll9n43lzzxg2dmqv0s5fjy6sbvbkkpjs1m28";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "c0dbc17a35534bf2e581d7a942408dc936316da4";
sha256 = "1f1xqh2cvr629fkg9n9k347vf6g91jkrsmgmy8hlqdrq163blb54";
};
}
{
goPackagePath = "golang.org/x/oauth2";
fetch = {
type = "git";
url = "https://go.googlesource.com/oauth2";
rev = "858c2ad4c8b6c5d10852cb89079f6ca1c7309787";
sha256 = "1dc7n8ddph8w6q0i3cwlgvjwpf2wlkx407va1ydnazasi1j5ixrw";
};
}
{
goPackagePath = "golang.org/x/sys";
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
rev = "ac6580df4449443a05718fd7858c1f91ad5f8d20";
sha256 = "14gvx65w5lddi20s4wypbbvbg9ni3m8777jhp9nqxhixc61k3dyi";
};
}
{
goPackagePath = "golang.org/x/text";
fetch = {
type = "git";
url = "https://go.googlesource.com/text";
rev = "cbf43d21aaebfdfeb81d91a5f444d13a3046e686";
sha256 = "1h6z2x4ijzd1126zk3lf8f3bp98j1irs7xg6p8nwpymkqkw5laq8";
};
}
{
goPackagePath = "google.golang.org/api";
fetch = {
type = "git";
url = "https://code.googlesource.com/google-api-go-client";
rev = "0aa2214fb2bb8d102cee8406f80891eb0aab247f";
sha256 = "1hlhvhk9j5pmm41azcsivzvcg66w4m415f8a8l5g7qxsa8rpq2zv";
};
}
{
goPackagePath = "google.golang.org/genproto";
fetch = {
type = "git";
url = "https://github.com/google/go-genproto";
rev = "4f79533eabd1449b031c72ba945db241ea585a65";
sha256 = "1sjapkhmzk4imxk4rvgalisgvbwi2ignsil756sdl9w977rxapk5";
};
}
{
goPackagePath = "google.golang.org/grpc";
fetch = {
type = "git";
url = "https://github.com/grpc/grpc-go";
rev = "f7b39d80aa97614c0b4420d120b59dd192d1d521";
sha256 = "0qx8199ydd8ckm29lsg3vb1rzln6ymcbibngb45j1b5sml367rml";
};
}
{
goPackagePath = "gopkg.in/yaml.v2";
fetch = {
type = "git";
url = "https://gopkg.in/yaml.v2";
rev = "1f64d6156d11335c3f22d9330b0ad14fc1e789ce";
sha256 = "0k5xcwkd3wmcx54isk7ck9cwp8fapfhyqdz3f13kxp77cxqizazj";
};
}
]
Loading

0 comments on commit a369299

Please sign in to comment.