h1. Tasks This page describes how to help Replicant if you have some time at hand. h2. Project focus h3. Support devices with free software bootloaders and isolated modem While supporting many common (Samsung) phones and tablets is relatively easy and fast to do, we think that it's at lot more important to support devices that are better for freedom. Many Samsung devices we do support have an isolated modem, however we can't free their bootloader because it is signed. Devices like the GTA04 or the LG Optimus Black don't have this bootloader issue, while still having an isolated modem. We therefore strongly advise to pick tasks that would improve the support for these more freedom-friendly devices in Replicant. We however still accept contributions for devices with isolated modems and non-free bootloaders. h3. Support devices with upstream GNU/Linux support The devices currently supported by Replicant rely on heavily modified and device specific versions of the Linux kernel along with hardware abstraction libraries that are made specifically for it. This raises several issues: * It limits the life of the device, as Replicant is then dependent on LineageOS to update the kernel version, which is a lot of work. * Replicant doesn't share the work with GNU/Linux, which makes Replicant more dependant on Google, and doesn't help GNU/Linux to work well on smartphones. * Replicant doesn't work out of the box with devices already using upstream Linux kernels. To fix that, Replicant needs to: * Find or port a device to the upstream Linux kernel. * Add very minimalistic support for that device to Replicant, while using the upstream Linux kernel. * Write or adapt hardware support libraries to work with the upstream Linux kernel, in a way that is not tied to a specific device but would support any device using a standard Linux kernel. Filtering the issue tracker for open issues, which have either one of the priorities "immediate":/projects/replicant/issues?set_filter=1&f[]=status_id&op[status_id]=o&f[]=priority_id&op[priority_id]=%3D&v[priority_id][]=39&f[]=&c[]=tracker&c[]=status&c[]=priority&c[]=subject&c[]=assigned_to&c[]=updated_on&c[]=category&c[]=cf_21&group_by=, "urgent":/projects/replicant/issues?set_filter=1&f[]=status_id&op[status_id]=o&f[]=priority_id&op[priority_id]=%3D&v[priority_id][]=33&f[]=&c[]=tracker&c[]=status&c[]=priority&c[]=subject&c[]=assigned_to&c[]=updated_on&c[]=category&c[]=cf_21&group_by= or "high":/projects/replicant/issues?set_filter=1&f[]=status_id&op[status_id]=o&f[]=priority_id&op[priority_id]=%3D&v[priority_id][]=27&f[]=&c[]=tracker&c[]=status&c[]=priority&c[]=subject&c[]=assigned_to&c[]=updated_on&c[]=category&c[]=cf_21&group_by=, lists the important current tasks. Additionally, below is an overview over tasks where help is greatly appreciated. h2. Tasks that don't require specific hardware * Fix the security vulnerabilities "reported in the issue tracker":/projects/replicant/issues?set_filter=1&f[]=status_id&op[status_id]=o&f[]=category_id&op[category_id]=%3D&v[category_id][]=141&f[]=&c[]=tracker&c[]=status&c[]=priority&c[]=subject&c[]=assigned_to&c[]=updated_on&c[]=category&c[]=cf_21&group_by= (Very important) * Make a more complete EGL implementation like llvmpipe usable so newer webview versions and Firefox-based browsers can be used (Feature #705) (Very important as it affects security) * Include a F-Droid version in Replicant that is compatible with the GNU Free System Distribution Guidelines (Very important) (Issue #1629) * Make it easy to rebuild the prebuilt parts of the toolchain and other binaries in the source code ([[Toolchain]]) (Important). * Make it easy to build and release a Replicant NDK or a package with build tools from the Replicant source code (Issue #1787 and Feature #837, see also [[NDKBuild]] for Replicant 4.2) * Improve software video decoding (Feature #1521) (Less important) * Create a Replicant boot animation (Feature #1797) h2. Device-specific tasks * Improve hardware-specific graphics acceleration (Feature #1491, [[GraphicsResearch]]) (Important if it can benefits devices with free bootloaders) * Improve various aspects of [[Samsung-RIL]] (add support for missing features and/or correct bugs) (Issue #1485) * Figure out the [[BCM4751]] GPS protocol and write a free implementation (Feature #1473) (Important since it affects many devices, including the Optimus Black) * Make the [[GSD4t]] GPS work (Feature #1479) * Make the [[OMAP4DucatiCamera|camera]] for the Galaxy Nexus and Galaxy Tab 2 variants work (Feature #351) * Add the missing audio scenarios for Bluetooth (AD2P, calls, etc) and dock audio for the [[GalaxyS2I9100|Galaxy S2 (I9100)]] (#1497) * Write free firmware replacements for WiFi, Bluetooth, camera and hardware media encoding/decoding chips on Replicant-supported devices h2. Wiki and this page * Write guidelines for reporting bugs They should clarify which kind of issues should rather be discussed in the forums and how security issues should be reported. * Add a research page about isolation of components running non-free software explaining methods to determine the isolation level Add detailed documentation about modem isolation for supported devices there * Make sure the hardware of supported devices is documented, at least with a hardware table * Create a page to inform about freedom issues (including anti-features) with other distributions (e.g. CopperheadOS) * Describe the project priorities and the required hardware if any * Create videos that users can follow that outline how to install and use Replicant on supported devices.