Skip to content
This repository was archived by the owner on Dec 23, 2024. It is now read-only.

Link to DivestOS repo #228

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3,766 changes: 3,766 additions & 0 deletions -fdroiddata/metadata/us.spotco.fennec_dos.yml

Large diffs are not rendered by default.

91 changes: 89 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,85 @@
![Banner](https://divestos.org/images/featureGraphics/Mull.png)

What's this?
------------

Scripts and patches to compile [Fennec F-Droid](https://f-droid.org/packages/org.mozilla.fennec_fdroid/). They remove proprietary chunks from Mozilla code, rebrand Firefox to Fennec and build it. You can assemble your own APK in the very same way as F-Droid by cloning [recipes](https://gitlab.com/fdroid/fdroiddata) and running
This is a fork of Relan's excellent [fennecbuild repository](https://gitlab.com/relan/fennecbuild).
It allows compiling the entirety of Fenix without prebuilts along with removal of the proprietary blobs.

fdroid build org.mozilla.fennec_fdroid:VERCODE
This fork is specifically for compiling Mull.
It enables many features upstreamed by the Tor Uplift project using preferences from the [arkenfox-user.js project](https://github.com/arkenfox/user.js).
It was originally created as builds of the patchset from [bug 1419581](https://bugzilla.mozilla.org/show_bug.cgi?id=1419581).

This is compiled using fdroidserver.
You will need to copy the config files from -fdroiddata/ into their respective folders first.
Then run:
```
fdroid build us.spotco.fennec_dos:VERCODE
```
where VERCODE is a version code number.
VERCODE is currently prepended with 2 as an epoch for upgrade from old Fennec-based Mull.
The second to last number of the VERCODE corresponds to the architecture to compile.
0 = ARMv7, 1 = x86, 2 = AArch64

[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it from the official F-Droid Repository"
height="80">](https://divestos.org/apks/official/fdroid/repo/?fingerprint=E4BE8D6ABFA4D9D4FEEF03CDDA7FF62A73FD64B75566F6DD4E5E577550BE8467)

Known Issues
------------
Please see the list of known issues and workarounds before opening an issue!
https://divestos.org/index.php?page=broken#mull

Updating
--------
- Setup: `git remote add upstream https://gitlab.com/relan/fennecbuild`
- Update:
```
git fetch upstream
git rebase upstream/master
```

Setting up the VM
-----------------
Getting a working fdroidserver is a bit tricky.
Here are some steps to get you in the right direction.
- Setup a VM, you'll want at least 16GB RAM and 64GB of storage
- Fedora 39 has been tested to work
- `git clone https://gitlab.com/fdroid/fdroidserver.git`
- `git clone https://gitlab.com/fdroid/fdroiddata.git`
- Install JDK 8 and 17, set 17 as default
- Put this in your path as your gradle, make sure the folder above it is writable for its cache:
```
wget https://gitlab.com/fdroid/fdroidserver/-/raw/master/gradlew-fdroid -O gradle
```
- Disable the Gradle daemon to prevent OOM:
```
mkdir -p ~/.gradle && echo "org.gradle.daemon=false" >> ~/.gradle/gradle.properties
```
- setup Android SDK/NDK:
```
mkdir android android-ndk
wget https://dl.google.com/android/repository/tools_r25.2.3-linux.zip
unzip tools_r*-linux.zip -d android/
android update sdk --no-ui
android update sdk --no-ui --filter build-tools-30.0.2,android-30,build-tools-30.0.0-preview,build-tools-29.0.3,android-29,build-tools-28.0.3,android-28 --all
wget https://dl.google.com/android/repository/android-ndk-r26c-linux.zip
unzip android-ndk-r26c-linux-x86_64.zip -d android-ndk/
echo "ndk_paths = { 'r26c': \"\$ANDROID_NDK\" }" >> fdroiddata/config.py
```
- Add the following to your .bashrc
```
export ANDROID_HOME=~/android
export ANDROID_NDK=~/android-ndk/android-ndk-r26c
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
export PATH=$PATH:~/fdroidserver
```
- `source .bashrc`
- Fedora:
```
sudo ln -sf /usr/lib/jvm/java-17-openjdk /usr/lib/jvm/java-17-openjdk-amd64
sudo ln -sf /usr/lib/jvm/java-1.8.0-openjdk /usr/lib/jvm/java-8-openjdk-amd64
```

Licenses
--------
Expand All @@ -15,3 +89,16 @@ The scripts are licensed under the GNU Affero General Public License version 3 o
Changes in the patch are licensed according to the header in the files this patch adds or modifies (Apache 2.0 or MPL 2.0).

The artwork is licensed under the MPL 2.0.

The userjs-00-arkenfox.js file is licensed under MIT.

Notices
-------

Mozilla Firefox is a trademark of The Mozilla Foundation

Divested Computing Group is not affiliated with Mozilla

Mull is not sponsored or endorsed by Mozilla

Firefox source code is available at https://hg.mozilla.org
9 changes: 7 additions & 2 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,13 @@ source "$(dirname "$0")/paths.sh"
# plugins (Glean).

# Set up Android SDK
sdkmanager 'build-tools;34.0.0' # for GeckoView
sdkmanager 'ndk;25.2.9519653' # for GleanAS
if grep -q "Fedora" /etc/os-release; then
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk" "$ANDROID_HOME/tools/bin/sdkmanager" 'build-tools;34.0.0' # for GeckoView
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk" "$ANDROID_HOME/tools/bin/sdkmanager" 'ndk;25.2.9519653' # for GleanAS
else
sdkmanager 'build-tools;34.0.0' # for GeckoView
sdkmanager 'ndk;25.2.9519653' # for GleanAS
fi;

# Set up Rust
# shellcheck disable=SC1090,SC1091
Expand Down
125 changes: 0 additions & 125 deletions fenix-artwork/Makefile

This file was deleted.

Loading