- Table of contents
Adding support for a new device can range from almost no time (minutes or very few hours) to a lot of time (several years). So we typically try to choose wisely which devices to spend time on.
As Replicant is a community project, anyone can add support for a device if it meets the Minimal-requirements defined by the Replicant project.
If you don't plan to add support for the device yourself, it might still be a good idea to see if it meets the Minimal-requirements and to see if it's has less freedom issues for than the devices currently supported, as it could make people (more) interested in adding support for that device. Having existing free software support for many hardware features that are typically mising (Free WiFi firmware, free software GPS implementation, etc) could also make people more interested.
If it doesn't meet the criteria, the Replicant project is open to collaboration to helping you adding support for that device in other project, and/or to help you fork Replicant to do that.
See the What can I do if my device doesn't meet the Replicant project's criteria section below for more details on that.
Adding support for a device¶
The Replicant developers are typically available on the mailing list, and on IRC (depending on the days and hours of the day). We do accept patches on the mailing list.We also have guides that can help getting started such as:
- freedom-privacy-security-issues : It's probably the place to start if you're new to smartphones and/or tablets. To explain the various issues, it also explains the hardware and software architecture of smartphones and tablets. This can help getting a clear picture of how things interact together.
- DevicePortingGuide : It's a guide to add support for a new device. At the time of writing, it focus on Replicant 6.0. New guides will probably be made for newer Replicant versions after they are released.
- The Replicant wiki has a lot of information on various parts of the hardware and the software, along with debugging tricks, usage tips etc.
- You can also ask for help on the Mailing list and the IRC.
What can I do if my device doesn't meet the Replicant project's criteria¶The idea behind the criteria is that we want to make things simple and easy for users and developers:
- We want to be able to tell things like "All devices supported by Replicant since Replicant 6 have an isolated modem".
- For Replicant, we don't want to deal with non-replaceable batteries as we plan to support devices for a very long time after they were launched.
However we're still open to collaboration with those wanting to add support for devices that don't meet Replicant criteria.
Replicant can help you fork Replicant to support such devices, as it would be sad not to have them supported by a fully free software distribution.
We can also accept patches for devices that don't many of the criteria: for instance merging patches to add support for a phone with a non-isolated modem will probably not hurt.
However as Replicant will not maintain this phone, so you might have to maintain that part of the code. And we won't even be able to test that code, as it's likely that we will not have the device you are adding support for.
The Replicant developers are typically available on the mailing list, and on IRC (depending on the days and hours of the day). We do accept patches on the mailing list.
What can I do if my device requires too much work to run a fully free distribution ?¶You have several choices:
- You could still add the device in other distributions that are not fully free.
- You may also want to consider forking Replicant
We will still be open to collaboration as long as it's on the free software parts.For instance the Replicant project already collaborates with other projects, some of which have serious freedom issues:
- Replicant developers already upstreamed support for the Galaxy SII Audio in Cyanogenmod (which later became LineageOS). LineageOS uses nonfree binaries to make many hardware features work, however thanks to this collaboration, LineageOS maintained that code for us and LineageOS users and developers had one less binary on the Galaxy SII.
- Sometimes we also work together with people from PostMarketOS, and with people trying to add support for devices in LineageOS
- Replicant developers also upstreamed patches in Linux for Replicant.
And it would still be a good idea to collaborate on the free software parts, as sometimes as people work on free software, less and less nonfree software become required for some specific devices.
For instance, the Lime2, which is an ARM Single board computer, probably required a nonfree bootloader long time ago, and noadays we have free replacements for it. The video decoding offload also didn't work with free software, and now it does. Nowadays all hardware features probably work with free software.
While that is not the case for all hardware devices, enabling collaboration to have more and more free software, even for device that don't run only free software, looks like a good strategy.