SPLSTD Final
SPLSTD Final
SPLSTD Final
by
Rajasekhar Ponakala
A special study report submitted in partial fulfillment of the requirements for the
degree of Master of Engineering in
Information and Communication Technology
Nationality: Indian
Previous Degree: Bachelor of Technology in Electronics and Communication Engineering
Jawaharlal Nehru Technological University Hyderabad, India
i
Acknowledgments
I would like to thank my advisor Dr. Matthew N. Dailey for the valuable suggestions, guid-
ance, and encouragement that helped me to complete my special study.
I would also like to thank the committee members, Dr. Attaphongse Taparugssanagorn and
Dr. Mongkol Ekpanyapong, for their valuable comments and suggestions for this report. I
would also like to thank my friends in the ICT department at AIT for their support.
Last but not the least, I would also like to thank my parents, for their love, support, and
encouragement.
Rajasekhar Ponakala
December 2017
ii
Abstract
The Android Open Source Project (AOSP) is a community-driven model for the development
of mobile operating system platforms. Developers around the world distribute and share
code, enabling others to use it and develop their own AOSP variants. This special study is
aimed at identifying opportunities and challenges in developing a completely free and open
source mobile operating system based on AOSP.
LineageOS, an active fork of the now-defunct CyanogenMod AOSP variant, has been ported
to several different devices since its initial release. LineageOS ships with a complete set of
binary firmware and shows the way for developers around the world to develop alternative
platforms to Google Mobile Services.
In this special study, I describe the installation of LineageOS on a OnePlus One mobile
device. I first describe the installation of a pre-built LineageOS image to the device, and
then I explain how i compiled the available source to build my own LineageOS image for
the device. Source compilation provides a more complete understanding of device-level OS
builds.
I also discuss various alternatives to Google Mobile Services. All the available alternative
services are in the development stage. A promising approach is the reverse engineering mi-
croG project, which is a free and open source re-implementation of Google Mobile Services.
Such alternatives to Google’s services, meaning client-side free and open source applica-
tions and libraries, provide an excellent base upon which can build completely free and open
source background services as well as applications on mobile devices.
iii
Table of Contents
Title Page i
Acknowledgments ii
Abstract iii
Table of Contents iv
List of Figures v
List of Tables vi
1 Introduction 1
1.1 Background 1
1.2 Problem Statement 2
1.3 Objectives 3
1.4 Organisation of the report 3
2 Literature Review 4
2.1 Mobile Operating Systems 4
2.2 Google Mobile Services and other alternative applications 4
2.3 Application Repositories 6
2.4 microG Project 7
2.5 Related works on Android Open Source Project 7
3 Methodology 9
3.1 Device Partitions 9
3.2 Custom Roms 9
3.3 Android SDK Platform Tools 10
3.4 Boot-loader and Recovery Mode 10
3.5 Wiping Partitions 10
3.6 Flashing LineageOS 11
3.7 Open GApps 11
3.8 Installing microG suite 12
4 Results 13
4.1 Pre-build Installation 13
4.2 Source Compilation 13
5 Discussion and Conclusion 21
5.1 Discussion 21
5.2 Conclusion 21
6 References 22
iv
List of Figures
v
List of Tables
vi
Chapter 1
Introduction
This chapter provides information about the Background, Problem Statement and Objective of the
study.
1.1 Background
The Android Operating System (OS) is a free and open source, fully customizable mobile OS plat-
form. The Android Open Source Project (AOSP), which provides a framework for the development of
Android, uses a community-driven model for the improvement of mobile operating system platforms.
Developers around the world can distribute and share code. This helps others to use the shared code
and develop their own AOSP variants. In November 2007, AOSP was announced. Since the initial
release of the AOSP, many popular variants have been introduced. AOSP is led by Google and the
Open Handset Alliance (OHA). Android source code is released under an open source license, but
paradoxically, most Android devices ship with a combination of free and open source and proprietary
firmware, especially the firmware required for accessing Google Play Services.
Google Play Services, generally referred to as Google Mobile Services (GMS), has system-level
control over the mobile device. It is part of the Google Apps package and is proprietary. Developers
having the intention to develop an open source application and publish it on the Play store need to
agree upon Google’s terms, which state that a few parts of the code are proprietary. This paradoxical
situation of the impossibility of launching a complete free and open source applicaton via the Play
Store raises many privacy and security-related concerns.
AOSP has functioned as the baseline for all original equipment manufacturers (OEMs) and community-
run packaged firmware such as CyanogenMod. Some of the apps inside AOSP have been abandoned
and then released on Google Play with a closed-source model. Many apps only function when Google
Play Services are available. Examples include Gmail, YouTube, and Google Maps.
There are many distributions of Android. CyanogenMod (CM) was a popular fork of AOSP developed
by Cyanogen (Cyngn) Inc. that emphasized allowing its users to modify everything on the platform.
In December 2016, Cyanogen Inc. announced the discontinuation of the CyanogenMod project. One-
Plus’ first phone, Oneplus One, was a popular smart phone featuring Cyanogen OS when it shipped in
2015. Builds builds are still available. Immediately after the discontinuation of CyanogenMod, Lin-
eageOS took up the effort to continue towards the goal. It is a fork of the now-defunct CyanogenMod
version of Android. Similar to CM, the LineageOS project is being extended by many device-specific
maintainers.
LineageOS emphasizes the delivery of a complete free and open source project. This is in contrast
with the usual way to run Android hardware, in which source code is adapted by original equip-
ment manufacturers (OEMs) that produce parts and equipment that were originally manufactured by
another company.
1
1.2 Problem Statement
This section states various problems with the Android Open Source Project in practice.
Most Android application developers rely on the Application Programming Interfaces (APIs) of
Google Play services. These services include the location API, which is needed for all map-related
work on a mobile device. Google Play Services is a proprietary code base; hence, nobody knows
precisely how applications using it work. There are many similar APIs for which we do not have
access to the full source code.
For years, Google has been adding functionality not only to the AOSP code base, but also to its
own proprietary binary libraries and very specific GMS (Google Mobile Services). Manufacturers
must pass a compatibility test to receive official GMS support from Google. Usually, the code being
tested includes device drivers that are proprietary, meaning there is no hope of looking at the code
to understand what happens inside. As a user of proprietary software is not allowed to control its
execution (the vendor and other third parties control it), he or she cannot prevent tracking and selling
his or her information to advertising companies, and he or she is prevented from doing all possible
things on the device. At a high level, users are controlled and directed to do what vendors want them to
do. On a practical level, users are continually told that their devices are obsolete just because vendors
fail to upgrade the firmware. Specifically, even though AOSP is free and open source software in
theory, in practice most devices uses dozens of proprietary blobs to control the actual hardware.
Most Android-based devices are manufactured with a chip-set named Qualcomm Snapdragon. This
is a system on chip (SOC) semiconductor device designed and marketed by Qualcomm for mobile
devices. Qualcomm develops a large number of propreitory device drivers for the SOC. Other device
manufacturers have to buy the SOC and drivers from Qualcomm. For example, the H.264 video and
audio codec library for the Snapdragon is actually developed by Qualcomm, who owns a patent on it.
Being closed source, any flaws of the hardware-level implementation of the mobile phone are nearly
impossible to fix.
Documents released by Edward Snowden have revealed that the National Security Agency (NSA)
and Global Surveillance joint programs, such the program named PRISM, aims at collecting all pos-
sible information about people around the world by partnering with companies such as Microsoft,
Facebook, Apple, and Google (MacAskill, 2013). LineageOS is aimed at community development
that reaches the masses and provides a purely free and open source operating system. GMS is not
2
provided by default in LineageOS. Instead, users can decide themselves whether or not to load it.
Alternatives to GMS are in the development phase. The LineageOS developer community is focused
on better free and open source operating system software for users to have a complete functional OS
in their hands.
1.3 Objectives
The objective of this study is to understand the implications of the AOSP on technology freedom,
identifying weaknesses and opportunities for LineageOS, and to experiment with LineageOS on a
real device.
• Perform a technology review to know more about the AOSP and identify methods to continue
LineageOS on different platforms.
• Make a plan for possible contribution to LineageOS to help improve the AOSP.
Chapter 1 provides the background, problem statement, and objectives of the study. Chapter 2 pro-
vides a literature survey. Chapter 3 describes the methodology of my study. Chapter 4 discusses
preliminary results. Discussion and conclusion are in Chapter 5.
3
Chapter 2
Literature Review
This chapter reviews mobile operating systems and Google Mobile Services (GMS) and compares
alternatives to GMS such as independent email applications, alternative search engines, offline maps,
and alternative application repositories. I also provide information regarding the previous work.
In general, a mobile OS typically starts up when a device powers on, presenting a screen with icons
or tiles that present information and provide application access. Mobile operating systems manage
cellular and wireless network connectivity, as well as phone access. All of these tasks must be han-
dled by an embedded system.
Around 1994, IBM launched the first smartphone, named IBM Simon, which only had a touchscreen,
email, and PDA features. Slightly later, Symbian Ltd introduced Symbian OS, which was used by
Nokia and then became the first modern mobile OS on a smartphone with the launch of the Ericsson
R380 mobile phone. Around 2008, the Open Handset Alliance (OHA) released Android 1.0 based
on the Linux kernel on the HTC Dream (T-Mobile G1) as the first Android phone. Android’s first
version had features including the GMS from the beginning.
AOSP, being an open source developer community spread around the world, enables introduction of
different custom ROMs enabling users to modify the system. LineageOS, which is a recent fork of
the defunct of CyanogenMod ROM, allows users to side-load GMS or leave it out.
Google Mobile Services (GMS) includes applications and services provided by Google that enhance
the user’s mobile experience. Applications such as Gmail, Chrome, Google Maps, YouTube, Google
Docs, and the Play Store are pre-installed in stock Android versions. These are closed source applica-
tions. There are many privacy and data mining issues with GMS because they ships many proprietary
blobs with unknown functions in the software and device drivers. Google Play Services has two major
components: client library and external Android Package Kit (APK) files. The client library contains
interfaces to the individual Google services and allows them to obtain authorization from users to
gain access to Google Play Services with their credentials. It also contains APIs that allows resolving
any issues at runtime, such as a missing, disabled, or out-of-date Google Play services APKs. The
Google Play Services APK contains the individual Google services and runs as a background service
in the OS. Figure 2.1 shows an overview of the Google Play Services and their operation.
4
Figure 2.1: Overview of Play Services
(https://developers.google.com/android/guides/overview)
Independent Email Applications such as K-9 Mail, Tutanota, and ProtanMail help developers to re-
view and modify their source as intended under a free and open source model. K-9 Mail is the most
popular alternative mail service has several features. Tutanota and Proton are also being the popular
alternative mail services has the end-to-end encryption infrastructure. As GMS is unable to assuage
user’s privacy concerns, these kind of alternative email applications are necessary.
There are different search engines available as alternatives to Google search. All of these search
engines are based on search engine optimization (SEO) techniques. DuckDuckGo (DDG) is a popular
open source alternative to Google search. It emphasizes protecting searchers’ privacy and avoiding
personalized search results. DDG distinguishes itself from other search engines by claiming that it
does not profile its users and deliberately shows all the users same search results for a given search
term. It emphasizes returning the best results rather than the most results and generates those results
from over 400 individual sources. It includes key crowdsourced sites such as Wikipedia and other
search engines such as Bing, Yahoo!, Yandex, and Yummly.
DDG has an interesting feature, “!Bang” syntax, which allows searchers to use keywords from a
menu list and directly search over different available sites. There is also the possibility of writing
DDG tools on the “DDG hack” platform. Some parts of DDG’s source code is free software is hosted
at GitHub under the Apache 2.0 License, but the core is proprietary. It is used by a few corporations
5
as a default option in the provided list. On 18 September 2014, Apple included DDG in its Safari
browser as an optional search engine (Schwartz, 2014). On 10 November 2014, Mozilla added DDG
as a search option to Firefox 33.1 (Mozilla, 2014). On 30 May 2016, The Tor Project made DDG
the default search engine for Tor Browser 6.0 (Johnson, 2016). DDG earns revenue by providing ads
from the Yahoo-bing search alliance and also through partner relationship with Amazon and ebay.
For alternative Maps utilities, open street mapping is the popular model. The open street mapping
(OSM) community has developed capabilities for offline maps. This had led to a great deal of growth
in the community. OSM is a collaborative project to create a free editable map of world. The creation
and growth of OSM has been motivated by restrictions on use or availability of map information
across the world, and the advent of inexpensive portable satellite navigation devices. OSM is consid-
ered a prominent example of volunteered geographic information (Anderson, 2006).
Applications such as Maps.Me and OsmAnd provide offline maps and free navigation utilities. They
has been developed in the free and open source model. Maps.Me features includes, offline map data,
GPS support, offline search, offline routes for cars and by foot, a Map Editor, Bookmark, Locations,
bookmarks sharing, and KML import. The OsmAnd features includ, navigation, map viewing, using
OSM and Wikipedia data, safety features, bicycle and pedestrian features, and directly contributing
to OSM.
Most of the apps in the Google Play Store are not open source, and many of them are loaded with
proprietary blobs and many try to gather information about their users. There are a few independent
app stores that allow open source software. One such implementation is F-Droid. F-Droid is a
software repository (or app store) for Android applications, similar to the Google Play store. The main
repository hosted by the project, contains apps that are free and open-source software. Applications
can be browsed and installed from the F-Droid website or client app. There is no need to register for an
account. Applications incorporating advertising, user tracking, or dependence on non-free software
must inform users in the app descriptions. The website offers the source code of the applications it
hosts, and the software running the F-Droid server is also open, allowing anyone to set up their own
app repository. This software repository is licensed under GNU GPLv3+ (Nardi, 2012).
6
2.4 microG Project
The microG project is a free and open source re-implementation of Googles proprietary Android
client side apps and libraries. Different free and open source applications require Googles proprietary
libraries to be installed. To solve this problems, different scenarios led to the development of a free
and open source software clone of Googles proprietary core libraries and applications. The main idea
of this project was to build a free and open source replacement for all proprietary parts injected by
Google into the Android ecosystem. The components of this project are shown below.
• Service Core (GmsCore): This is a library application that provides functionality to run
Google Play Services or the Google Maps Android API.
• Services Framework Proxy (GsfProxy): This is a utility that allow apps developed for
Google Cloud to Device Messaging (C2DM) to use the compatible Google Cloud Messag-
ing service included with GmsCore.
• Unified Network Location Provider (UnifiedNlp): This is a library that provides Wi-Fi and
cell-tower-based geolocation to applications that use Googles network location provider. It is
included in GmsCore but can also run independently on most Android systems.
• Maps API (mapsv1): This is a system library which provides the same functionality as the
now deprecated Google Maps API v1.
• Store (Phonesky): This is a front-end application providing access to the Google Play Store
to download and update applications.
There have been many projects building on the AOSP demonstrating tasks such as reverse engineer-
ing, exploring the Play Store, and privacy-and security-related aspects of the project. Table 2.4 shows
this related works.
7
Table 2.1: Work plan for research
1 (Viennot, Garcia, & Nieh, 2014) Developed a method for crawling the Play
Store applications and observing 3rd party
application usage from users. The author
8
Chapter 3
Methodology
This chapter provides information about the implementation of LineageOS on the Oneplus One de-
vice. It mainly focuses on Device Partitioning, Custom ROMs, Android SDK Platform Tools, Boot-
loader and Recovery Mode, Wiping Partitions, Flashing LineageOS, and Open GApps.
All Android devices follow a standard internal storage partition tree. As Oneplus One is an Android-
based mobile device, it follows the same kind of partitioning. A partition tree usually consists of
partitions such as boot, system, recovery, data, cache, and misc. In addition to these partitions, the
device also has a sdcard partition. Following are some individual details about the above-mentioned
partitions.
• boot: This partition is essential for a device to boot. It comprises of the kernel and the ramdisk.
• system: This partition stores the entire operating system, other than the kernel and the ramdisk.
This includes the Android user interface in addition to all the applications that are pre-installed
on the device.
• recovery: This is an alternative boot partition that lets users boot the device into a recovery
console for advanced recovery and maintenance operations.
• data: This partition contains the user’s data. All the contacts, messages, settings, and apps are
installed by default on this partition.
• misc: This partition stores miscellaneous system settings. This includes, settings such as
carrier or region ID (CID), USB configuration, and a few hardware settings. This partition
changes from device to device.
• sdcard: Usually, this is not a partition on the internal memory storage device but a mounted
seperate SD card partition storing media, documents, and Custom ROMs.
LineageOS, which continues the defunct CyanogenMod project, is a custom ROM. It gives different
facilities to users to modify the system according to their interests. Currently, LineageOS has custom
builds for 29 devices, each of which has different versions. LineageOS developers also provides a
procedure to build LineageOS for specific user devices.
9
At present, OnePlus company has five different devices, and OnePlus One is the first version of their
flagship product line. For each of these devices, LineageOS has different nightly builds, which are
maintained regularly. OnePlus One’s nightly builds are named under the codename “bacon”. In order
to proceed with the installation, users should download a nightly build.
At first, OnePlus One was pre-installed with CyanogenMod OS. By December 2016, there were no
future stock updates from the company. During that period, the device had CyanogenMod 13.1 as
the stock OS. Before installing LineageOS, it is recommended to flash the unofficial CyanogenMod
13.1.2 OS first, as it upgrades to the latest firmware. Before installing any custom ROM, it is sug-
gested to have the latest firmware on the device. Android SDK platform tools help to interact with
the device shell and further interact with wiping partitions, flashing the OS, and other tasks.
Android SDK Platform Tools are basic to developing Android applications. The toolset include tools
that interface with the Android platform, such as adb, fastboot, and systrace. These tools help unlock
the device boot-loader and allow flashing it with a new system image. Using fastboot, a device can be
flashed with a recovery file, then adb can be used to flash a custom ROM through the recovery mode.
adb also allows the device shell to be accessed.
In general, the bootloader is a software program that activates an operating system. We can utilize the
fastboot tool to switch to bootloader mode in order to flash a new version of the OS. This involves a
complete format of the partition tree. To perform privileged shell-level activities, we must unlock the
bootloader in order to give root access to the system partitions.
As mentioned earlier, the recovery partition is a separate partition on the system. It helps users to
recover a damaged system with the help of tools. Besides the stock recovery mode, a device can be
loaded with a custom recovery tool. Usually, custom recovery provides more functions than the stock
recovery. There are many custom recoveries, among which ClockworkMod (CWM) and TeamWin
(TWRP) are the most popular. CWM is a software company, whereas TWRP is an open source
community project.
In order to flash a custom ROM, the device’s partitions should first be formatted. Partitions such as
data, system, and cache must be wiped from the system. This is because most data is stored in those
partitions. In many of the cases, normal wiping works, but if partitions are not wiped correctly, a hard
wipe may be required; this means a full format of the device. OnePlus One uses the ext4 format for
10
the partition tree, and it requires a hard wipe to format the partition tree, because this requires several
back and forth operations regarding the OS.
Flashing LineageOS on OnePlus One requires a few basic steps. As mentioned earlier, we should first
upgrade to the stock version of CM 13.1.2 and follow by flashing an experimental migration build
of LineageOS. This is because of the firmware included in the last stock version. LineageOS builds
prior to that stock version are deprecated, and now version 14 nightly builds should be used for all
devices.
We must make sure to have a full backup of the system, as data is not recovered after formatting the
storage device. Also, the device needs a full charge before proceeding with the installation.
The XDA-developer community maintains the unofficial stock CM 13.1.2 version in the form of
downloadable zip file. We must also make sure to download the Android SDK platform tools for
Debian GNU/Linux (now it is only implemented in this environment). We must place the downloaded
CM 13.1.2 zip in the SDK tools directory.
We enter fastboot mode and flash the zip file before connecting it to the laptop. TWRP is suggested on
user forums. We must check the device information to make sure the flashed OS is as expected. Next,
to flash LineageOS, we must make sure to download the experimental migration build from CM.
Finally, by repeating the above steps, LineageOS can be successfully installed. Hereafter, nightly
builds can be received as updates occur.
It is possible to install the bundled Google Apps package. This package depends on Google Mobile
Services. LineageOS offers users a choice to side-load these bundled GApps.
11
3.8 Installing microG suite
To enable the services offered by the microG project, we have to install the microG-LineageOS build
of the OS. To flash this version of LineageOS, we follow same steps previously described earlier to
flash LineageOS. Utilizing the Android platforms tools, we can install the zip file from the TWRP
recovery mode.
One issue in using microG is that we have to enable signature spoofing in the system application
settings. Signature spoofing allows applications to behave as if they have been signed by a third
party. This means that whenever one application asks the operating system for the certificate used to
sign an installed package and that package uses signature spoofing, instead of the original certificate
associated with the app, a spoofed certificate is returned. This certificate has to be announced in the
AndroidManifest file, and the app is required to request the android-permission-FAKE-SIGNATURE
file permission. These signatures are used to verify the integrity of a package and to ensure that
the new version is from the same author when the system updates the app. The verification process
normally relies on the fact that, only one author has access to the private key used to sign an app. A
different author is not able to sign an app using the same key, because he does not have access to it,
and thus cannot provide update to another authors application. Signatures are thus an essential part
of the Android package management security system.
Besides the official Play store app, there are other application stores that providing utilities similar to
the Play Store, and the Yalp store is one of them. Yalp Store lets us download apps from the Google
Play Store as apk files. It can be installed as a system app to gain background package installation
permission. It is independent from the Google Services framework. It uses the same remote API that
the Play store app uses.
12
Chapter 4
Results
This chapter gives results for the work that was done in chapter 3. It has the two method results which
are based on the pre-build installation and source code compilation.
First, I attempted installation through the pre-build images from the official LineageOS website. This
process utilizes the Android studio platform tools. As the process involves two upgrades, first the
Oneplus One needs to be upgraded to the LineageOS experimental build, then we follow with the
nightly update as they occur. The whole process took two hours on a 2.5 GHz CPU with 3GB RAM.
Table 4.1 shows the specifications of the OnePlus One mobile phone.
Next I fetched the source from the official LineageOS project page in Github. I did the build on a
virtualbox with Ubuntu 16.04 as the host system. The process took nine hours to build the entire image
on a 3.10GHz CPU-i5-4440 with RAM of 5GB. In order to build proprietary modules, I extracted
those modules sources from existing LineageOS device. Here, I used the pre-build image for the
OnePlus One device to extract the sources of the proprietary modules. The code is available in official
LineageOS Github page. The Figures 4.1-4.4 show the post execution directories of the LineageOS
source compilation.
13
4.2.1 Main tree of build files
14
4.2.2 Output build files
15
4.2.3 Extracting proprietary files
Here I show the proprietary files shipping in the existing LineageOS pre-built image for the OnePlus
One. All the files are categorized under different processes. Following are the details about the
proprietary files.
• ADSP is the Application DSP (digital signal processor), which allows the device to process
simple sets of data on low power, without having to wake up the Application processor (AP).
It can run custom applications to perform simple tasks, such as word detection for voice recog-
nition, sensor data aggregation from the accelerometer and gyroscope, and is also utilized for
low power music playback. In the device it include different files are as follows:
– bin/adsprpcd
– vendor/lib/libadsprpc.so
– vendor/lib/libfastcvadspstub.so
– vendor/lib/libfastcvopt.so
– bin/btnvtool
– bin/hciqcomminit
– vendor/lib/libbtnv.so
– vendor/lib/libacdbloader.so
– vendor/lib/libacdbrtac.so
– vendor/lib/libadiertac.so
– vendor/lib/libaudcal.so
– vendor/lib/soundfx/libqcbassboost.so
– vendor/lib/soundfx/libqcreverb.so
– vendor/lib/soundfx/libqcvirt.so
– bin/qseecomd
– lib/libdrmdecrypt.so
– vendor/lib/libQSEEComAPI.so
– vendor/lib/libdrmfs.so
– vendor/lib/libdrmtime.so
– vendor/lib/librpmb.so
– vendor/lib/libssd.so
– vendor/lib/libwvdrmL3.so
16
– vendor/lib/libwvm.so
– vendor/lib/libWVStreamControlAPIL3.so
– vendor/lib/drm/libdrmwvmplugin.so
– vendor/lib/mediadrm/libwvdrmengine.so
– etc/firmware/a330pfp.fw
– etc/firmware/a330pm4.fw
– vendor/lib/egl/eglsubAndroid.so
– vendor/lib/egl/libEGLadreno.so
– vendor/lib/egl/libGLESv1CMadreno.so
– vendor/lib/egl/libGLESv2adreno.so
– vendor/lib/egl/libq3dtoolsadreno.so
– vendor/lib/libadrenoutils.so
– vendor/lib/libbccQTI.so
– vendor/lib/libC2D2.so
– vendor/lib/libCB.so
– vendor/lib/libc2d30-a3xx.so
– vendor/lib/libgsl.so
– vendor/lib/libllvm-qcom.so
– vendor/lib/libOpenCL.so
– vendor/lib/libsc-a3xx.so
– vendor/lib/libRSDriveradreno.so
– vendor/lib/librsadreno.so
– vendor/lib/librsadrenosha1.so
– vendor/lib/libscale.so
– vendor/lib/libuiblur.so
– vendor/lib/liblistenhardware.so
– vendor/lib/liblistenjni.so
– vendor/lib/liblisten.so
– vendor/lib/liblistensoundmodel.so
– vendor/lib/libDivxDrm.so
– vendor/lib/libmm-color-convertor.so
17
– vendor/lib/libmmosal.so
– vendor/lib/libSHIMDivxDrm.so
• Sensors libraries on the device include the following:
– bin/sensors.qcom
– vendor/lib/hw/activityrecognition.msm8974.so
– vendor/lib/hw/sensors.msm8974.so
– vendor/lib/libsensor1.so
– vendor/lib/libsensorreg.so
• Time services on the device include:
– bin/timedaemon
– vendor/lib/libtimegenoff.so
– vendor/lib/libTimeService.so
– app/TimeService/TimeService.apk
• WiFi firmwares files are as follows:
– lib/libwpaqmieapproxy.so
– lib/libwcnssqmi.so
18
Figure 4.4: Proprietary files (listing 2).
19
Table 4.1: OnePlus One mobile specifications.
Parameter Description
Codename Bacon
Resolution 1080x1920
RAM 3GB
Storage 64GB
Battery 3000mAh
20
Chapter 5
5.1 Discussion
In this special study, I observe that the challenges for LineageOS are increasing compared to the
stock Google Android variants. Although the alternative Google Play Services and client applications
compared to the official Play services, primarily due to the user experience, which could be improved.
I also observe that Google proprietary policy on different devices has led to security vulnerabilities
and violation of users’ privacy. By installing and contributing to the development of alternatives to
the Google Play Services such as the microG project, we can support reverse engineering of certain
Google services such as back-end location service, push notification and messaging service, and
network-based location services utilizing the Mozilla location service for geolocation.
5.2 Conclusion
This special study explores opportunities for contributing to the development of LineageOS as a fully
open mobile operating system. I show how to build LineageOS, and the same procedure should be ap-
plicable to many different devices. I describe alternatives to the Google Play services. From previous
work, I conclude that data privacy and security vulnerabilities from the Play Store have violated users’
privacy, that closed-source models are unable to solve those issues, making it important to invest in
open source alternatives to improve user experience and make them a truly viable alternatives.
21
References
22