Project

General

Profile

Actions

Replicant contributors meeting - July 27-28 2019, Paris, France

Date

The meeting took place the 27 and 28 July 2019.

Location

The event took place in the April office. April is an association for the defense and promotion of free software.

Precise location: April, 44/46 rue de l'Ouest, bâtiment 8, 75014 Paris (It's accesible through the "place de la Catalogne", on the left of the "Biocoop" supermarket). Select "April" on the intercomm.
map: https://www.agendadulibre.org/events/19754
Phone number of the April office: 01 78 76 92 80.

The April office is relatively close to the Gare Montparnasse railway station.

In addition to trains, Gare Montparnasse railway station has also, in the same building, there is a metro station where you can access the metro lines 4, 6, 12 and 13.

Related events

On Friday, a dinner took place.

Dinner meeting time: From 18h30 to 18h45
Dinner meeting location: Near the Montparnasse tower . The Montparnasse tower is very close to the Montparnasse railway station.

At 18h45 we planned to try to find a restaurant nearby.

Airports

The two main airports near Paris are the Roissy Charles de Gaulle International Airport and the Paris Orly Airport.

Roissy Charles de Gaulle International Airport <-> Gare Montparnasse railway station

To get to the Gare Montparnasse railway station from the Roissy Charles de Gaulle International Airport by public transportation, you can take the RER B metro line up to the Denfert-Rochereau station where you can take the line 6 up to the Gare Montparnasse railway station.

Paris Orly Airport <-> Gare Montparnasse railway station

To get to the Gare Montparnasse railway station from the Paris Orly Airport by public transportation, you can take the Orlyval up to the Antony stop, and from there take the RER B metro line up to the Denfert-Rochereau station where you can take the line 6 up to the Gare Montparnasse railway station.

More information

Wikivoyage has a page on Paris and France which have many practical information such as:
  • Visa and other border requirements
  • How to stay safe
  • The climate
  • Information on the public transportation
  • SIM cards

It also has pages on the Roissy Charles de Gaulle International Airport and the Paris Orly Airport with more details on the public transportation lines to use to go to Paris, which tickets to buy, etc.

Contacting the organizers

You could use the Replicant private contact mail address in advance to obtain the cellphone number of an organizer to be able to use it in case of issue (like being lost, not finding the location of the meeting, etc).

Presentations

Topic Source code Slides Video Rationale of the talk
Replicant history
$ git clone --recursive https://git.replicant.us/GNUtoo/presentations.git
$ cd path/to/presentation
$ make
pdf 720p ogv The borders had to be cut to preserve the privacy of people passing by in the street. It was also encoded 3 times instead of 2 to save human time. * Has some context that might be useful for new Replicant contributors
* Has information on the relationship between Replicant and GNU/Linux
Replicant and bootloaders pdf 720p webm * The Galaxy SIII (and similar devices) bootloader status is complicated and relevant to Replicant 9
Replicant and modems: introduction pdf 720p webm * Meant to enable new contributors to work on the modem part
Replicant and modems: Samsung IPC pdf 720p webm
Replicant and oFono based Java RIL pdf 720p webm
Porting AOSP for a new device Made with Libreoffice which leaks metadata pdf Not recorded
Graphics acceleration on Replicant
$ git clone https://git.replicant.us/hominoid/graphics-presentation.git
$ cd graphics-presentations
$ make
pdf 720p webm * Explains why Replicant needs special care on the graphics stack.
* Introduces both graphics' hardware and software architecture.
* Dives into the implementation decisions.
* Lays out future plans.

License: CC-BY-SA 4.0 International

Planned discussions

The discussions were not recorded for privacy/intimacy reasons but a sumary of some of the important ones are available below on this page.

Topic Time and dependencies Status Rationale
Discussions on the bootloader situation on the Galaxy SIII and similar smartphones After the talk on the bootloaders
Discussions on minimal requirement to accept a device in Replicant:
* Do we still accept devices with modems that are not isolated?
* Do we have plan to require free software bootloaders?
* Do we require replacable batteries?
After the talk on modems and bootloaders
Discussions on the future of Replicant:
* Which devices do we target
* Do we continue focusing on devices with signed bootloaders
* Allwinner tablets, upstream Linux, and scalability
* Devices with non-replacable batteries
After the talk on Replicant history
Discussion about Upstream components, design choices, and cultural re-appropriation of technology
* Upstream
* Issues when combining together different build systems (Example: Android build system with Kconfig)
* Sharing work with GNU/Linux to enable more political control and cultural re-appropriation of mobile device in the long run, and the risk associated with it
* Android upstream anti-features and political design choices
* How subjective security is, threat models, and the difference between free software and device maker point of view
Please take a look at Upstream before attending if possible.

Known schedule constraints

  • On Sunday, the April offices had to be closed at 16h, so we had to pack everything and leave the room at that time.

Available hardware

Devices

Good practices:
  • It would be a good idea to put your name on a sticker on the device if possible
Person Hardware Comments Usage
GNUtoo Galaxy SIII (I9300) with the stock bootloader
Galaxy SIII 4G (I9305) with the stock bootloader
Galaxy SIII 4G (I9305) with u-boot
Galaxy Nexus (I9250) with the stock bootloader
Galaxy SII (I9100) with the stock bootloader
GTA04 A3
GTA04 A4
Optimus black (P970)
GTA01 Used in a presentation about Replicant history
GTA02
HTC Dream
N900 Testing the battery charger driver is still needed but require a heavy PSU
Fil Galaxy Note 2 (N7100) stock bootloader [Working] Available for non-critical tests * Test the upstream touchkey driver
=> TODO:
* Bring a Parabola microSD (GNUtoo)
* Test the patch with an I9300
* Rebase the patch on master or linux-next
Galaxy SIII (I9300) stock bootloader [Working] Test Subject available for any experiment
Galaxy SIII (I9300) stock bootloader [Bricked] available for hardware hacking * Test fixing the phone
Galaxy Tab 2 7.0 (GT P3100) Property of the Replicant Project * Add support for it in the BackupTheEFS instructions
Paulk Galaxy Note (N7000) * Add support for it in the BackupTheEFS instructions
Galaxy Tab 2 10.1 (P5100) * Add support for it in the BackupTheEFS instructions
Looking for a Galaxy Note 8.0 (N5100) * Add support for it in the BackupTheEFS instructions

Debug utilities

Person Hardware Comments Usage
GNUtoo Serial port cable with variable resistors
Multimeter
Simtrace 1: Can get the dialog between the modem and the SIM card in wireshark
SIM card that is not recognized in Replicant (STK related?) Test on Replicant 4.2 and on Replicant 6.0
SIM card + phone that can trigger the audio call issue
Sigrok compatible adjustable power supply Not sure to bring it (heavy)
Fil SIM card that is not recognized in Replican 6

Discussion results

Do we care about supporting devices with non-removable batteries?

Points that were mentioned or discussed:
  • This impacts the design decisions as supporting new devices through upstream code takes longer than hacking together the vendor code not to require nonfree libraries.
  • Because of that either users, repair shops or Replicant device vendors will need to have a viable way to change the non-removable battery.
  • If this is not the case it would force the Replicant project to race to try to support a device while it's still being sold new. If not users buying devices would have a battery that doesn't last enough when bought second hand.
  • It's too hard, even for vendors like Technoethical which have some expertise in that area to upgrade non-removable batteries when the case is sealed. Practically speaking that could be done but the end result would not be as good as the new device, like the sealing would not be as good, making users damage the phone as they would expect the sealing to work.
Consensus in that meeting:
  • The cost for Replicant would be too high, so participant thought that not caring about devices without non-removable batteries and prioritize to support devices in Replicant through upstream project was better

Do we require free software bootloaders ?

Points that were mentioned or discussed:
  • The Pinephone should be released in the next months (3 months?) but it's not released yet.
  • Some other devices with free software bootloaders are not released yet either
  • Some concerns were raised on the fact that the Librem5 bootloader might contain nonfree software, which Replicant doesn't want to redistribute. A link to Purism's plans was also mentioned. Paul also mentioned that it might be possible that replacing the nonfree part was doable and that it would solve the issue
Consensus in that meeting:
  • Too early to do that: Replicant 9 is not out yet and it will work on devices with nonfree bootloader at first, but the work could be reused later by devices with free software bootloaders

Do we require isolated modems ?

Points that were mentioned or discussed:
  • On one hand it would make it easier for users to understand the freedom privacy and security they are getting with Replicant. The information is often distorted up to the point where some users think that Puri.sm laptops are running only free software (while in reality there are non-free software involved in the boot such as the FSP, and a minimal Management Engine firmware).
  • On the other hand some users might already have devices that were supported by Replicant before and that don't have an isolated modem. This would leave such users with old versions of Replicant.
Consensus in that meeting:
  • The devices with non-isolated modems might not be easy to support in Replicant 9 anyway, so we could drop them
  • This will need to be announced for the Replicant 9 release as this way the information would propagate more efficiently to people.

How to handle the various keys used to sign releases, and other related things and should the recovery check signatures

Points that were mentioned or discussed:
  • The installation instructions need to be as simple as possible => If users have to check the signatures only once it's better. So now users check the recovery only, which then checks the rest.
  • The people involved in local Replicant install parties (in Paris) will help local Replicant users to update the recovery
  • Technoethical previously stated that the users having bought devices already running Replicant through them are either able to install new recoveries or that they are able to help them do it
Consensus in that meeting:
  • Keys usage in the short term: Developers sign with their keys
  • Keys usage in the longer term (requires time to implement it): use a keyring with the public key of several Replicant developers, like it is done in Parabola with the parabola-keyring package
  • Keep checking signatures by default in the recovery

Improve information for current and potential Replicant users

Points that were mentioned or discussed:
  • Fil Bergamo plans to work on an unified table that has various information on devices supported by Replicant:
  • He plans to add in information about what hardware feature are supported or not
  • He plans to add information about how likely are the devices to be supported in the next Replicant 6 and 9 releases
  • A "device getting guide" was also mentioned, to help users find which supported devices are the best for them

Improving the Replicant website

Points that were mentioned or discussed:
  • It would be nice to make information for users more accessible on the main page (https://replicant.us)
Consensus in that meeting:
  • Also enable translations in other languages than English in the wiki, but warn readers that the information might be outdated when it's translated.

Making it easier for anyone to contribute to Replicant

Points that were mentioned or discussed:
  • A question was raised about making a welcome page for new Replicant contributors. That page is supposed to already exist in the wiki => Find it and look at it.
Consensus in that meeting:
  • Create working groups on various part of Replicant (such as the documentation, f-droid issues, etc) and split the Redmine instance in sub-project accordingly. It would also enable to have different settings for the subgroups.
  • Modify the People page to enable any contributor or potential contributors to add themselves in that page with the topic they would want to work on and the skills they have. The Replicant front page (https://replicant.us) would be modified to make sure that this is visible to potential contributors.
  • Add pointers to C courses and to where to get the skills required to contribute to the Replicant system source code.
  • Try to find a way to make a simple presentation on Replicant, that would give a simple overview how how Replicant and the hardware works.

Funding work on f-droid

Consensus in that meeting:
  • Enabling Fil Bergamo to work on making F-Droid FSDG compliant through NlNet funding

Using oFono RIL

Points that were mentioned or discussed:
  • Enabling Fil Bergamo to work on making that through NlNet funding
Consensus in that meeting:
  • Using oFono RIL is a good idea, even if it's unmaintained. Replicant would then become its maintainer

FSDG compliance and How to moderate the forums

Points that were mentioned or discussed:
  • One of the main issue was the fact that people might have legitimate interest in linking to post from XDA which would contain both very valuable technical information, while not respecting the FSDG guidelines at all and pushing users to run nonfree software.
  • Legal issues were raised as well when linking to external material and such.
  • Some examples were given on how to handle some common issues:
    • Link to a book chapter advocating for DRM on the FSF website:
      URL: https://www.fsf.org/blogs/sysadmin/the-management-engine-an-attack-on-computer-users-freedom
        For more information about Digital Restrictions Management and the Management Engine,
        see from page 191 [...].
        This chapter tries to justify the usage of Digital Restrictions Management (DRM).
        DRM is totally unacceptable as it requires the users not to be in control of their
        computers to effectively prevent them from exercising their legal rights (such as fair
        use, or being able to copy published works). That chapter clearly shows the link between
        preventing users from controlling their hardware and effective DRM.
        
    • Link to service manuals etc:
      URL: NexusSI902xSerial
        These documents are the propriety of Samsung Electronics and are not
        hosted by the Replicant project. However, some excerpts from these documents
        are provided, for the purpose of providing technical evidence of the facts that
        are mentioned in this page. We believe that this particular use of the copyrighted
        work is fair use.
        
    • Mention of proprietary software in Replicant wiki, including how to "use" it:
      URL: SamsungGalaxyBackdoor
        
        The following analysis was conducted using the libsec-ril.so binary file
         (the incriminated proprietary software) as extracted from the CyanogenMod 10.1.3
         system zip for the Galaxy S 3 (I9300), from location system/lib/libsec-ril.so.
        
    • GNU Kind Communications Guidelines:
      URL: https://www.gnu.org/philosophy/kind-communication.html
        By contrast, to suggest that others use nonfree software opposes the basic
        principles of GNU, so it is not allowed in GNU Project discussions.
        
    • Trisquel Community Guidelines:
      URL: https://trisquel.info/en/wiki/trisquel-community-guidelines
        Our community's resources --the forum, documentation, etc--
        are for free software only. Please do not distribute,
        recommend, or support non-free software here.
        

People in this discussion realized that the forum is relatively small so it's doable to have it moderated.

Plan of action:
  • Describe what should is acceptable or not for the forums, wiki, etc
    • "Please do not distribute, recommend, or support non-free software here"
    • Also describe the above examples there if possible to help people linking to information in the right way.
  • How to handle violations of the policy
    • On case by case basis. Help educate people on the matter and how to deal with it, especially on how to link to external information. |

Do we ship some external applications in Replicant

Points that were mentioned or discussed:
  • Yes, but how does the selection process would look like?
  • Which browser we should add => One that works and that doesn't have freedom privacy or security issues
  • Firefox Lite was mentioned but it was dismissed due to very concerning privacy issues with its privacy policy

Using wayland for the graphic stack?

Points that were mentioned or discussed:
  • Using wayland for the graphics backend
  • Might loose some performance due to the fact that Wayland plug in Android too low in the stack
  • No performances test were performed with Wayland.

AOSP vs LineageOS

Points that were mentioned or discussed:
  • Using LineageOS repos makes less sense due to consensus about supporting devices with removable batteries.
  • AOSP has stable/tagged releases whereas LineageOS lacks that
  • AOSP is also better documented
    Since:
  • LineageOS uses many repositories from AOSP already (Implicit at the time of the talk, not explicited)
  • we still want some of the features from LineageOS (like root)
    We will need to look into more details which repositories to use from LineageOS and from AOSP
Consensus in that meeting:
  • Getting closer to AOSP

Android upstream vs GNU/Linux upstream

Consensus in that meeting:
  • Getting closer to GNU/Linux upstream (for hardware support like modems, etc)

Video encoding

Sound

The microphone was mono, with only a channel from the left. So we need to create mono audio files from the videos.

To make the sound go in both channel, do the following in Audacity:

  • Create a new project with File -> New
  • Import the video file with File -> Open
  • Click on the audio channel -> Split Stereo to Mono
  • Delete the second channel
  • File -> Export -> Export as WAV

Video

The videos were recorded with some equipement that was lent to us:
  • A camera that outputed mp4 files on an SD card
  • One wireless microphone

=> Next time ask if they have a second microphone available for questions.

  • The videos are splitted in several mp4 files
  • The part before the presentation has to be removed

Kdenlive is being used for that.

Using kdenlive with Nouveau (with default settings), xfce4 under Parabola manage to freeze the screen (there are some messages like "nouveau: kernel rejected pushbuf: Cannot allocate memory" that can be observed when launching kdenlive through SSH).

To workaround that the following was used:
  • gnome3 (probably under wayland)
  • pushbuffer enabled in the module parameters for nouveau

=> It's still slow while zomming in the timeline but it manage not to freeze the whole graphics stack.

To edit a video with kdenlive:
  • create a project, and select the right resolution (720p 25fps here)
  • Import the videos files to use with project->Add clip
  • Also import the mono audio files that you just converted with audacious
  • Import the clips from the Project bin into the timeline with drag and drop
  • Right click on the imported click in the timeline and select Ungroup
  • Right click on the audio below, and select remove
  • Import the mono audio file from the Project bin in the timeline with drag and drop
Once that is done you can remove the part before the presentation this way:
  • In the timeline you can zoom at the maximum level
  • Use the cisors to divide the zone in two, you only need to click once with the left click to separate two zones
  • Select the arow again (on the left of the cisors) and right click on the zone to remove, and select remove
  • Do that for both the video and the audio tracks, then move both to the left to remove the gap done by the removal if there is one.

Files

Updated by Denis 'GNUtoo' Carikli almost 2 years ago · 187 revisions

Also available in: PDF HTML TXT