replicant - open-source lab · icfoss workshop on free mobile platforms — 11-12 march 2014. ram...

26
Replicant software freedom on mobile devices Paul Kocialkowski [email protected] ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014

Upload: others

Post on 07-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

Replicantsoftware freedom on mobile devices

Paul [email protected]

ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014

Page 2: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

RAM

User I/O

Storage

Integratedcircuits

Modem System on a Chip(SoC)

Hardware-side representation

Simplified overview of mobile devices:

Page 3: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

Software-side representation

Simplified overview of mobile devices:

Kernel

Hardware abstraction libraries

Framework

Applications

SoC

Bootloader

Page 4: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

Software-side representation

Simplified overview of mobile devices:

Non-freesystem

Kernel

Hardware abstraction libraries

Framework

Applications

SoC Modem

Bootloader

Page 5: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

Software-side representation

Simplified overview of mobile devices:

Non-freesystem

Kernel

Hardware abstraction libraries

Framework

Applications

SoC Modem

Non-freefirmware

Integratedcircuits

Bootloader

Page 6: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

Ideal mobile device and best case scenario:

✔ Free hardware✔ Free firmwares✔ Free modem system✔ Free bootloader✔ Free system

Page 7: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

Ideal mobile device and best case scenario:

✔ Free hardware✔ Free firmwares✔ Free modem system✔ Free bootloader✔ Free system

Guarantees from mobile telephony operators:

✔ Neutral access to the Internet✔ No interception of the data✔ No collection of the users positions

Page 8: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

The actual situation today is far from ideal.

Firmwares:● Proprietary firmwares in nearly all integrated circuits● Not always possible to replace the firmware● Free firmwares are hard to write● Free firmwares exist for very specific hardware

Exemples: Arduino, BusPirate, Milkymist One● Firmwares liberated by the manufacturer

Exemple: ath9k_htc

Page 9: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

The actual situation today is far from ideal.

Modem system:● Free GSM stack: OsmocomBB● Supported devices are old● OmsocomBB needs a host computer to operate● Software certification and public networks

Page 10: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

The actual situation today is far from ideal.

Modem system:● Free GSM stack: OsmocomBB● Supported devices are old● OmsocomBB needs a host computer to operate● Software certification and public networks

The modem is one of the most important parts for security!

● Nearly always connected to the GSM network● Remote control● Hardware access

Page 11: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

RAM

User I/O

StorageModem System on a Chip(SoC)

Mobiletelephonyoperator

GPS

CODEC

! Camera

Bad modem isolation:

Page 12: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

RAM

User I/O

StorageModem System on a Chip(SoC)

Mobiletelephonyoperator

GPS

CODEC

Camera

Good modem isolation:

Page 13: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

The actual situation today is far from ideal.

Bootloaders:● Depends on the hardware platform:

Platform TI OMAP Samsung Exynos

Qualcomm Snapdragon

Mediatek Allwinner

Primary loader

Free(X-Loader)

Non-free Non-free Non-free Free

Secondary loader

Free(U-Boot)

Possible(U-Boot,

Coreboot)

Non-free Free? (U-Boot)

Free (U-Boot)

Signature Depends Depends ? Depends No

Page 14: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

The actual situation today is far from ideal.

Various so-called free systems:● Android● Firefox OS● Ubuntu Touch● Tizen● …

Page 15: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

The actual situation today is far from ideal.

Various so-called free systems:● Android● Firefox OS● Ubuntu Touch● Tizen● …

Kernel

Hardware abstraction libraries

Framework

Applications

Free componentsProprietary components

Page 16: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

The current situation:

✗ Locked hardware✗ Non-free firmwares✗ Non-free modem systems✔ Modem isolation is possible✔ Free and unsigned bootloaders exist✔ Free system?

Bottomline:

● If you care about freedom with no compromise or anything serious is at stake: don't use any telephony-enabled device!

● Else, you have to make compromises

Page 17: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

Taking a closer look at free systems, back in 2008:

OpenMoko:● Free hardware design● Isolated modem● Free bootloader● Fully free GNU/Linux systems

Page 18: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

Taking a closer look at free systems, back in 2008:

Android and the HTC Dream/Google G1/ADP1● Proprietary bootloader● Unisolated modem● Free system with AOSP (android.git.kernel.org)● Proprietary hardware abstraction libraries

Goal: freeing the HTC Dream. Replicant was born!

Page 19: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

Android is actually a family of operating systems:

Google's Android

AOSP OEMs'Android

CyanogenMod Omni

Replicant etc

Proprietary Android versionsOpen source Android versionsFully free Android versions

Page 20: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

“ Replicant is a fully free version of Android running on several devices “

● AOSP doesn't run on devices

Other community Android versions:● Proprietary libraries● Proprietary firmwares● Sometimes proprietary applications● Sometimes encourage Google applications● Often include malicious features

Page 21: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

“ Replicant is a fully free version of Android running on several devices “

● Replicant is based upon CyanogenMod● Proprietary libraries replaced or avoided● Proprietary firmwares not distributed● Malicious features removed● F-Droid: free software market with free software applications

Page 22: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

“ Replicant is a fully free version of Android running on several devices “

● Aims to be usable on actual devices● Most of the work: replacing proprietary components● Lots of code to write, little documentation● Various aspects: audio, camera, modem, sensors, etc

Complex tasks, not dealt with:● Firmwares● Graphics acceleration, 3D

Page 23: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

“ Replicant is a fully free version of Android running on several devices “

Most of the work:● Understanding proprietary components● Writing free software replacements

Working with other communities (teamhacksung):● Including other's replacements● Integrating Replicant's work in e.g. CyanogenMod● Better for freedom● Often technically better● Porting to new versions of Android

Page 24: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

“ Replicant is a fully free version of Android running on several devices “

Learn more about Replicant:● Website: http://replicant.us● Wiki/tracker: http://redmine.replicant.us

Get in touch with us:● Forums● Mailing list● IRC channel: #replicant at freenode

Page 25: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation
Page 26: Replicant - Open-Source Lab · ICFOSS Workshop on Free Mobile Platforms — 11-12 March 2014. RAM User I/O Storage Integrated circuits Modem System on a Chip (SoC) Hardware-side representation

Text and diagrams:● © Paul Kocialkowski, CC BY-SA 3.0

Pictures:● Android robot: © Google, CC BY 3.0● Replicant robot: © Mirella Vedovetto, Paul Kocialkowski,

CC BY-SA 3.0● Openmoko Neo FreeRunner: © FIC/OpenMoko, CC BY-SA 3.0● F-Droid logo: © William Theaker, Robert Martinezi, CC BY-SA 3.0● Other pictures: © Paul Kocialkowski, CC BY-SA 3.0