general: basic repository; patches

This commit is contained in:
2026-09-13 19:56:03 +02:00
parent 55d47a93ce
commit f6b2282568
12 changed files with 344 additions and 3 deletions
+1
View File
@@ -0,0 +1 @@
/build/
-3
View File
@@ -1,3 +0,0 @@
# builders_rubenslte
TWRP/ROM build scripts and NixOS development shell for SM-T365
Executable
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env bash
set -euo pipefail
export ALLOW_NINJA_ENV=true
export USE_CCACHE=1
export LD_LIBRARY_PATH=/usr/lib:/usr/lib32
export LC_ALL=C
export LANG=C
export LC_CTYPE=C
# export LOCAL_CFLAGS=-Wno-error
BUILD_DIR="./build"
PATCH_DIR="./patches"
MANIFEST_URL="https://github.com/minimal-manifest-twrp/platform_manifest_twrp_omni.git"
MANIFEST_BRANCH="twrp-5.1"
DEVICE_TREE_URL="https://git.cfpi-fpsi.eu:8443/rubenslte/twrp_device_samsung_rubenslte"
KERNEL_URL="https://git.cfpi-fpsi.eu:8443/rubenslte/android_kernel_samsung_rubenslte"
if [ ! -d "${BUILD_DIR}/.repo" ]; then
echo "Creating build directory ${BUILD_DIR} and cloning manifest ${MANIFEST_URL} from branch ${MANIFEST_BRANCH}..."
mkdir -p "${BUILD_DIR}"
cd "${BUILD_DIR}"
repo init --depth 1 -u "${MANIFEST_URL}" -b "${MANIFEST_BRANCH}"
fi
if [ ! -d "${BUILD_DIR}/device/samsung/rubenslte" ]; then
echo "Cloning device tree..."
git clone "${DEVICE_TREE_URL}" "${BUILD_DIR}/device/samsung/rubenslte"
fi
if [ ! -d "${BUILD_DIR}/kernel/samsung/rubenslte" ]; then
echo "Cloning kernel source..."
git clone "${KERNEL_URL}" "${BUILD_DIR}/kernel/samsung/rubenslte"
fi
for patch in "${PATCH_DIR}/*.patch"; do
echo "Applying $(basename "$patch")"
(cd "${BUILD_DIR}" && patch -p1 -N -r- < "$patch" 2>/dev/null || true)
fi
cd "${BUILD_DIR}"
set +u
source build/envsetup.sh
lunch "omni_rubenslte-userdebug"
set -u
mka recoveryimage
echo "Build results in ${BUILD_DIR}/out/target/product/rubenslte"
@@ -0,0 +1,30 @@
From: rubenslte-builder <builder@rubenslte>
Date: Wed, 22 Jul 2026 10:30:00 +0200
Subject: [PATCH 1/8] host-cflags-suppress-stringop-truncation
Suppress -Werror=stringop-truncation for GCC >= 8 host builds
---
diff --git a/build/core/combo/HOST_linux-x86.mk b/build/core/combo/HOST_linux-x86.mk
--- a/build/core/combo/HOST_linux-x86.mk
+++ b/build/core/combo/HOST_linux-x86.mk
@@ -50,6 +50,9 @@
# See bug 12708004.
$(combo_2nd_arch_prefix)HOST_GLOBAL_CFLAGS += -D__STDC_FORMAT_MACROS -D__STDC_CONSTANT_MACROS
+# Suppress warnings treated as errors with GCC >= 8
+$(combo_2nd_arch_prefix)HOST_GLOBAL_CFLAGS += -Wno-error=stringop-truncation
+
$(combo_2nd_arch_prefix)HOST_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
diff --git a/build/core/combo/HOST_linux-x86_64.mk b/build/core/combo/HOST_linux-x86_64.mk
--- a/build/core/combo/HOST_linux-x86_64.mk
+++ b/build/core/combo/HOST_linux-x86_64.mk
@@ -50,4 +50,7 @@
# See bug 12708004.
HOST_GLOBAL_CFLAGS += -D__STDC_FORMAT_MACROS -D__STDC_CONSTANT_MACROS
+# Suppress warnings treated as errors with GCC >= 8
+HOST_GLOBAL_CFLAGS += -Wno-error=stringop-truncation
+
HOST_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
@@ -0,0 +1,48 @@
From: rubenslte-builder <builder@rubenslte>
Date: Wed, 22 Jul 2026 10:30:00 +0200
Subject: [PATCH 2/8] build-core-fix-ar-absolute-paths
Fix ar absolute path issues by extracting to temp dir instead of per-member piping
Use $(abspath ...) for toolchain paths to survive cd in recipe
---
diff --git a/build/core/definitions.mk b/build/core/definitions.mk
--- a/build/core/definitions.mk
+++ b/build/core/definitions.mk
@@ -1180,13 +1180,11 @@ define _extract-and-include-single-target-whole-static-lib
$(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\
rm -rf $$ldir; \
mkdir -p $$ldir; \
- filelist=; \
- for f in `$($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) t $(1)`; do \
- $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) p $(1) $$f > $$ldir/$$f; \
- filelist="$$filelist $$ldir/$$f"; \
- done ; \
- $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_ARFLAGS) \
- $(PRIVATE_ARFLAGS) $@ $$filelist
+ cp $(1) $$ldir/input.a; \
+ cd $$ldir && $(abspath $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR)) x input.a; \
+ rm -f $$ldir/input.a; \
+ $(abspath $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR)) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_ARFLAGS) \
+ $(PRIVATE_ARFLAGS) $@ $$ldir/*.o
endef
@@ -1217,13 +1215,11 @@ define _extract-and-include-single-host-whole-static-lib
$(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\
rm -rf $$ldir; \
mkdir -p $$ldir; \
- filelist=; \
- for f in `$($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_AR) t $(1) | \grep '\.o$$'`; do \
- $($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_AR) p $(1) $$f > $$ldir/$$f; \
- filelist="$$filelist $$ldir/$$f"; \
- done ; \
- $($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_AR) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_GLOBAL_ARFLAGS) \
- $(PRIVATE_ARFLAGS) $@ $$filelist
+ cp $(1) $$ldir/input.a; \
+ cd $$ldir && $(abspath $($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_AR)) x input.a; \
+ rm -f $$ldir/input.a; \
+ $(abspath $($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_AR)) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_GLOBAL_ARFLAGS) \
+ $(PRIVATE_ARFLAGS) $@ $$ldir/*.o
endef
@@ -0,0 +1,42 @@
From: rubenslte-builder <builder@rubenslte>
Date: Wed, 22 Jul 2026 10:30:00 +0200
Subject: [PATCH 3/8] kernel-add-missing-ARCH_MSM-config-and-defconfig-fixes
Add ARCH_MSM Kconfig entry and CONFIG_OF/CONFIG_ARCH_MSM to variant defconfig
---
diff --git a/kernel/samsung/rubenslte/arch/arm/mach-msm/Kconfig b/kernel/samsung/rubenslte/arch/arm/mach-msm/Kconfig
--- a/kernel/samsung/rubenslte/arch/arm/mach-msm/Kconfig
+++ b/kernel/samsung/rubenslte/arch/arm/mach-msm/Kconfig
@@ -1,3 +1,14 @@
+config ARCH_MSM
+ bool "Qualcomm MSM (Snapdragon)"
+ select ARM_GIC
+ select GENERIC_CLOCKEVENTS
+ select GENERIC_IRQ_CHIP
+ select ARM_HAS_SG_CHAIN
+ select SPARSE_IRQ
+ select MULTI_IRQ_HANDLER
+ select HAVE_SCHED_CLOCK
+ select CLKDEV_LOOKUP
+
if ARCH_MSM
menu "MSM SoC Type"
diff --git a/kernel/samsung/rubenslte/arch/arm/configs/msm8926-sec_rubenslte_defconfig b/kernel/samsung/rubenslte/arch/arm/configs/msm8926-sec_rubenslte_defconfig
--- a/kernel/samsung/rubenslte/arch/arm/configs/msm8926-sec_rubenslte_defconfig
+++ b/kernel/samsung/rubenslte/arch/arm/configs/msm8926-sec_rubenslte_defconfig
@@ -1,3 +1,6 @@
+CONFIG_ARCH_MSM=y
+CONFIG_ARCH_MSM8226=y
+
#variant defconfig
CONFIG_MACH_RUBENSLTE_OPEN=y
CONFIG_SEC_RUBENS_PROJECT=y
@@ -173,4 +176,6 @@
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_SHA512=y
CONFIG_LOG_BUF_SHIFT=18
+CONFIG_OF=y
+CONFIG_OF_FLATTREE=y
# FIPS Cerified code merge - end
\ Brak znaku nowej linii na końcu pliku
@@ -0,0 +1,17 @@
From: rubenslte-builder <builder@rubenslte>
Date: Wed, 22 Jul 2026 10:30:00 +0200
Subject: [PATCH 4/8] recovery-add-std-gnu++11-for-nullptr-support
Add -std=gnu++11 to recovery LOCAL_CPPFLAGS for Clang nullptr support
---
diff --git a/bootable/recovery/Android.mk b/bootable/recovery/Android.mk
--- a/bootable/recovery/Android.mk
+++ b/bootable/recovery/Android.mk
@@ -97,6 +97,7 @@
LOCAL_CFLAGS += -DRECOVERY_API_VERSION=$(RECOVERY_API_VERSION)
LOCAL_CFLAGS += -Wno-unused-parameter
LOCAL_CLANG := true
+LOCAL_CPPFLAGS += -std=gnu++11
#LOCAL_STATIC_LIBRARIES := \
# libext4_utils_static \
@@ -0,0 +1,18 @@
From: rubenslte-builder <builder@rubenslte>
Date: Wed, 22 Jul 2026 10:30:00 +0200
Subject: [PATCH 5/8] build-core-combo-remove-icf-safe-for-BFD-ld
Comment out -Wl,--icf=safe (gold-only flag, unsupported by BFD ld)
---
diff --git a/build/core/combo/TARGET_linux-arm.mk b/build/core/combo/TARGET_linux-arm.mk
--- a/build/core/combo/TARGET_linux-arm.mk
+++ b/build/core/combo/TARGET_linux-arm.mk
@@ -143,7 +143,7 @@
-Wl,-z,now \
-Wl,--warn-shared-textrel \
-Wl,--fatal-warnings \
- -Wl,--icf=safe \
+ # -Wl,--icf=safe (unsupported by BFD ld) \
$(arch_variant_ldflags)
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += -mthumb-interwork
@@ -0,0 +1,18 @@
From: rubenslte-builder <builder@rubenslte>
Date: Wed, 22 Jul 2026 10:30:00 +0200
Subject: [PATCH 6/8] kernel-timeconst-pl-fix-deprecated-defined-array
Fix 'defined(@array)' deprecated warning in Perl 5.22+ by using !@val
---
diff --git a/kernel/samsung/rubenslte/kernel/timeconst.pl b/kernel/samsung/rubenslte/kernel/timeconst.pl
--- a/kernel/samsung/rubenslte/kernel/timeconst.pl
+++ b/kernel/samsung/rubenslte/kernel/timeconst.pl
@@ -370,7 +370,7 @@
}
@val = @{$canned_values{$hz}};
- if (!defined(@val)) {
+ if (!@val) {
@val = compute_values($hz);
}
output($hz, @val);
@@ -0,0 +1,19 @@
From: rubenslte-builder <builder@rubenslte>
Date: Wed, 22 Jul 2026 10:30:00 +0200
Subject: [PATCH 7/8] scripts-Makefile-modpost-treat-section-mismatches-as-non-fatal
Comment out -E flag in modpost invocation so section mismatches are warnings
not errors
---
diff --git a/kernel/samsung/rubenslte/scripts/Makefile.modpost b/kernel/samsung/rubenslte/scripts/Makefile.modpost
--- a/kernel/samsung/rubenslte/scripts/Makefile.modpost
+++ b/kernel/samsung/rubenslte/scripts/Makefile.modpost
@@ -80,7 +80,7 @@
$(if $(KBUILD_EXTRA_SYMBOLS), $(patsubst %, -e %,$(KBUILD_EXTRA_SYMBOLS))) \
$(if $(KBUILD_EXTMOD),-o $(modulesymfile)) \
$(if $(CONFIG_DEBUG_SECTION_MISMATCH),,-S) \
- $(if $(CONFIG_NO_ERROR_ON_MISMATCH),,-E) \
+ # $(if $(CONFIG_NO_ERROR_ON_MISMATCH),,-E) \
$(if $(KBUILD_EXTMOD)$(KBUILD_MODPOST_WARN),-w) \
$(if $(cross_build),-c)
@@ -0,0 +1,50 @@
From: rubenslte-builder <builder@rubenslte>
Date: Wed, 22 Jul 2026 10:30:00 +0200
Subject: [PATCH 8/8] build-core-tasks-kernel-fix-KERNEL_CONFIG_OVERRIDE-ordering-and-passthrough
Reorder KERNEL_ADDITIONAL_CONFIG before KERNEL_CONFIG_OVERRIDE, remove
oldconfig after override, pass override on kernel build command line
---
diff --git a/build/core/tasks/kernel.mk b/build/core/tasks/kernel.mk
--- a/build/core/tasks/kernel.mk
+++ b/build/core/tasks/kernel.mk
@@ -209,17 +209,16 @@
$(KERNEL_CONFIG): $(KERNEL_OUT)
$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG)
- $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
- echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
- echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
- $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi
$(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \
echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \
cat $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG) >> $(KERNEL_OUT)/.config; \
$(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi
+ $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
+ echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
+ echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; fi
TARGET_KERNEL_BINARIES: $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL)
- $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE)
+ $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CONFIG_OVERRIDE) $(TARGET_PREBUILT_INT_KERNEL_TYPE)
-$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) dtbs
-$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) modules
-$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) modules_install
@@ -241,14 +240,13 @@
echo "Used a different defconfig for header generation"; \
rm -f ../$(KERNEL_CONFIG); \
$(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG); fi
- $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
- echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
- echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
- $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi
$(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \
echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \
cat $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG) >> $(KERNEL_OUT)/.config; \
$(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) oldconfig; fi
+ $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
+ echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
+ echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; fi
kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG)
$(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) tags
+52
View File
@@ -0,0 +1,52 @@
let
pkgs = import (fetchTarball {
# An older nixpkgs version is required for old GCC and C++
# libraries.
url = "https://github.com/NixOS/nixpkgs/archive/nixos-22.11.tar.gz";
}) {};
fhs = pkgs.buildFHSUserEnv {
name = "android-env";
targetPkgs = pkgs: with pkgs; [
git
gitRepo
gnupg
python2
curl
procps
openssl
gnumake
nettools
android-tools
jdk8
schedtool
util-linux
m4
gperf
perl
libxml2
zip
unzip
bison
flex
lzop
xz
python3
];
multiPkgs = pkgs: with pkgs; [
zlib
ncurses5
pkgsi686Linux.gcc9
pkgsi686Linux.libstdcxx5
];
runScript = "bash";
profile = "export ANDROID_JAVA_HOME=${pkgs.jdk8.home}";
};
in pkgs.stdenv.mkDerivation {
name = "android-env-shell";
nativeBuildInputs = [ fhs ];
shellHook = "exec android-env";
}