fb7f99efe2
Unmaintained is a name which on multiple occasions have seen lead to confusion with people having the impression that unmaintained is for all unmaintained devices, which is not how we're really using it. Many devices in testing do not actually have a maintainer, yet there has been no push to move these out of there and into unmaintained. I think this is a result of that unmaintained was introduced not to keep unmaintained ports but rather a place to store ports that have a better replacement but where the inferior one still holds some sort of value, such as for debugging purposes. These ports also are not necessarily entirely unmaintained and see more fixes than many ports in testing. While one approach to solving this problem could be to simply moving all unmaintained ports to unmaintained, I think this comes with some problems: It would require an initial effort to figure out which ports are indeed unmaintained and which just don't have a maintained noted in the package, and given how many ports there are in testing this would be a big endeavour. It would also require continuous work on moving ports into unmaintained as the maintainers go silent if we are to keep testing and unmaintained's state consistent with reality. Additionally, just because a port doesn't have a maintainer on paper doens't mean that there aren't people who aren't willing to fix it up if there are issues that arise. As such, I think the way to go is renaming unmaintained to better reflect the original intent. Thanks to Luca Weiss for suggesting "archive", and to Arnav Singh for suggesting that "archived" would match the other category names better.
80 lines
2.4 KiB
Diff
80 lines
2.4 KiB
Diff
From 92e3310d2db157deacb86ef5db8c8c8d38251312 Mon Sep 17 00:00:00 2001
|
|
From: Alexey Min <alexey.min@gmail.com>
|
|
Date: Wed, 11 Sep 2019 21:51:40 +0300
|
|
Subject: [PATCH 3/6] Add config option to fix bootloader cmdline args
|
|
|
|
Android bootloader passes some arguments in kernel command
|
|
line, that make booting custom OSes harder:
|
|
|
|
* skip_initramfs
|
|
* root=PARTUUID=...
|
|
* init=/init
|
|
|
|
Those parameters override default boot partition to hardcoded,
|
|
set init binary to /init, disable booting from initramfs.
|
|
|
|
If enabled, those parameters will be erased from bootloader's
|
|
command line, and custom OS can boot the way it likes.
|
|
|
|
Signed-off-by: Alexey Min <alexey.min@gmail.com>
|
|
---
|
|
arch/arm64/Kconfig | 17 +++++++++++++++++
|
|
drivers/of/fdt.c | 14 ++++++++++++++
|
|
2 files changed, 31 insertions(+)
|
|
|
|
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
|
|
index 2829edba6aa5..bd9f05f83c7e 100644
|
|
--- a/arch/arm64/Kconfig
|
|
+++ b/arch/arm64/Kconfig
|
|
@@ -1125,6 +1125,23 @@ config CMDLINE_FORCE
|
|
command-line options your boot loader passes to the kernel.
|
|
endchoice
|
|
|
|
+config CMDLINE_DROP_DANGEROUS_ANDROID_OPTIONS
|
|
+ bool "Drop certain dangerous options from cmdline"
|
|
+ default n
|
|
+ help
|
|
+ Android bootloader passes some arguments in kernel command
|
|
+ line, that make booting custom OSes harder:
|
|
+
|
|
+ * skip_initramfs
|
|
+ * root=PARTUUID=...
|
|
+ * init=/init
|
|
+
|
|
+ Those parameters override default boot partition to hardcoded,
|
|
+ set init binary to /init, disable booting from initramfs.
|
|
+
|
|
+ If enabled, those parameters will be erased from bootloader's
|
|
+ command line, and custom OS can boot the way it likes.
|
|
+
|
|
config EFI_STUB
|
|
bool
|
|
|
|
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
|
|
index ca175710c4c8..fd8257589648 100644
|
|
--- a/drivers/of/fdt.c
|
|
+++ b/drivers/of/fdt.c
|
|
@@ -1012,6 +1012,20 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
|
|
|
|
pr_debug("Command line is: %s\n", (char*)data);
|
|
|
|
+#ifdef CONFIG_CMDLINE_DROP_DANGEROUS_ANDROID_OPTIONS
|
|
+ pr_err("Replacing dangerous cmdline options...");
|
|
+ cmdline = strstr((const char *)data, "skip_initramfs");
|
|
+ if (cmdline)
|
|
+ *cmdline = '_';
|
|
+ cmdline = strstr((const char *)data, "root=");
|
|
+ if (cmdline)
|
|
+ *cmdline = '_';
|
|
+ cmdline = strstr((const char *)data, "init=");
|
|
+ if (cmdline)
|
|
+ *cmdline = '_';
|
|
+ pr_err("Command line now is: %s\n", (char*)data);
|
|
+#endif
|
|
+
|
|
/* break now */
|
|
return 1;
|
|
}
|
|
--
|
|
2.24.1
|
|
|