Deep Dive Into Android: How GrapheneOS Is Locked Out

00:28:51
https://www.youtube.com/watch?v=EJKwrzURvFI

Summary

TLDRThe video addresses the recent changes in Google's approach to the source code of Pixel devices, which now restricts the ability of privacy-focused custom ROMs like Graphene OS and Klex OS to modify low-level code. The speaker provides a detailed overview of the Android architecture and build process, highlighting how Graphene OS uniquely enhances security by altering low-level device code. Despite the challenges posed by Google's decision, the speaker remains optimistic about the future of privacy-focused Android projects, particularly through initiatives like Lunar OS, which aims to integrate hardening features and foster community contributions.

Takeaways

  • πŸ”’ Graphene OS focuses on privacy and security.
  • πŸ“‰ Google's code lockdown impacts custom ROMs.
  • πŸ› οΈ Android architecture consists of multiple layers.
  • πŸ” Graphene OS modifies low-level device code.
  • 🌐 Lunar OS integrates hardening features.
  • 🀝 Community contributions are encouraged.
  • πŸ“± Products offered to enhance privacy.
  • πŸ”„ Alternatives to Graphene OS are emerging.

Timeline

  • 00:00:00 - 00:05:00

    The video addresses the recent changes in Graphene OS and other custom ROMs due to Google's decision to lock down the source code of Pixel devices starting with Android 16. While this poses challenges for privacy-focused Android builds, it does not eliminate the possibility of creating secure custom ROMs, as evidenced by the continued success of Lineage OS. The speaker emphasizes the importance of understanding Android architecture and the implications of these changes for privacy and security.

  • 00:05:00 - 00:10:00

    Graphene OS distinguishes itself by modifying low-level Android code rather than just the Android framework, which is the typical approach for other custom ROMs. This unique method allows Graphene OS to implement specific security features, but the recent restrictions on source code access hinder their ability to continue this practice effectively. The speaker acknowledges the project's contributions to the privacy community despite personal conflicts with its leadership.

  • 00:10:00 - 00:15:00

    The video delves into the technical aspects of Android architecture, explaining the roles of various layers, including the framework, Android runtime, hardware abstraction layer (HAL), and the Linux kernel. The speaker highlights how these components interact and the significance of open-source code in the context of Android development, particularly for custom ROMs like Graphene OS and Lineage OS.

  • 00:15:00 - 00:20:00

    The speaker outlines the build process for Android, emphasizing the need for access to numerous Git repositories to create a complete flashable image. Graphene OS's reliance on a comprehensive build process is contrasted with Lineage OS's approach of modifying only the Android framework, which leads to different implications for device security and functionality, particularly regarding verified boot.

  • 00:20:00 - 00:28:51

    Despite the challenges faced by Graphene OS, the speaker remains optimistic about the future of privacy-focused Android projects. They discuss the potential for new collaborations and the development of alternative operating systems, such as Lunar OS, which can integrate hardening features and maintain compatibility with existing devices. The video concludes with a call for community support and involvement in ongoing privacy initiatives.

Show more

Mind Map

Video Q&A

  • What is Graphene OS?

    Graphene OS is a privacy and security-focused custom ROM based on Android, designed to enhance user privacy.

  • Why did Google lock the source code of Pixel devices?

    Google locked the source code starting with Android 16, limiting the ability of custom ROMs to modify low-level device code.

  • What is the significance of the Android architecture?

    The Android architecture consists of various layers, including the framework, runtime, and Linux kernel, which interact to run applications.

  • How does Graphene OS differ from other custom ROMs?

    Graphene OS modifies low-level code in the Android device itself, unlike other ROMs that typically only change the Android framework.

  • What are the implications of Google's changes for Graphene OS?

    The changes limit Graphene OS's ability to implement certain security features that rely on modifying low-level code.

  • What is Lunar OS?

    Lunar OS is a project that merges EOD OS with a complete Android build, allowing for enhanced security and privacy features.

  • Can community developers still contribute to Android hardening projects?

    Yes, community developers can contribute to projects like Lunar OS, which aims to integrate hardening changes.

  • What products does the speaker offer to support privacy?

    The speaker offers products like Doogle Pixel phones, Bra Virtual Phone, Brax Mail, and BiceVPN to enhance personal privacy.

View more video summaries

Get instant access to free YouTube video summaries powered by AI!
Subtitles
en
Auto Scroll:
  • 00:00:00
    If some of you are expecting this video
  • 00:00:02
    to be a drama or a feud between me and
  • 00:00:05
    the Graphino OS community, you can run
  • 00:00:08
    along now as that is not what this is
  • 00:00:11
    about.
  • 00:00:13
    Graphine OS and previously others like
  • 00:00:15
    it like Klex OS are specific builds of
  • 00:00:19
    modified Android that were focused on
  • 00:00:21
    privacy and security.
  • 00:00:24
    And they were able to accomplish this on
  • 00:00:26
    pixels because Google allowed open
  • 00:00:29
    access to the code of a Google Pixel.
  • 00:00:32
    But as many of you have heard, Google
  • 00:00:34
    locked the source code down on Pixels
  • 00:00:37
    starting with Android 16.
  • 00:00:40
    The effect of this is to basically stop
  • 00:00:42
    the prior approach taken by Graphine OS
  • 00:00:45
    and Kix OS in building their versions of
  • 00:00:48
    Android.
  • 00:00:50
    While this is a negative milestone, it
  • 00:00:53
    doesn't stop everything and certainly
  • 00:00:56
    doesn't prevent making privacy and
  • 00:00:58
    security focused Androids. It doesn't
  • 00:01:00
    stop all custom ROMs either. Lineage OS
  • 00:01:03
    still flourishes. Graphine OS is
  • 00:01:04
    sticking to its prior methods so far,
  • 00:01:07
    but it doesn't have much of a choice
  • 00:01:10
    because of their different goals on a
  • 00:01:12
    pixel. I will take a very detailed
  • 00:01:15
    approach here and that is really the
  • 00:01:18
    distinguishing characteristic of this
  • 00:01:20
    channel. We'll do a deep dive into the
  • 00:01:22
    Android architecture and build process.
  • 00:01:27
    I will warn you that this is a very
  • 00:01:29
    technical discussion of the Android
  • 00:01:30
    architecture. If you have some knowledge
  • 00:01:32
    of flashing custom ROMs or are a user of
  • 00:01:35
    these custom ROMs or are interested in
  • 00:01:38
    graphine OS, this will be important for
  • 00:01:40
    you. But even if you're not technically
  • 00:01:43
    savvy to this level, the conclusions
  • 00:01:46
    here are extremely important as it
  • 00:01:48
    provides a road map to privacy and
  • 00:01:50
    security versions of Android for the
  • 00:01:53
    long haul. Stay right there.
  • 00:02:02
    By the way, this is such a complex topic
  • 00:02:04
    that it is possible that I got some
  • 00:02:06
    parts wrong. Unfortunately, a lot of
  • 00:02:08
    pieces here were not openly documented.
  • 00:02:10
    So there is a little bit of OENT
  • 00:02:12
    required. If so, just tell me in the
  • 00:02:15
    comments nicely and I'll make sure to
  • 00:02:17
    spread the word as this is likely going
  • 00:02:20
    to be a multi-IDE topic. Today I'm
  • 00:02:23
    specifically focusing on graphine OS
  • 00:02:25
    because unlike all other custom ROMs,
  • 00:02:28
    they took a different approach and that
  • 00:02:30
    makes them unique and allowed them to
  • 00:02:32
    make specific claims about hardening
  • 00:02:34
    Android against cyber attacks. Just to
  • 00:02:38
    state this openly, the mentally unstable
  • 00:02:41
    leader of Graphin OS has spent his time
  • 00:02:43
    attacking others and me in particular. I
  • 00:02:47
    don't care about his attacks or the lies
  • 00:02:49
    he spreads about me. But forgetting his
  • 00:02:52
    attacks and the negative cult he
  • 00:02:54
    cultivates, it is in fact a boon to the
  • 00:02:58
    privacy and security community that
  • 00:03:00
    there is a project that focuses on
  • 00:03:02
    finding ways to make our phones more
  • 00:03:05
    private and secure. Graphine OS is great
  • 00:03:08
    as a project. I've spent a lot of time
  • 00:03:11
    examining the source code changes and if
  • 00:03:13
    some other developer on some other
  • 00:03:15
    custom ROM agrees with the security or
  • 00:03:18
    privacy benefit of what has been
  • 00:03:20
    documented then those changes could be
  • 00:03:23
    easily applied to another project. This
  • 00:03:26
    is the great benefit of an open-source
  • 00:03:29
    approach. But what truly differentiates
  • 00:03:32
    Graphine OS is that instead of just
  • 00:03:34
    changing portions of Android called the
  • 00:03:37
    Android framework, which is typically
  • 00:03:39
    the only thing changed by other custom
  • 00:03:42
    ROMs, they change the actual low-level
  • 00:03:45
    code in the Android device itself. And
  • 00:03:48
    this means accessing the Linux layer and
  • 00:03:50
    deeper parts of the Android source code.
  • 00:03:53
    These modules are typically written in
  • 00:03:55
    C. And I appreciate that as I have coded
  • 00:03:59
    enterprise systems entirely in C in my
  • 00:04:01
    career. Unfortunately, Graphino has
  • 00:04:04
    relied on Google maintaining their
  • 00:04:06
    behavior of releasing the complete
  • 00:04:08
    source code of Android for the Pixel.
  • 00:04:10
    But now Google changed. Google could
  • 00:04:13
    have deliberately made this decision to
  • 00:04:15
    cut off Graphine OS and Kix OS. Maybe
  • 00:04:18
    it's because of other reasons. We don't
  • 00:04:20
    know, of course. But the end result is
  • 00:04:23
    that the Linux level source code in
  • 00:04:25
    Android is now inaccessible on pixels.
  • 00:04:29
    The effect of this on graphin OS is that
  • 00:04:32
    while it can still make changes to the
  • 00:04:34
    open source called AOSB or otherwise
  • 00:04:37
    known as the Android framework,
  • 00:04:40
    low-level device code can no longer be
  • 00:04:42
    altered on a Google Pixel. This has so
  • 00:04:46
    many effects including killing features
  • 00:04:47
    like verified boot changing the libcy
  • 00:04:50
    libraries or low-level Linux functions
  • 00:04:53
    and various other changes disabling
  • 00:04:55
    features of device drivers that graphine
  • 00:04:58
    OS utilized. Most of these features
  • 00:05:01
    relate to the hardening of Android
  • 00:05:03
    against cyber attacks but typically do
  • 00:05:06
    not affect the privacy benefits.
  • 00:05:09
    By the way, the main privacy changes to
  • 00:05:11
    Android which relate to removing Google
  • 00:05:14
    spyware are mostly in the Android
  • 00:05:17
    framework and can be changed by all
  • 00:05:19
    custom ROMs including Kix OS, EOD OS and
  • 00:05:22
    Linux OS. And this is why other privacy
  • 00:05:25
    focused OSS are not affected as much.
  • 00:05:29
    Before I get into a complete explanation
  • 00:05:31
    of that, let me tell you the basics of
  • 00:05:33
    the Android architecture and its build
  • 00:05:36
    process.
  • 00:05:40
    Android architecture.
  • 00:05:43
    This chart shows the architecture of
  • 00:05:45
    Android. The green layer encompassing
  • 00:05:48
    several modules is called the framework
  • 00:05:50
    and that is basically the source code
  • 00:05:52
    available if you look into the source
  • 00:05:54
    code of Android open-source project
  • 00:05:57
    AOSP.
  • 00:05:58
    This framework supports the Android
  • 00:06:01
    apps, those included in AOSP and those
  • 00:06:04
    created by thirdparty developers. At
  • 00:06:07
    this level, the apps are often
  • 00:06:09
    downloaded as APK files. And apps at
  • 00:06:12
    this layer are developed using Java or
  • 00:06:15
    Cotlin. The apps are divided into two
  • 00:06:18
    groups. System apps are pre-installed on
  • 00:06:21
    your device and third party apps are
  • 00:06:23
    downloaded from Google Play Store. By
  • 00:06:27
    the way, later on in the release
  • 00:06:29
    process, Google overlays those system
  • 00:06:32
    apps with its own proprietary versions
  • 00:06:35
    and that's where all the Google spyware
  • 00:06:37
    is shown in red. There's a layer called
  • 00:06:41
    the Android runtime or art that converts
  • 00:06:44
    the Android app code into fast executing
  • 00:06:48
    code that can execute functions made
  • 00:06:50
    available by the framework. So, Android
  • 00:06:53
    apps can only run code that calls the
  • 00:06:56
    framework functions. There's no direct
  • 00:06:58
    access to the hardware. Everything has
  • 00:07:01
    to go through the Android runtime. And
  • 00:07:02
    each app is granted permission by the
  • 00:07:05
    framework. In order to access hardware
  • 00:07:08
    like the screen, the touch interface,
  • 00:07:11
    the microphone, speakers, camera,
  • 00:07:13
    sensors, cell service, internet, the
  • 00:07:16
    framework connects to the low-level
  • 00:07:18
    functions provided under Linux itself.
  • 00:07:22
    The Linux section is in yellow. But
  • 00:07:24
    before the framework can talk to Linux
  • 00:07:27
    functions, there is a translation layer
  • 00:07:30
    and this is called the hardware
  • 00:07:32
    abstraction layer or HAL which I show in
  • 00:07:35
    purple. HAL's job is to communicate
  • 00:07:38
    directly with Linux drivers and Linux
  • 00:07:40
    functions to make it available to the
  • 00:07:43
    framework layer. This layer is built
  • 00:07:45
    using an interface that Google called
  • 00:07:48
    HID L interface description language or
  • 00:07:52
    now AIDL Android interface definition
  • 00:07:57
    language. The purpose of this language
  • 00:07:59
    is for an OEM or a vendor making the SOC
  • 00:08:03
    system on a chip like Qualcomm or
  • 00:08:06
    MediaTek to compile a layer to
  • 00:08:09
    communicate with Linux level drivers. By
  • 00:08:12
    standardizing this communication method
  • 00:08:15
    but allowing it to be developed
  • 00:08:17
    separately, it creates a consistent
  • 00:08:19
    translation layer but allows for
  • 00:08:22
    independent updates since this is
  • 00:08:24
    actually created by the OEM.
  • 00:08:28
    Some functions in the framework can talk
  • 00:08:30
    directly to Linux functions using HAL
  • 00:08:34
    but not connected to a vendor. And I
  • 00:08:36
    presume some framework functions can
  • 00:08:38
    call Linux directly without HAL if
  • 00:08:40
    they're stable and never change like the
  • 00:08:43
    C library functions. Now let's talk
  • 00:08:46
    about the Linux layer which I show here
  • 00:08:48
    in yellow. In essence, from here all the
  • 00:08:51
    coding is essentially standard C as used
  • 00:08:54
    in Linux. Linux is independent of
  • 00:08:57
    Android but is part of the Android
  • 00:09:00
    device build. to make Android run on an
  • 00:09:03
    Android compatible device. It has a
  • 00:09:05
    standard Linux kernel which is currently
  • 00:09:07
    Linux 6.1 and that is used on the new
  • 00:09:11
    versions of Android device
  • 00:09:13
    manufacturers. For example, those that
  • 00:09:16
    make touchscreens, fingerprint readers,
  • 00:09:18
    Bluetooth radios, GPS radios, speakers,
  • 00:09:21
    microphones, cellbased band modems and
  • 00:09:24
    so on write their device interface code
  • 00:09:27
    in C. Typically those device drivers
  • 00:09:30
    used in laptop and desktop computers are
  • 00:09:34
    submitted to Linux itself and Linux to
  • 00:09:37
    valves gets to integrate them into the
  • 00:09:40
    base Linux kernel that Linux users know
  • 00:09:42
    as mainline Linux. However, plenty of
  • 00:09:46
    device manufacturers do not mainline
  • 00:09:48
    their drivers. That's the lingo that
  • 00:09:51
    says they don't submit their drivers
  • 00:09:53
    upstream for inclusion into the Linux
  • 00:09:56
    kernel because sending it to Linux means
  • 00:09:59
    the device driver has to be in source
  • 00:10:01
    code format because of course once they
  • 00:10:03
    do that then the internals of how their
  • 00:10:05
    devices work are exposed to competitors.
  • 00:10:08
    For this reason the Linux installed in
  • 00:10:11
    Androids is actually made up of two
  • 00:10:13
    sections. First, you get the mainline
  • 00:10:15
    Linux kernel which includes standardized
  • 00:10:17
    drivers which by the way can still be
  • 00:10:19
    modified by Google with newer changes
  • 00:10:22
    called upstreaming.
  • 00:10:24
    And then the second section of Linux is
  • 00:10:27
    where the OEM proprietary drivers are
  • 00:10:30
    installed in and these are all compiled
  • 00:10:33
    modules and are closed source. This is
  • 00:10:37
    standard on all Androids. Now the
  • 00:10:39
    purpose of explaining all this to this
  • 00:10:41
    degree is to show you where the open-
  • 00:10:44
    source code is. The entire Linux
  • 00:10:46
    distribution including its libraries and
  • 00:10:48
    mainline drivers are all open source but
  • 00:10:52
    not by Google. They are open source from
  • 00:10:54
    Linux itself. And this is something that
  • 00:10:57
    Google has to abide by since it is tied
  • 00:11:00
    to their use of Linux and the GPL
  • 00:11:03
    license. The actual AOSP is also open
  • 00:11:06
    source by Google, which as I said is
  • 00:11:09
    really only the Android framework. And
  • 00:11:12
    as I said, the vendor layer includes
  • 00:11:14
    only binary executable code from the
  • 00:11:16
    OEM. And these are never open source,
  • 00:11:20
    even on current pixels. Now, the last
  • 00:11:23
    layer of the Android architecture is the
  • 00:11:25
    bootloadader, which I show in gray. The
  • 00:11:28
    bootloadader is a piece of code that
  • 00:11:30
    actually starts the OS and initializes
  • 00:11:33
    Linux. Well, this is standardized on
  • 00:11:35
    many x86 computers, for example, using
  • 00:11:38
    core boot. On Android, each OEM creates
  • 00:11:42
    their own bootloadader and this is
  • 00:11:44
    integrated into the Android ROM. The
  • 00:11:47
    bootloadader is not open source.
  • 00:11:53
    Android partitions.
  • 00:11:55
    The theoretical architecture I've just
  • 00:11:57
    described gives you a big picture of how
  • 00:11:59
    things are connected. But now let's
  • 00:12:01
    enter the real world. I will start
  • 00:12:04
    backwards here and start from the
  • 00:12:06
    knowledge base of someone flashing a
  • 00:12:09
    custom ROM. We will bring you to the
  • 00:12:12
    physical reality by showing you how
  • 00:12:14
    these translate into the actual content
  • 00:12:16
    you see on an Android storage device
  • 00:12:19
    which is made up of partitions and
  • 00:12:22
    files.
  • 00:12:23
    Though in the end everything ends up as
  • 00:12:26
    thousands of individual files on an
  • 00:12:28
    Android device. The standard way they
  • 00:12:31
    are installed are in groups of files
  • 00:12:34
    segmented by partitions and further
  • 00:12:36
    directories. Some of you have
  • 00:12:39
    experienced using the ADB, Android debug
  • 00:12:43
    tool provided by Google, which allows
  • 00:12:45
    you to replace the OS image in the
  • 00:12:48
    Android storage.
  • 00:12:51
    Typically, a person installing a custom
  • 00:12:53
    ROM would put the device in fast boot
  • 00:12:55
    mode and then you use ADB to flash the
  • 00:12:58
    image to the device. First you would
  • 00:13:01
    allow replacing of the ROM image using
  • 00:13:03
    an option OEM unlock on the current
  • 00:13:07
    version of Android. Then you would use
  • 00:13:09
    some tool provided by the bootloader or
  • 00:13:12
    you replace the bootloader with a custom
  • 00:13:14
    one like twerp. You put the device in
  • 00:13:17
    something called fast boot mode and then
  • 00:13:19
    using a compatible tool you either flash
  • 00:13:22
    a complete image onto the device or
  • 00:13:24
    depending on the device you store
  • 00:13:26
    segments of the OS as separate
  • 00:13:27
    partitions.
  • 00:13:29
    Just to give you a view of this, these
  • 00:13:31
    are the separate partition images
  • 00:13:33
    typically available when you install
  • 00:13:35
    Lineage OS.
  • 00:13:37
    I'm just giving you generic names here
  • 00:13:40
    for some of the partitions as each OEM
  • 00:13:43
    may change this. And I also show you the
  • 00:13:45
    associated flashable image associated
  • 00:13:48
    with it.
  • 00:13:50
    This kind of organization actually was
  • 00:13:52
    thought out over time and has evolved
  • 00:13:55
    from the early versions of Android. The
  • 00:13:58
    reason for this separation is to allow
  • 00:14:00
    owners of each partition to update their
  • 00:14:04
    sections independently.
  • 00:14:06
    The system partition is what actually
  • 00:14:08
    contains the Android framework. So this
  • 00:14:11
    is the actual result of compiling the
  • 00:14:14
    Android open-source project by itself.
  • 00:14:17
    Another term for this is a gsi or
  • 00:14:20
    generic system image. And this isolation
  • 00:14:24
    of all things framework related to this
  • 00:14:26
    one partition allowed a standardized
  • 00:14:29
    Android to be installed on multiple
  • 00:14:31
    devices simply by replacing a stable
  • 00:14:35
    framework image and then tweaking the
  • 00:14:37
    behavior of the framework for a specific
  • 00:14:40
    device using XML files called overlays.
  • 00:14:43
    This is actually how much of Lineage OS
  • 00:14:46
    is made. So the only thing modified by
  • 00:14:48
    Lineage OS is the framework. This is an
  • 00:14:52
    important distinction that we'll come
  • 00:14:53
    back to later. Now, just to leave theory
  • 00:14:56
    for a moment, using ADB, I will show you
  • 00:14:59
    the different directories.
  • 00:16:56
    To give you a complete big picture of
  • 00:16:58
    how one creates a complete image for an
  • 00:17:01
    Android device, I will describe what is
  • 00:17:03
    called the build process of Android.
  • 00:17:06
    Some of this is assembly of the modules
  • 00:17:08
    and binaries and some of it actually
  • 00:17:11
    creates executable code which is called
  • 00:17:13
    compiling. If I were a manufacturer of a
  • 00:17:16
    phone, I would have access to all the
  • 00:17:18
    source code needed to create a build.
  • 00:17:21
    And today this is done via Git
  • 00:17:24
    repositories. I believe there are
  • 00:17:26
    approximately 8,000 Git repositories
  • 00:17:30
    tied to Android, meaning there are 1,000
  • 00:17:33
    separate projects, some from Linux, many
  • 00:17:36
    from Google, and some from the OEM. And
  • 00:17:39
    there's a standard procedure for
  • 00:17:40
    creating a list of related projects that
  • 00:17:43
    need to be included in the build rather
  • 00:17:45
    than get complicated in identifying
  • 00:17:48
    specific agents like KAS, Sung, Ninja or
  • 00:17:51
    Make Files and BP files, etc. The
  • 00:17:54
    complex structuring of a thousand
  • 00:17:55
    projects making up Android means that
  • 00:17:58
    something assembles a complete list
  • 00:18:01
    called a manifest. And then you specify
  • 00:18:04
    what you want to build as an end
  • 00:18:06
    product. And then your device will clone
  • 00:18:09
    all the git repositories with all the
  • 00:18:12
    latest code. And then this is clone on
  • 00:18:14
    the machine that will build the project
  • 00:18:17
    using the manifest as a procedure map.
  • 00:18:21
    and several hours later you have your
  • 00:18:23
    flashable image. So in a big picture
  • 00:18:26
    sense the only people who can build a
  • 00:18:28
    complete flashable image are those that
  • 00:18:31
    have access to all the thousand or so
  • 00:18:34
    repositories.
  • 00:18:36
    And in the case of graphine OS it also
  • 00:18:38
    includes access to their own
  • 00:18:40
    repositories which are added to the
  • 00:18:42
    build process and replaces the
  • 00:18:45
    applicable repositories provided by
  • 00:18:47
    Google. The new reality is that those
  • 00:18:50
    relying on this build process needs
  • 00:18:52
    access to the pixel repositories beyond
  • 00:18:56
    just the framework. The framework is
  • 00:18:58
    always available in AOSP. For those
  • 00:19:01
    interested, the actual git repositories
  • 00:19:03
    for AOSP are in android.googles.com
  • 00:19:07
    and I can show you that here. But
  • 00:19:09
    without complete access to the entire
  • 00:19:12
    collection of repositories, graphine OS
  • 00:19:15
    cannot do a complete build of the entire
  • 00:19:17
    image. Now the reason this is not
  • 00:19:20
    important to Lineage OS is that Lineage
  • 00:19:23
    OS does not actually build the entire
  • 00:19:26
    Android for each device from source. My
  • 00:19:29
    understanding is that Lineage OS takes
  • 00:19:32
    the original flashable image files like
  • 00:19:35
    DTBO.
  • 00:19:36
    Vendor image, OEM. image and simply
  • 00:19:40
    replaces the system.image file which as
  • 00:19:43
    I already said is the Android framework
  • 00:19:46
    or Android generic system image gsi.
  • 00:19:49
    They just extract these images from an
  • 00:19:52
    existing phone without rebuilding them.
  • 00:19:54
    So those files are original from the
  • 00:19:57
    manufacturer and then when the OEM
  • 00:19:59
    updates them, Lineage OS just updates
  • 00:20:02
    their copy and then they flash it back
  • 00:20:04
    to the device. However, in order to
  • 00:20:07
    allow this, depending on the OEM, they
  • 00:20:10
    may need to replace the bootloadader or
  • 00:20:12
    boot. With some open version like twerp,
  • 00:20:16
    T twwrp
  • 00:20:18
    and the device boots like normal. Those
  • 00:20:21
    using EOD OS, Kalex OS and even Ubuntu
  • 00:20:24
    touch are taking all the image files
  • 00:20:26
    from Linage OS and basically are
  • 00:20:29
    reconstructing all the standard images
  • 00:20:31
    coming from the OEM and then replacing
  • 00:20:35
    system.image.
  • 00:20:37
    This approach by lineage OS creates some
  • 00:20:39
    differences from the graphine OS
  • 00:20:42
    solution. First, the vendor or Linux
  • 00:20:44
    portions are never modified on Lineage
  • 00:20:46
    OS. Second, because it is not built
  • 00:20:49
    together, the signatures of each image
  • 00:20:52
    will not match what is originally noted
  • 00:20:54
    by the vendor and this leads to the
  • 00:20:57
    problem of verified boot.
  • 00:21:00
    Thus, Android devices using this method
  • 00:21:02
    cannot be bootloader locked since the
  • 00:21:05
    modules are no longer original and those
  • 00:21:08
    using Linux OS will encounter some scary
  • 00:21:10
    message to that effect which we all have
  • 00:21:13
    ignored. This is not a problem of any
  • 00:21:15
    build process that has the entire source
  • 00:21:18
    code repositories since the signatures
  • 00:21:20
    are part of the build. But the Linux OS
  • 00:21:23
    hack will not allow this. And as I
  • 00:21:26
    already said, Linux OS and other oses
  • 00:21:28
    based on it are just modifying the
  • 00:21:30
    Android framework and not the underlying
  • 00:21:33
    Linux code or HAL.
  • 00:21:36
    Assuming a bootloader is unlocked, Linux
  • 00:21:39
    OS will work using the method I
  • 00:21:42
    described. Many phone models of course
  • 00:21:44
    never unlock their bootloader and an
  • 00:21:47
    example of that is Samsung.
  • 00:21:52
    What it means for low-level code
  • 00:21:54
    changes.
  • 00:21:56
    This has profound implications for
  • 00:21:58
    Graphen OS. I believe it is the only
  • 00:22:01
    open-source project currently in
  • 00:22:02
    existence that modifies code outside of
  • 00:22:06
    the Android framework.
  • 00:22:08
    Graphino has modified Linux libraries
  • 00:22:11
    directly by changing the standard C
  • 00:22:13
    library functions with the intent of
  • 00:22:15
    hardening the tools against buffer
  • 00:22:17
    overruns and so forth or clearing memory
  • 00:22:20
    every so often. Graphin OS could modify
  • 00:22:23
    the drivers provided by the vendor in
  • 00:22:26
    vendor related partitions but it was for
  • 00:22:28
    example possible for certain drivers to
  • 00:22:31
    be intercepted and disabled at the Linux
  • 00:22:34
    level so that those drivers are not
  • 00:22:36
    active. For example, Graphine OS
  • 00:22:38
    modified the build so that the USBC port
  • 00:22:42
    only enables charging when the phone is
  • 00:22:44
    locked or if some new sensor is added to
  • 00:22:48
    the phone, it would be possible to
  • 00:22:50
    disable that sensor at the Linux level.
  • 00:22:53
    So, Graphinobuilt features would be
  • 00:22:56
    important for high security level
  • 00:22:58
    individuals like Snowden types and
  • 00:23:01
    honestly I commend them for it. Tal OS
  • 00:23:05
    though they use the same full build
  • 00:23:07
    process as graphine OS did not in my
  • 00:23:10
    observation modify low-level Linux code.
  • 00:23:13
    So it doesn't affect them much to go
  • 00:23:15
    with the Lineage OS approach of just
  • 00:23:17
    modifying the framework. So it sounds
  • 00:23:19
    like Klex switched to integrating Linux
  • 00:23:21
    OS in their build process to fill in the
  • 00:23:23
    blanks on pixels.
  • 00:23:25
    This appears to be their solution as
  • 00:23:27
    Linage OS is now referenced as a source
  • 00:23:30
    on their website, though it will affect
  • 00:23:33
    their previous verified boot claim,
  • 00:23:35
    which I presume will be removed for
  • 00:23:38
    Android 16 and up. This is also what was
  • 00:23:42
    originally done by EOD OS, so it matches
  • 00:23:44
    what Kix OS appears to be doing now.
  • 00:23:48
    Since the hardening claims of graphine
  • 00:23:50
    OS are tied to modifying Linux source
  • 00:23:52
    code for Android, then that claim can no
  • 00:23:55
    longer be possible moving forward, at
  • 00:23:57
    least not on a Pixel. It would seem that
  • 00:24:01
    those interested in Android hardening
  • 00:24:03
    will have lost a choice.
  • 00:24:09
    All is not lost.
  • 00:24:11
    Well, some may describe this situation
  • 00:24:13
    as an obituary not just for graphine OS
  • 00:24:16
    but any other phone project that may
  • 00:24:18
    believe in hardening the phone software
  • 00:24:20
    beyond just the Android framework. Let
  • 00:24:24
    me reveal why the doors are just opening
  • 00:24:27
    if people want to do it. To demonstrate
  • 00:24:29
    this, I will describe our relationship
  • 00:24:32
    with EOD OS and also currently with
  • 00:24:35
    Ubuntu touch.
  • 00:24:37
    The difference here is that we have the
  • 00:24:40
    source code for the complete Android
  • 00:24:42
    compile of a Bra 3 phone.
  • 00:24:46
    And the final OS image we create for
  • 00:24:49
    this is called Lunar OS. For some of you
  • 00:24:52
    with a BR 2 phone, this was called Bra
  • 00:24:55
    OS, which was just a fork of Lunar OS.
  • 00:24:58
    EOD OS made modifications to AOSP or the
  • 00:25:02
    framework. But instead of using the
  • 00:25:04
    Linux OS method of taking files from the
  • 00:25:08
    OEM and adding a framework, our dev team
  • 00:25:11
    actually takes the EOD OS repository and
  • 00:25:14
    adds it to the build process, thus
  • 00:25:17
    combining Lunar OS and EOD OS. Let me
  • 00:25:21
    repeat that. The Lunar OS and EOD OS are
  • 00:25:26
    merged with EODS replacing the entire
  • 00:25:30
    system partition during build. This
  • 00:25:33
    means that the final result is a
  • 00:25:35
    complete EOD image for flashing Android
  • 00:25:38
    on Brax 3 and appears as a manufacturer
  • 00:25:41
    authentic code complete with verified
  • 00:25:44
    boot and lockable bootloadader. We will
  • 00:25:46
    be doing the same with Ubuntu touch as
  • 00:25:48
    well and whoever else wants to port
  • 00:25:50
    their AOSB variant to BR 3. So the base
  • 00:25:54
    code which has the Linux kernel and all
  • 00:25:57
    the associated code that was available
  • 00:26:00
    on pixels is also available on Lunar OS.
  • 00:26:04
    The dev team is organizing this now, but
  • 00:26:06
    the end result should be that other
  • 00:26:09
    parties could integrate hardening code
  • 00:26:11
    in the Lunar OS repository which is open
  • 00:26:14
    source and as I said has all the code
  • 00:26:16
    previously available to graphine OS and
  • 00:26:20
    then these hardening changes can then
  • 00:26:22
    benefit a larger community and it will
  • 00:26:25
    not be a dead end.
  • 00:26:28
    Obviously any hardening of the
  • 00:26:30
    non-framework related code on Lunar OS
  • 00:26:32
    gets automatically integrated into
  • 00:26:34
    builds of EOD OS, Ubuntu touch and so
  • 00:26:36
    on. Now the days of graphine OS for
  • 00:26:39
    pixels may be numbered. They can keep
  • 00:26:41
    going with the source code available
  • 00:26:43
    from Android 15
  • 00:26:45
    but going forward it becomes more
  • 00:26:47
    difficult. Community developers though
  • 00:26:50
    who are interested in helping a larger
  • 00:26:52
    pool of people can still be able to
  • 00:26:54
    contribute to an Android hardening
  • 00:26:55
    project just on a different device. So
  • 00:26:58
    the future is still open.
  • 00:27:01
    If you want to port your AOSB based
  • 00:27:03
    project to a Bra 3 or any other future
  • 00:27:06
    device we make then you are welcome and
  • 00:27:09
    feel free to contact the team at
  • 00:27:11
    bratec.net.
  • 00:27:14
    I expect that there will be more devices
  • 00:27:16
    available to this project in the future.
  • 00:27:18
    So stay tuned
  • 00:27:24
    folks. While other channels sustain
  • 00:27:26
    themselves via sponsorships, we are
  • 00:27:28
    actively sustained solely by this
  • 00:27:31
    community.
  • 00:27:33
    Thank you to those who provide financial
  • 00:27:35
    support directly to us through Patreon,
  • 00:27:38
    locals, and YouTube memberships. We have
  • 00:27:41
    also taken the approach of actually
  • 00:27:42
    creating an organization you can trust
  • 00:27:44
    by creating products that support your
  • 00:27:47
    goal and ours of achieving privacy and
  • 00:27:50
    offering it with the best possible
  • 00:27:51
    service at a reasonable price. And this
  • 00:27:54
    is how we chose to sustain this channel.
  • 00:27:58
    For those interested in the Bra 3
  • 00:28:00
    project that is handled by the site
  • 00:28:02
    brac.net and you can see the current
  • 00:28:05
    status of the project there which
  • 00:28:07
    currently started shipping. We have
  • 00:28:09
    other products that you will find in our
  • 00:28:11
    community area on Brax May. There are
  • 00:28:14
    over 120,000 users that are part of our
  • 00:28:17
    community that discuss security and
  • 00:28:19
    privacy issues in a safe environment.
  • 00:28:22
    Many of you believe in us and so this
  • 00:28:24
    community is growing. Some have been
  • 00:28:26
    involved for more than 10 years. In our
  • 00:28:28
    store though, you will find products
  • 00:28:30
    like Doogle Pixel phones, Bra Virtual
  • 00:28:32
    Phone, Brax Mail, and BiceVPN. These are
  • 00:28:35
    an essential base to building your
  • 00:28:37
    personal privacy and of course support
  • 00:28:40
    the creation of content on this channel.
  • 00:28:43
    Thank you for watching and see you next
  • 00:28:45
    time.
Tags
  • Graphene OS
  • Android
  • Privacy
  • Security
  • Custom ROMs
  • Google
  • Lunar OS
  • Open Source
  • Android Architecture
  • Community Contributions