Giter Site home page Giter Site logo

android_vendor_google_chromeos-x86's Introduction

android_vendor_google_chromeos-x86

This project provides scripts to extract (proprietary) files from the Android container in ChromeOS recovery images, for use in x86-based Android installations.

These files (mainly binaries) complement what is available in AOSP, and provide the following functionality:

  • Widevine: DRM system from Google used in certain media streaming apps like Netflix. ChromeOS contains a HIDL HAL implementation that provides security level L3 (software decoding).
  • Houdini: ARM on x86 native bridge by Intel. Allows running apps built only for ARM platforms on x86-based devices.

Currently, this project extracts files suitable for Android 9.0 (Pie). Older ChromeOS versions contain files for Android 7 (Nougat), but ChromeOS skipped Android 8 (Oreo) entirely.

Usage

In general, the scripts can be used in any Linux distribution. Run ./extract-files.sh to download the ChromeOS recovery image and extract it to a folder called proprietary.

Note: The script requires sudo to mount the partitions from the ChromeOS recovery image.

The resulting subdirectories (widevine and houdini) contain a directory structure that can be copied as-is to the /system partition of the target device.

Flashable ZIP

zip contains scripts to build flashable ZIP packages that can be flashed through the recovery to install the additional proprietary files. This is recommended for all Android ROMs that are installed through the recovery.

Run zip/build.sh after extracting files to build the ZIPs to zip/out.

This project does not provide pre-built packages. However, the ZIPs should be built reproducible. As such, the expected hash-sums are listed as tags/releases in this project.

Note: Some build options need to be set for the Android build even when using this option to install Houdini optionally.
(This is not necessary for Widevine.) See Make files below.

Make files

board and target contain make files that can be used to bundle the proprietary files in an Android build.

  • Houdini: board/native_bridge_arm_on_x86.mk must be included from BoardConfig.mk even if a native bridge should be optionally installed. It configures the build system to build additional code needed to run ARM apps.

    • BoardConfig.mk: Always required.

      -include vendor/google/chromeos-x86/board/native_bridge_arm_on_x86.mk
    • device.mk: Do not advertise support for ARM ABI by default (for use when Houdini is not bundled):

      $(call inherit-product-if-exists, vendor/google/chromeos-x86/target/native_bridge_arm_on_x86.mk)

      Optional: Bundle Houdini directly with the Android build:

      $(call inherit-product-if-exists, vendor/google/chromeos-x86/target/houdini.mk)
  • Widevine: device.mk: Bundle Widevine directly with the Android build.

    $(call inherit-product-if-exists, vendor/google/chromeos-x86/target/widevine.mk)

SELinux Policy

sepolicy contains a base policy for both Widevine and Houdini and will be needed to use them in enforcing mode. It should be included in the base system since the ZIPs do not attempt to patch the prebuilt policy.

BOARD_SEPOLICY_DIRS += vendor/google/chromeos-x86/sepolicy

License

Please see LICENSE.

android_vendor_google_chromeos-x86's People

Contributors

stephan-gh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.