13 Commits

Author SHA1 Message Date
Andy CrossGate Yan
ddeacb4806 Changes for April 2024
- Patch and build TrebleApp on the go, instead of maintaining a prebuilt
2024-04-21 19:48:43 +08:00
Andy CrossGate Yan
7606279838 Changes for October 2023 2023-10-17 23:42:56 +08:00
Andy CrossGate Yan
9f869d4103 Changes for March 2023 2023-03-23 11:49:53 +00:00
Andy CrossGate Yan
00252b7911 Changes for January 2023
Basically reverts the "integrally securized" part
2023-01-12 13:31:35 +00:00
Andy CrossGate Yan
4be3e8a1ee Changes for November 2022 2022-11-23 12:27:09 +00:00
Andy CrossGate Yan
06910904b1 Changes for October 2022 2022-10-12 00:44:02 +00:00
Andy CrossGate Yan
edac506b6b Changes for September 2022 2022-09-12 08:10:54 +00:00
Andy CrossGate Yan
25a793cf7b Changes for August 2022 2022-08-14 09:03:49 +00:00
Andy CrossGate Yan
7f12647565 Changes for July 2022 2022-07-21 23:52:38 +00:00
Andy CrossGate Yan
4b82b0afb6 Changes for June 2022 2022-06-13 23:47:18 +08:00
Andy CrossGate Yan
cc8b3a087c Changes for May 2022 2022-05-12 00:10:13 +00:00
Andy CrossGate Yan
c951663f9d Changes for April 2022 2022-04-09 13:31:57 +00:00
Andy CrossGate Yan
884974a470 Changes for March 2022
- 19.1, update readme for it too
- Proper target names #2
- Remove obsolete envvars
- Include apply_patches.sh from treble_experimentations
2022-03-20 08:59:42 +00:00
4 changed files with 68 additions and 43 deletions

View File

@@ -3,32 +3,28 @@
To get started with building LineageOS GSI, you'll need to get familiar with [Git and Repo](https://source.android.com/source/using-repo.html), and set up your environment by referring to [LineageOS Wiki](https://wiki.lineageos.org/devices/redfin/build) (mainly "Install the build packages") and [How to build a GSI](https://github.com/phhusson/treble_experimentations/wiki/How-to-build-a-GSI%3F).
First, open a new Terminal window, which defaults to your home directory. Clone the modified treble_experimentations repo there:
First, open a new Terminal window, which defaults to your home directory. Create a new working directory for your LineageOS build and navigate to it:
git clone https://github.com/AndyCGYan/treble_experimentations
Create a new working directory for your LineageOS build and navigate to it:
mkdir lineage-18.x-build-gsi; cd lineage-18.x-build-gsi
mkdir lineage-19.x-build-gsi; cd lineage-19.x-build-gsi
Initialize your LineageOS workspace:
repo init -u https://github.com/LineageOS/android.git -b lineage-18.1
repo init -u https://github.com/LineageOS/android.git -b lineage-19.1 --git-lfs
Clone both this and the patches repos:
git clone https://github.com/AndyCGYan/lineage_build_unified lineage_build_unified -b lineage-18.1
git clone https://github.com/AndyCGYan/lineage_patches_unified lineage_patches_unified -b lineage-18.1
git clone https://github.com/AndyCGYan/lineage_build_unified lineage_build_unified -b lineage-19.1
git clone https://github.com/AndyCGYan/lineage_patches_unified lineage_patches_unified -b lineage-19.1
Finally, start the build script - for example, to build for all supported archs:
bash lineage_build_unified/buildbot_unified.sh treble 32B A64B 64B
bash lineage_build_unified/buildbot_unified.sh treble A64VN A64VS A64GN 64VN 64VS 64GN
Be sure to update the cloned repos from time to time!
---
Note: A-only and VNDKLite targets are generated from AB images instead of source-built - refer to [sas-creator](https://github.com/AndyCGYan/sas-creator).
Note: VNDKLite and Secure targets are generated from built images instead of source-built - refer to [sas-creator](https://github.com/AndyCGYan/sas-creator).
---

33
apply_patches.sh Normal file
View File

@@ -0,0 +1,33 @@
#!/bin/bash
set -e
patches="$(readlink -f -- $1)"
shopt -s nullglob
for project in $(cd $patches; echo *);do
p="$(tr _ / <<<$project |sed -e 's;platform/;;g')"
[ "$p" == build ] && p=build/make
[ "$p" == frameworks/proto/logging ] && p=frameworks/proto_logging
[ "$p" == treble/app ] && p=treble_app
[ "$p" == vendor/hardware/overlay ] && p=vendor/hardware_overlay
[ "$p" == vendor/partner/gms ] && p=vendor/partner_gms
pushd $p
git clean -fdx; git reset --hard
for patch in $patches/$project/*.patch;do
if git apply --check $patch;then
git am $patch
elif patch -f -p1 --dry-run < $patch > /dev/null;then
#This will fail
git am $patch || true
patch -f -p1 < $patch
git add -u
git am --continue
else
echo "Failed applying $patch"
exit 1
fi
done
popd
done

View File

@@ -46,8 +46,6 @@ echo\
START=`date +%s`
BUILD_DATE="$(date +%Y%m%d)"
WITHOUT_CHECK_API=true
WITH_SU=true
prep_build() {
echo "Preparing local manifests"
@@ -64,29 +62,19 @@ prep_build() {
mkdir -p ~/build-output
echo ""
repopick -t twelve-monet
repopick -Q "status:open+project:LineageOS/android_packages_apps_AudioFX+branch:lineage-19.0"
repopick -Q "status:open+project:LineageOS/android_packages_apps_Etar+branch:lineage-19.0"
repopick -Q "status:open+project:LineageOS/android_packages_apps_Trebuchet+branch:lineage-19.0+NOT+317783+NOT+318747"
repopick -t twelve-burnin
repopick -t twelve-buttons
repopick -t twelve-fingerprint
repopick -t twelve-volume-panel-location
repopick -t twelve-swap-volume-buttons
repopick -t twelve-camera-button
repopick -t twelve-navbar-runtime-toggle
repopick -t twelve-buttons-lights
repopick -t twelve-keyboard-lights
repopick -t twelve-statusbar-brightness-and-qs-slider
repopick -t twelve-powermenu
repopick 321337 # Deprioritize important developer notifications
repopick 321338 # Allow disabling important developer notifications
repopick 321339 # Allow disabling USB notifications
repopick -t twelve-burnin -r -f
repopick 321337 -r -f # Deprioritize important developer notifications
repopick 321338 -r -f # Allow disabling important developer notifications
repopick 321339 -r -f # Allow disabling USB notifications
repopick 329229 -r -f # Alter model name to avoid SafetyNet HW attestation enforcement
repopick 329230 -r -f # keystore: Block key attestation for SafetyNet
repopick 331534 -r -f # SystemUI: Add support to add/remove QS tiles with one tap
repopick 331791 -r -f # Skip checking SystemUI's permission for observing sensor privacy
}
apply_patches() {
echo "Applying patch group ${1}"
bash ~/treble_experimentations/apply-patches.sh ./lineage_patches_unified/${1}
bash ./lineage_build_unified/apply_patches.sh ./lineage_patches_unified/${1}
}
prep_device() {
@@ -103,37 +91,46 @@ finalize_device() {
}
finalize_treble() {
rm -f device/*/sepolicy/common/private/genfs_contexts
cd device/phh/treble
git clean -fdx
bash generate.sh lineage
cd ../../..
cd treble_app
bash build.sh release
cp TrebleApp.apk ../vendor/hardware_overlay/TrebleApp/app.apk
cd ..
cd vendor/hardware_overlay
git add TrebleApp/app.apk
git commit -m "[TEMP] Up TrebleApp to $BUILD_DATE"
cd ../..
}
build_device() {
if [ ${1} == "arm64" ]
then
lunch lineage_arm64-userdebug
make -j$(nproc --all) systemimage
mv $OUT/system.img ~/build-output/lineage-19.0-$BUILD_DATE-UNOFFICIAL-arm64$(${PERSONAL} && echo "-personal" || echo "").img
make -j$(lscpu -b -p=Core,Socket | grep -v '^#' | sort -u | wc -l) systemimage
mv $OUT/system.img ~/build-output/lineage-19.1-$BUILD_DATE-UNOFFICIAL-arm64$(${PERSONAL} && echo "-personal" || echo "").img
else
brunch ${1}
mv $OUT/lineage-*.zip ~/build-output/lineage-19.0-$BUILD_DATE-UNOFFICIAL-${1}$($PERSONAL && echo "-personal" || echo "").zip
mv $OUT/lineage-*.zip ~/build-output/lineage-19.1-$BUILD_DATE-UNOFFICIAL-${1}$($PERSONAL && echo "-personal" || echo "").zip
fi
}
build_treble() {
case "${1}" in
("A64B") TARGET=treble_a64_bvS;;
("A64BG") TARGET=treble_a64_bgS;;
("64B") TARGET=treble_arm64_bvS;;
("64BG") TARGET=treble_arm64_bgS;;
("A64VN") TARGET=a64_bvN;;
("A64VS") TARGET=a64_bvS;;
("A64GN") TARGET=a64_bgN;;
("64VN") TARGET=arm64_bvN;;
("64VS") TARGET=arm64_bvS;;
("64GN") TARGET=arm64_bgN;;
(*) echo "Invalid target - exiting"; exit 1;;
esac
lunch lineage_${TARGET}-userdebug
make installclean
make -j$(nproc --all) systemimage
mv $OUT/system.img ~/build-output/lineage-19.0-$BUILD_DATE-UNOFFICIAL-${TARGET}$(${PERSONAL} && echo "-personal" || echo "").img
mv $OUT/system.img ~/build-output/lineage-19.1-$BUILD_DATE-UNOFFICIAL-${TARGET}$(${PERSONAL} && echo "-personal" || echo "").img
make vndk-test-sepolicy
}

View File

@@ -6,8 +6,7 @@
<project name="phhusson/vendor_interfaces" path="vendor/interfaces" remote="github" revision="android-11.0" />
<project name="phhusson/vendor_lptools" path="vendor/lptools" remote="github" revision="master" />
<project name="phhusson/vendor_magisk" path="vendor/magisk" remote="github" revision="android-10.0" />
<project name="TrebleDroid/treble_app" path="treble_app" remote="github" revision="master" />
<remote name="gitlab" fetch="https://gitlab.com/" />
<project name="davi.sh/gms-android-12" path="vendor/partner_gms" remote="gitlab" revision="master" />
<remove-project name="platform/packages/apps/Gallery2" />
<project name="LineageOS/android_packages_apps_Gallery2" path="packages/apps/Gallery2" remote="github" revision="lineage-18.1" />
</manifest>