Make proprietary firmware and userspace optional
Created by: ollieparanoid
The built-in wifi and baseband will not work without proprietary firmware on practically all phones. However, we could allow the user to avoid installing these blobs, just like libre distributions do it.
Implementation idea
- Change the device package recipes to generate the following subpackages:
-
device-vendor-name-nonfree-userland
(we don't have proprietary userland right now, so this is not needed) -
device-vendor-name-nonfree-firmware
(depends on the firmware package(s))
(This is really easy in APKBUILDs and can be done with very few lines.)
- Ask in
pmbootstrap init
:
(Explanation text)
(pkgdesc from the nonfree packages, so they can tell which hardware components they enable)
Use non-free components (none, firmware, userland, all)? [firmware]:
We could directly skip the question, in case there is no nonfree subpackage for the device, and only show the firmware/userland choice when such a package exists.
- Depending on what the user chose, the
nonfree
packages and its dependencies get built and installed inpmbootstrap install
.
Advantages
- Make people aware, that there are proprietary components and what they are for
- People who prefer a full libre stack can disable the firmware files which are enabled by default right now (they could use an external modem via usb etc.)
- It would allow packaging proprietary userspace drivers with libhybris (#678 (closed)) in theory, while keeping it cleanly separated for users who do not wish to install them.
- Once we can run proprietary components in pmOS, it might be a lot easier to reverse engineer them.
Thoughts?