Full Code of android-rpi/device_arpi_rpi4 for AI

arpi-14 8390b35847ef cached
53 files
47.7 KB
16.7k tokens
1 requests
Download .txt
Repository: android-rpi/device_arpi_rpi4
Branch: arpi-14
Commit: 8390b35847ef
Files: 53
Total size: 47.7 KB

Directory structure:
gitextract_57scc5u_/

├── AndroidProducts.mk
├── BoardConfig.mk
├── Generic.kl
├── README
├── bluetooth/
│   ├── bdroid_buildcfg.h
│   ├── bt_vendor.conf
│   ├── bt_vendor_400.conf
│   └── vnd_rpi4.txt
├── boot/
│   ├── cmdline.txt
│   ├── config.txt
│   └── start4.elf
├── etc/
│   ├── audio_policy_configuration.xml
│   ├── codec2.vendor.ext.policy
│   ├── external_camera_config.xml
│   └── media_codecs.xml
├── firmware/
│   └── brcm/
│       ├── BCM4345C0.hcd
│       ├── BCM4345C5.hcd
│       ├── brcmfmac43455-sdio.clm_blob
│       ├── brcmfmac43455-sdio.txt
│       ├── brcmfmac43456-sdio.clm_blob
│       └── brcmfmac43456-sdio.txt
├── fstab.rpi4
├── init.rpi4.rc
├── init.rpi4.usb.rc
├── init.usb.rc
├── manifest.xml
├── overlay/
│   └── RpFrameworkOverlay/
│       ├── Android.bp
│       ├── AndroidManifest.xml
│       └── res/
│           ├── values/
│           │   └── config.xml
│           └── xml/
│               └── global_keys.xml
├── rpi4.mk
├── sepolicy/
│   ├── bluetooth.te
│   ├── bootanim.te
│   ├── cameraserver.te
│   ├── device.te
│   ├── file_contexts
│   ├── hal_camera_default.te
│   ├── hal_graphics_allocator_default.te
│   ├── hal_graphics_composer_default.te
│   ├── init.te
│   ├── kernel.te
│   ├── mediacodec.te
│   ├── mediaserver.te
│   ├── mediaswcodec.te
│   ├── netd.te
│   ├── platform_app.te
│   ├── priv_app.te
│   ├── surfaceflinger.te
│   ├── system_app.te
│   ├── system_server.te
│   ├── te_macros
│   └── untrusted_app_all.te
└── ueventd.rc

================================================
FILE CONTENTS
================================================

================================================
FILE: AndroidProducts.mk
================================================
PRODUCT_MAKEFILES := $(LOCAL_DIR)/rpi4.mk

COMMON_LUNCH_CHOICES := rpi4-eng


================================================
FILE: BoardConfig.mk
================================================
#
# Copyright 2020 Android-RPi Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

TARGET_NO_BOOTLOADER := true
TARGET_NO_KERNEL := true
TARGET_NO_RECOVERY := true

TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_VARIANT := cortex-a72
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 := 

TARGET_DYNAMIC_64_32_MEDIASERVER := true

TARGET_FLATTEN_APEX := true

PRODUCT_FULL_TREBLE_OVERRIDE := true
BOARD_VNDK_VERSION := current

TARGET_BOARD_PLATFORM := bcm2711

TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
TARGET_USERIMAGES_USE_EXT4 := true

BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1207959552 # 1152M
BOARD_USERDATAIMAGE_PARTITION_SIZE := 134217728 # 128M

TARGET_COPY_OUT_VENDOR := vendor
BOARD_VENDORIMAGE_PARTITION_SIZE := 134217728 # 128M
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4

BOARD_FLASH_BLOCK_SIZE := 4096

MALLOC_SVELTE := true

USE_XML_AUDIO_POLICY_CONF := 1

BOARD_MESA3D_USES_MESON_BUILD := true
BOARD_MESA3D_GALLIUM_DRIVERS := v3d vc4
BOARD_MESA3D_VULKAN_DRIVERS := broadcom
USE_OPENGL_RENDERER := true
TARGET_USES_HWC2 := true
TARGET_SCREEN_DENSITY := 213

# Wifi
BOARD_WLAN_DEVICE := bcmdhd
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB   := lib_driver_cmd_bcmdhd
WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true

# Bluetooth
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_BCM := true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/arpi/rpi4/bluetooth
BOARD_CUSTOM_BT_CONFIG := device/arpi/rpi4/bluetooth/vnd_rpi4.txt

BOARD_SEPOLICY_DIRS := \
    device/arpi/rpi4/sepolicy

DEVICE_MANIFEST_FILE := device/arpi/rpi4/manifest.xml


================================================
FILE: Generic.kl
================================================
# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#
# Generic key layout file for full alphabetic US English PC style external keyboards.
#
# This file is intentionally very generic and is intended to support a broad range of keyboards.
# Do not edit the generic key layout to support a specific keyboard; instead, create
# a new key layout file with the required keyboard configuration.
#

key 1     BACK
key 2     1
key 3     2
key 4     3
key 5     4
key 6     5
key 7     6
key 8     7
key 9     8
key 10    9
key 11    0
key 12    MINUS
key 13    EQUALS
key 14    DEL
key 15    TAB
key 16    Q
key 17    W
key 18    E
key 19    R
key 20    T
key 21    Y
key 22    U
key 23    I
key 24    O
key 25    P
key 26    LEFT_BRACKET
key 27    RIGHT_BRACKET
key 28    ENTER
key 29    CTRL_LEFT
key 30    A
key 31    S
key 32    D
key 33    F
key 34    G
key 35    H
key 36    J
key 37    K
key 38    L
key 39    SEMICOLON
key 40    APOSTROPHE
key 41    GRAVE
key 42    SHIFT_LEFT
key 43    BACKSLASH
key 44    Z
key 45    X
key 46    C
key 47    V
key 48    B
key 49    N
key 50    M
key 51    COMMA
key 52    PERIOD
key 53    SLASH
key 54    SHIFT_RIGHT
key 55    NUMPAD_MULTIPLY
key 56    ALT_LEFT
key 57    SPACE
key 58    CAPS_LOCK
key 59    F1
key 60    F2
key 61    F3
key 62    F4
key 63    F5
key 64    F6
key 65    F7
key 66    VOLUME_DOWN
key 67    VOLUME_UP
key 68    F10
key 69    NUM_LOCK
key 70    SCROLL_LOCK
key 71    NUMPAD_7
key 72    NUMPAD_8
key 73    NUMPAD_9
key 74    NUMPAD_SUBTRACT
key 75    NUMPAD_4
key 76    NUMPAD_5
key 77    NUMPAD_6
key 78    NUMPAD_ADD
key 79    NUMPAD_1
key 80    NUMPAD_2
key 81    NUMPAD_3
key 82    NUMPAD_0
key 83    NUMPAD_DOT
# key 84 (undefined)
key 85    ZENKAKU_HANKAKU
key 86    BACKSLASH
key 87    F11
key 88    F12
key 89    RO
# key 90 "KEY_KATAKANA"
# key 91 "KEY_HIRAGANA"
key 92    HENKAN
key 93    KATAKANA_HIRAGANA
key 94    MUHENKAN
key 95    NUMPAD_COMMA
key 96    NUMPAD_ENTER
key 97    CTRL_RIGHT
key 98    NUMPAD_DIVIDE
key 99    SYSRQ
key 100   ALT_RIGHT
# key 101 "KEY_LINEFEED"
key 102   MOVE_HOME
key 103   DPAD_UP
key 104   PAGE_UP
key 105   DPAD_LEFT
key 106   DPAD_RIGHT
key 107   MOVE_END
key 108   DPAD_DOWN
key 109   PAGE_DOWN
key 110   INSERT
key 111   FORWARD_DEL
# key 112 "KEY_MACRO"
key 113   VOLUME_MUTE
key 114   VOLUME_DOWN
key 115   VOLUME_UP
key 116   POWER
key 117   NUMPAD_EQUALS
# key 118 "KEY_KPPLUSMINUS"
key 119   BREAK
# key 120 (undefined)
key 121   NUMPAD_COMMA
key 122   KANA
key 123   EISU
key 124   YEN
key 125   META_LEFT
key 126   META_RIGHT
key 127   MENU
key 128   MEDIA_STOP
# key 129 "KEY_AGAIN"
# key 130 "KEY_PROPS"
# key 131 "KEY_UNDO"
# key 132 "KEY_FRONT"
key 133   COPY
# key 134 "KEY_OPEN"
key 135   PASTE
# key 136 "KEY_FIND"
key 137   CUT
# key 138 "KEY_HELP"
key 139   MENU
key 140   CALCULATOR
# key 141 "KEY_SETUP"
key 142   SLEEP
key 143   WAKEUP
# key 144 "KEY_FILE"
# key 145 "KEY_SENDFILE"
# key 146 "KEY_DELETEFILE"
# key 147 "KEY_XFER"
# key 148 "KEY_PROG1"
# key 149 "KEY_PROG2"
key 150   EXPLORER
# key 151 "KEY_MSDOS"
key 152   POWER
# key 153 "KEY_DIRECTION"
# key 154 "KEY_CYCLEWINDOWS"
key 155   ENVELOPE
key 156   BOOKMARK
# key 157 "KEY_COMPUTER"
key 158   BACK
key 159   FORWARD
key 160   MEDIA_CLOSE
key 161   MEDIA_EJECT
key 162   MEDIA_EJECT
key 163   MEDIA_NEXT
key 164   MEDIA_PLAY_PAUSE
key 165   MEDIA_PREVIOUS
key 166   MEDIA_STOP
key 167   MEDIA_RECORD
key 168   MEDIA_REWIND
key 169   CALL
# key 170 "KEY_ISO"
key 171   MUSIC
key 172   HOME
key 173   REFRESH
# key 174 "KEY_EXIT"
# key 175 "KEY_MOVE"
# key 176 "KEY_EDIT"
key 177   PAGE_UP
key 178   PAGE_DOWN
key 179   NUMPAD_LEFT_PAREN
key 180   NUMPAD_RIGHT_PAREN
# key 181 "KEY_NEW"
# key 182 "KEY_REDO"
# key 183   F13
# key 184   F14
# key 185   F15
# key 186   F16
# key 187   F17
# key 188   F18
# key 189   F19
# key 190   F20
# key 191   F21
# key 192   F22
# key 193   F23
# key 194   F24
# key 195 (undefined)
# key 196 (undefined)
# key 197 (undefined)
# key 198 (undefined)
# key 199 (undefined)
key 200   MEDIA_PLAY
key 201   MEDIA_PAUSE
# key 202 "KEY_PROG3"
# key 203 "KEY_PROG4"
# key 204 (undefined)
# key 205 "KEY_SUSPEND"
# key 206 "KEY_CLOSE"
key 207   MEDIA_PLAY
key 208   MEDIA_FAST_FORWARD
# key 209 "KEY_BASSBOOST"
# key 210 "KEY_PRINT"
# key 211 "KEY_HP"
key 212   CAMERA
key 213   MUSIC
# key 214 "KEY_QUESTION"
key 215   ENVELOPE
# key 216 "KEY_CHAT"
key 217   SEARCH
# key 218 "KEY_CONNECT"
# key 219 "KEY_FINANCE"
# key 220 "KEY_SPORT"
# key 221 "KEY_SHOP"
# key 222 "KEY_ALTERASE"
# key 223 "KEY_CANCEL"
key 224   BRIGHTNESS_DOWN
key 225   BRIGHTNESS_UP
key 226   HEADSETHOOK

key 256   BUTTON_1
key 257   BUTTON_2
key 258   BUTTON_3
key 259   BUTTON_4
key 260   BUTTON_5
key 261   BUTTON_6
key 262   BUTTON_7
key 263   BUTTON_8
key 264   BUTTON_9
key 265   BUTTON_10
key 266   BUTTON_11
key 267   BUTTON_12
key 268   BUTTON_13
key 269   BUTTON_14
key 270   BUTTON_15
key 271   BUTTON_16

key 288   BUTTON_1
key 289   BUTTON_2
key 290   BUTTON_3
key 291   BUTTON_4
key 292   BUTTON_5
key 293   BUTTON_6
key 294   BUTTON_7
key 295   BUTTON_8
key 296   BUTTON_9
key 297   BUTTON_10
key 298   BUTTON_11
key 299   BUTTON_12
key 300   BUTTON_13
key 301   BUTTON_14
key 302   BUTTON_15
key 303   BUTTON_16


key 304   BUTTON_A
key 305   BUTTON_B
key 306   BUTTON_C
key 307   BUTTON_X
key 308   BUTTON_Y
key 309   BUTTON_Z
key 310   BUTTON_L1
key 311   BUTTON_R1
key 312   BUTTON_L2
key 313   BUTTON_R2
key 314   BUTTON_SELECT
key 315   BUTTON_START
key 316   BUTTON_MODE
key 317   BUTTON_THUMBL
key 318   BUTTON_THUMBR


# key 352 "KEY_OK"
key 353   DPAD_CENTER
# key 354 "KEY_GOTO"
# key 355 "KEY_CLEAR"
# key 356 "KEY_POWER2"
# key 357 "KEY_OPTION"
# key 358 "KEY_INFO"
# key 359 "KEY_TIME"
# key 360 "KEY_VENDOR"
# key 361 "KEY_ARCHIVE"
key 362   GUIDE
# key 363 "KEY_CHANNEL"
# key 364 "KEY_FAVORITES"
# key 365 "KEY_EPG"
key 366   DVR
# key 367 "KEY_MHP"
# key 368 "KEY_LANGUAGE"
# key 369 "KEY_TITLE"
key 370   CAPTIONS
# key 371 "KEY_ANGLE"
# key 372 "KEY_ZOOM"
# key 373 "KEY_MODE"
# key 374 "KEY_KEYBOARD"
# key 375 "KEY_SCREEN"
# key 376 "KEY_PC"
key 377   TV
# key 378 "KEY_TV2"
# key 379 "KEY_VCR"
# key 380 "KEY_VCR2"
# key 381 "KEY_SAT"
# key 382 "KEY_SAT2"
# key 383 "KEY_CD"
# key 384 "KEY_TAPE"
# key 385 "KEY_RADIO"
# key 386 "KEY_TUNER"
# key 387 "KEY_PLAYER"
# key 388 "KEY_TEXT"
# key 389 "KEY_DVD"
# key 390 "KEY_AUX"
# key 391 "KEY_MP3"
# key 392 "KEY_AUDIO"
# key 393 "KEY_VIDEO"
# key 394 "KEY_DIRECTORY"
# key 395 "KEY_LIST"
# key 396 "KEY_MEMO"
key 397   CALENDAR
key 398   PROG_RED
key 399   PROG_GREEN
key 400   PROG_YELLOW
key 401   PROG_BLUE
key 402   CHANNEL_UP
key 403   CHANNEL_DOWN
# key 404 "KEY_FIRST"
key 405   LAST_CHANNEL
# key 406 "KEY_AB"
# key 407 "KEY_NEXT"
# key 408 "KEY_RESTART"
# key 409 "KEY_SLOW"
# key 410 "KEY_SHUFFLE"
# key 411 "KEY_BREAK"
# key 412 "KEY_PREVIOUS"
# key 413 "KEY_DIGITS"
# key 414 "KEY_TEEN"
# key 415 "KEY_TWEN"

key 429   CONTACTS

# key 448 "KEY_DEL_EOL"
# key 449 "KEY_DEL_EOS"
# key 450 "KEY_INS_LINE"
# key 451 "KEY_DEL_LINE"


key 464   FUNCTION
key 465   ESCAPE            FUNCTION
key 466   F1                FUNCTION
key 467   F2                FUNCTION
key 468   F3                FUNCTION
key 469   F4                FUNCTION
key 470   F5                FUNCTION
key 471   F6                FUNCTION
key 472   F7                FUNCTION
key 473   F8                FUNCTION
key 474   F9                FUNCTION
key 475   F10               FUNCTION
key 476   F11               FUNCTION
key 477   F12               FUNCTION
key 478   1                 FUNCTION
key 479   2                 FUNCTION
key 480   D                 FUNCTION
key 481   E                 FUNCTION
key 482   F                 FUNCTION
key 483   S                 FUNCTION
key 484   B                 FUNCTION


# key 497 KEY_BRL_DOT1
# key 498 KEY_BRL_DOT2
# key 499 KEY_BRL_DOT3
# key 500 KEY_BRL_DOT4
# key 501 KEY_BRL_DOT5
# key 502 KEY_BRL_DOT6
# key 503 KEY_BRL_DOT7
# key 504 KEY_BRL_DOT8

key 522   STAR
key 523   POUND
key 580   APP_SWITCH
key 582   VOICE_ASSIST
# Linux KEY_ASSISTANT
key 583   ASSIST

# Keys defined by HID usages
key usage 0x0c0067 WINDOW
key usage 0x0c006F BRIGHTNESS_UP
key usage 0x0c0070 BRIGHTNESS_DOWN
key usage 0x0c0173 MEDIA_AUDIO_TRACK

# Joystick and game controller axes.
# Axes that are not mapped will be assigned generic axis numbers by the input subsystem.
axis 0x00 X
axis 0x01 Y
axis 0x02 Z
axis 0x03 RX
axis 0x04 RY
axis 0x05 RZ
axis 0x06 THROTTLE
axis 0x07 RUDDER
axis 0x08 WHEEL
axis 0x09 GAS
axis 0x0a BRAKE
axis 0x10 HAT_X
axis 0x11 HAT_Y

# LEDs
led 0x00 NUM_LOCK
led 0x01 CAPS_LOCK
led 0x02 SCROLL_LOCK
led 0x03 COMPOSE
led 0x04 KANA
led 0x05 SLEEP
led 0x06 SUSPEND
led 0x07 MUTE
led 0x08 MISC
led 0x09 MAIL
led 0x0a CHARGING


================================================
FILE: README
================================================
# Setup build envoronment
  https://source.android.com/setup/build/initializing
  $ sudo apt install libssl-dev python3-setuptools 

# Download Android source
  https://github.com/android-rpi/local_manifests/tree/arpi14-pi4

# Build Android
 Refer to http://source.android.com/source/building.html

  $ source build/envsetup.sh
  $ lunch rpi4-eng
  $ make ramdisk systemimage vendorimage

 Use -j[n] option with make, if build host has a good number of CPU cores.


# Prepare sd card
 Partitions of the card should be set-up like followings.
  p1  128MB for boot : Do fdisk, set W95 FAT32(LBA) & Bootable type, mkfs.vfat
  p2 1152MB for /system : Do fdisk, new primary partition
  p3  128MB for /vendor : Do fdisk, new primary partition
  p4 remainings for /data : Do fdisk, mkfs.ext4
 Set volume label of /data partition as userdata
  : use -L option for mkfs.ext4
 
# Write system & vendor partition
  $ cd out/target/product/rpi4
  $ sudo dd if=system.img of=/dev/<p2> bs=1M
  $ sudo dd if=vendor.img of=/dev/<p3> bs=1M

# Copy firmware & ramdisk to boot partition
  device/arpi/rpi4/boot/* to p1:/
  out/target/product/rpi4/ramdisk.img to p1:/


# Download & Build kernel source
  https://github.com/android-rpi/kernel_manifest/tree/arpi14-6.1.62

# Copy kernel binaries to boot partition
  <kernel directory>/out/arpi14-6.1/dist/Image.gz to p1:/
  <kernel directory>/out/arpi14-6.1/dist/bcm2711-rpi-*.dtb to p1:/
  <kernel directory>/out/arpi14-6.1/dist/vc4-kms-v3d-pi4.dtbo to p1:/overlays/


================================================
FILE: bluetooth/bdroid_buildcfg.h
================================================
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H

#define BTM_DEF_LOCAL_NAME   "RPI4"

#define BTA_DM_COD {0x1A, 0x01, 0x20}

#endif


================================================
FILE: bluetooth/bt_vendor.conf
================================================
# UART device port where Bluetooth controller is attached
UartPort = /dev/ttyAMA1
# Firmware patch file location
FwPatchFilePath = /lib/firmware/brcm
# Firmware Name
FwPatchFileName = BCM4345C0.hcd


================================================
FILE: bluetooth/bt_vendor_400.conf
================================================
# UART device port where Bluetooth controller is attached
UartPort = /dev/ttyAMA1
# Firmware patch file location
FwPatchFilePath = /lib/firmware/brcm
# Firmware Name
FwPatchFileName = BCM4345C5.hcd


================================================
FILE: bluetooth/vnd_rpi4.txt
================================================
BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyAMA1"
FW_PATCHFILE_LOCATION = "/lib/firmware/"
FW_PATCH_SETTLEMENT_DELAY_MS = 200
BT_WAKE_VIA_PROC = FALSE
BT_WAKE_VIA_USERIAL_IOCTL = FALSE
LPM_IDLE_TIMEOUT_MULTIPLE = 5
SCO_CFG_INCLUDED = FALSE
SCO_PCM_IF_CLOCK_RATE = 2
BTVND_DBG = FALSE
BTHW_DBG = FALSE
VNDUSERIAL_DBG = FALSE
UPIO_DBG = FALSE
UART_TARGET_BAUD_RATE = 921600
USE_CONTROLLER_BDADDR = FALSE


================================================
FILE: boot/cmdline.txt
================================================
console=serial0,115200 no_console_suspend root=/dev/ram0 androidboot.hardware=rpi4 androidboot.selinux=permissive


================================================
FILE: boot/config.txt
================================================
kernel=Image.gz
arm_64bit=1
dtparam=krnbt=off
dtparam=audio=on
dtoverlay=vc4-kms-v3d-pi4,noaudio
#dtoverlay=dwc2,dr_mode=peripheral
initramfs ramdisk.img followkernel
enable_uart=1
disable_overscan=1


================================================
FILE: etc/audio_policy_configuration.xml
================================================
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
    <modules>
        <module name="primary" halVersion="2.0">
            <attachedDevices>
                <item>Speaker</item>
            </attachedDevices>
            <defaultOutputDevice>Speaker</defaultOutputDevice>
            <mixPorts>
                <mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY">
                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                </mixPort>
            </mixPorts>
            <devicePorts>
                <devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" role="sink">
                </devicePort>
            </devicePorts>
            <routes>
                <route type="mix" sink="Speaker"
                       sources="primary output"/>
            </routes>
        </module>

        <xi:include href="usb_audio_policy_configuration.xml"/>
        <xi:include href="a2dp_audio_policy_configuration.xml"/>
        <xi:include href="r_submix_audio_policy_configuration.xml"/>
    </modules>

    <xi:include href="audio_policy_volumes.xml"/>
    <xi:include href="default_volume_tables.xml"/>
</audioPolicyConfiguration>


================================================
FILE: etc/codec2.vendor.ext.policy
================================================
_llseek: 1
epoll_create1: 1
epoll_ctl: 1
epoll_pwait: 1
eventfd2: 1
fstat64: 1
fstatat64: 1
fstatfs64: 1
getcwd: 1
getdents64: 1
geteuid32: 1
getuid32: 1
mmap2: 1
open: 1
pselect6: 1
sched_getaffinity: 1
statfs64: 1
sysinfo: 1
ugetrlimit: 1


================================================
FILE: etc/external_camera_config.xml
================================================
<ExternalCamera>
    <Provider>
        <id>0</id>
    </Provider>
    <Device>
        <!-- Max JPEG buffer size in bytes-->
        <MaxJpegBufferSize bytes="3145728"/> <!-- 3MB (~= 1080p YUV420) -->
        <!-- Size of v4l2 buffer queue when streaming >= 30fps -->
        <!-- Larger value: more request can be cached pipeline (less janky)  -->
        <!-- Smaller value: use less memory -->
        <NumVideoBuffers count="4"/>
        <!-- Size of v4l2 buffer queue when streaming < 30fps -->
        <NumStillBuffers count="2"/>

        <!-- List of maximum fps for various output sizes -->
        <!-- Any image size smaller than the size listed in Limit row will report
            fps (as minimum frame duration) up to the fpsBound value. -->
        <FpsList>
            <!-- width/height must be increasing, fpsBound must be decreasing-->
            <Limit width="640" height="480" fpsBound="30.0"/>
            <Limit width="1280" height="720" fpsBound="15.0"/>
            <Limit width="1920" height="1080" fpsBound="10.0"/>
            <!-- image size larger than the last entry will not be supported-->
        </FpsList>
    </Device>
</ExternalCamera>


================================================
FILE: etc/media_codecs.xml
================================================
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (C) 2012 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<!--
<!DOCTYPE MediaCodecs [
<!ELEMENT Include EMPTY>
<!ATTLIST Include href CDATA #REQUIRED>
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
<!ELEMENT Decoders (MediaCodec|Include)*>
<!ELEMENT Encoders (MediaCodec|Include)*>
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
<!ATTLIST MediaCodec name CDATA #REQUIRED>
<!ATTLIST MediaCodec type CDATA>
<!ELEMENT Type EMPTY>
<!ATTLIST Type name CDATA #REQUIRED>
<!ELEMENT Quirk EMPTY>
<!ATTLIST Quirk name CDATA #REQUIRED>
]>

There's a simple and a complex syntax to declare the availability of a
media codec:

A codec that properly follows the OpenMax spec and therefore doesn't have any
quirks and that only supports a single content type can be declared like so:

    <MediaCodec name="OMX.foo.bar" type="something/interesting" />

If a codec has quirks OR supports multiple content types, the following syntax
can be used:

    <MediaCodec name="OMX.foo.bar" >
        <Type name="something/interesting" />
        <Type name="something/else" />
        ...
        <Quirk name="requires-allocate-on-input-ports" />
        <Quirk name="requires-allocate-on-output-ports" />
        <Quirk name="output-buffers-are-unreadable" />
    </MediaCodec>

Only the three quirks included above are recognized at this point:

"requires-allocate-on-input-ports"
    must be advertised if the component does not properly support specification
    of input buffers using the OMX_UseBuffer(...) API but instead requires
    OMX_AllocateBuffer to be used.

"requires-allocate-on-output-ports"
    must be advertised if the component does not properly support specification
    of output buffers using the OMX_UseBuffer(...) API but instead requires
    OMX_AllocateBuffer to be used.

"output-buffers-are-unreadable"
    must be advertised if the emitted output buffers of a decoder component
    are not readable, i.e. use a custom format even though abusing one of
    the official OMX colorspace constants.
    Clients of such decoders will not be able to access the decoded data,
    naturally making the component much less useful. The only use for
    a component with this quirk is to render the output to the screen.
    Audio decoders MUST NOT advertise this quirk.
    Video decoders that advertise this quirk must be accompanied by a
    corresponding color space converter for thumbnail extraction,
    matching surfaceflinger support that can render the custom format to
    a texture and possibly other code, so just DON'T USE THIS QUIRK.

-->

<MediaCodecs>
    <Settings>
        <Setting name="max-video-encoder-input-buffers" value="12" />
    </Settings>

    <Include href="media_codecs_google_audio.xml" />
    <Include href="media_codecs_google_telephony.xml" />
    <Include href="media_codecs_google_video.xml" />

    <Decoders>
        <MediaCodec name="c2.v4l2.avc.decoder" type="video/avc">
            <Limit name="size" min="16x16" max="4096x4096" />
            <Limit name="alignment" value="2x2" />
            <Limit name="block-size" value="16x16" />
            <Limit name="blocks-per-second" min="1" max="1879200" />
            <Limit name="bitrate" range="1-62500000" />
            <Limit name="concurrent-instances" max="4" />
            <Limit name="performance-point-3840x2160" range="30-30" />
            <Feature name="adaptive-playback" />
        </MediaCodec>
    </Decoders>
</MediaCodecs>


================================================
FILE: firmware/brcm/brcmfmac43455-sdio.txt
================================================
# Cloned from bcm94345wlpagb_p2xx.txt 
NVRAMRev=$Rev: 498373 $
sromrev=11
vendid=0x14e4
devid=0x43ab
manfid=0x2d0
prodid=0x06e4
#macaddr=00:90:4c:c5:12:38
macaddr=b8:27:eb:74:f2:6c
nocrc=1
boardtype=0x6e4
boardrev=0x1304

#XTAL 37.4MHz
xtalfreq=37400

btc_mode=1
#------------------------------------------------------
#boardflags: 5GHz eTR switch by default
#            2.4GHz eTR switch by default
#            bit1 for btcoex
boardflags=0x00480201
boardflags2=0x40800000
boardflags3=0x44200100
phycal_tempdelta=15
rxchain=1
txchain=1
aa2g=1
aa5g=1
tssipos5g=1
tssipos2g=1
femctrl=0
AvVmid_c0=1,165,2,100,2,100,2,100,2,100
pa2ga0=-129,6525,-718
pa2ga1=-149,4408,-601
pa5ga0=-185,6836,-815,-186,6838,-815,-184,6859,-815,-184,6882,-818
pa5ga1=-202,4285,-574,-201,4312,-578,-196,4391,-586,-201,4294,-575
itrsw=1
pdoffsetcckma0=2
pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0
pdoffset2g40ma0=16
pdoffset40ma0=0x8888
pdoffset80ma0=0x8888
extpagain5g=2
extpagain2g=2
tworangetssi2g=1
tworangetssi5g=1
# LTECX flags
# WCI2
ltecxmux=0
ltecxpadnum=0x0504
ltecxfnsel=0x22
ltecxgcigpio=0x32

maxp2ga0=80
ofdmlrbw202gpo=0x0022
dot11agofdmhrbw202gpo=0x4442
mcsbw202gpo=0x98444422
mcsbw402gpo=0x98444422
maxp5ga0=82,82,82,82
mcsbw205glpo=0xb9555000
mcsbw205gmpo=0xb9555000
mcsbw205ghpo=0xb9555000
mcsbw405glpo=0xb9555000
mcsbw405gmpo=0xb9555000
mcsbw405ghpo=0xb9555000
mcsbw805glpo=0xb9555000
mcsbw805gmpo=0xb9555000
mcsbw805ghpo=0xb9555000

swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff
swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe
swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3
swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3

vcodivmode=1
deadman_to=481500000

ed_thresh2g=-54
ed_thresh5g=-54
eu_edthresh2g=-54
eu_edthresh5g=-54
ldo1=4
rawtempsense=0x1ff
cckPwrIdxCorr=3
cckTssiDelay=150
ofdmTssiDelay=150
txpwr2gAdcScale=1
txpwr5gAdcScale=1
dot11b_opts=0x3aa85
cbfilttype=1
fdsslevel_ch11=6

# Improved Bluetooth coexistence parameters from Cypress
btc_mode=1
btc_params8=0x4e20
btc_params1=0x7530
btc_params50=0x972c


================================================
FILE: firmware/brcm/brcmfmac43456-sdio.txt
================================================
# Cloned from bcm94345wlpagb_p2xx.txt 
NVRAMRev=$Rev: 498373 $
sromrev=11
vendid=0x14e4
devid=0x43ab
manfid=0x2d0
prodid=0x06e4
#macaddr=00:90:4c:c5:12:38
macaddr=b8:27:eb:74:f2:6c
nocrc=1
boardtype=0x6e4
boardrev=0x1304

#XTAL 37.4MHz
xtalfreq=37400

btc_mode=1
#------------------------------------------------------
#boardflags: 5GHz eTR switch by default
#            2.4GHz eTR switch by default
#            bit1 for btcoex
boardflags=0x00480201
boardflags2=0x40800000
boardflags3=0x44200100
phycal_tempdelta=15
rxchain=1
txchain=1
aa2g=1
aa5g=1
tssipos5g=1
tssipos2g=1
femctrl=0
AvVmid_c0=0,157,1,126,1,126,1,126,1,126
pa2ga0=-170,5896,-680
pa2ga1=-156,4032,-547
pa5ga0=-150,5547,-628,-150,5583,-640,-158,5608,-649,-160,5757,-673
pa5ga1=-109,3831,-519,-88,3821,-512,-125,3731,-528,-103,3829,-516
itrsw=1
pdoffsetcckma0=2
pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0
pdoffset2g40ma0=16
pdoffset40ma0=0x8888
pdoffset80ma0=0x8888
extpagain5g=2
extpagain2g=2
tworangetssi2g=1
tworangetssi5g=1
# LTECX flags
# WCI2
ltecxmux=0
ltecxpadnum=0x0504
ltecxfnsel=0x22
ltecxgcigpio=0x32

maxp2ga0=80
ofdmlrbw202gpo=0x0022
dot11agofdmhrbw202gpo=0x4442
mcsbw202gpo=0x98444422
mcsbw402gpo=0x98444422
maxp5ga0=82,82,82,82
mcsbw205glpo=0xb9555000
mcsbw205gmpo=0xb9555000
mcsbw205ghpo=0xb9555000
mcsbw405glpo=0xb9555000
mcsbw405gmpo=0xb9555000
mcsbw405ghpo=0xb9555000
mcsbw805glpo=0xb9555000
mcsbw805gmpo=0xb9555000
mcsbw805ghpo=0xb9555000

swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff
swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe
swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3
swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3

vcodivmode=1
deadman_to=481500000

ed_thresh2g=-54
ed_thresh5g=-54
eu_edthresh2g=-54
eu_edthresh5g=-54
ldo1=4
rawtempsense=0x1ff
cckPwrIdxCorr=3
cckTssiDelay=150
ofdmTssiDelay=150
txpwr2gAdcScale=1
txpwr5gAdcScale=1
dot11b_opts=0x3aa85
cbfilttype=1
fdsslevel_ch11=6

# Improved Bluetooth coexistence parameters from Cypress
btc_mode=1
btc_params8=0x4e20
btc_params1=0x7530


================================================
FILE: fstab.rpi4
================================================
#<src>                  <mnt_point>         <type>    <mnt_flags and options>                               <fs_mgr_flags>

/dev/block/mmcblk0p2    /system             ext4      ro,barrier=1                                          wait,first_stage_mount
/dev/block/mmcblk0p3    /vendor             ext4      ro,barrier=1                                          wait,first_stage_mount
/dev/block/mmcblk0p4    /data               ext4      noatime,nosuid,nodev,nomblk_io_submit,errors=panic    wait

/devices/platform/soc/*.usb/usb*     auto   auto      defaults                                              voldmanaged=usb:auto


================================================
FILE: init.rpi4.rc
================================================
#import /vendor/etc/init/hw/init.rpi4.usb.rc

on init
    # mount debugfs
    mount debugfs /sys/kernel/debug /sys/kernel/debug mode=755

    # Support legacy paths
    symlink /sdcard /mnt/sdcard
    symlink /sdcard /storage/sdcard0

on fs
    mount_all /vendor/etc/fstab.rpi4

on post-fs-data
    # Bluetooth
    chmod 0660 /sys/class/rfkill/rfkill0/state
    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type

    # Set indication (checked by vold) that we have finished this action
    setprop vold.post_fs_data_done 1

on zygote-start
    # Create the directories used by the Wireless subsystem
    mkdir /data/misc/wifi 0770 wifi wifi
    mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
    mkdir /data/vendor/wifi 0771 wifi wifi
    mkdir /data/vendor/wifi/wpa 0770 wifi wifi
    mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
    mkdir /data/misc/dhcp 0770 dhcp dhcp
    chown dhcp dhcp /data/misc/dhcp

on boot
    setprop net.dns1 8.8.8.8
    setprop net.dns2 8.8.4.4

# fake some battery state
    setprop status.battery.state Slow
    setprop status.battery.level 5
    setprop status.battery.level_raw  50
    setprop status.battery.level_scale 9

    setprop service.adb.tcp.port 5555
    start adbd



================================================
FILE: init.rpi4.usb.rc
================================================
#
# Copyright (C) 2016 The Android Open-Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
on init
    setprop sys.usb.controller "fe980000.usb"

on boot
    mount configfs none /config
    mkdir /config/usb_gadget/g1 0770 shell shell
    mkdir /config/usb_gadget/g1/strings/0x409 0770 shell shell
    write /config/usb_gadget/g1/bcdUSB 0x0200
    write /config/usb_gadget/g1/driver_match_existing_only 0
    write /config/usb_gadget/g1/idVendor 0x18d1
    write /config/usb_gadget/g1/bcdDevice 0x0223
    write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
    write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
    write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
    mkdir /config/usb_gadget/g1/functions/accessory.gs2
    mkdir /config/usb_gadget/g1/functions/audio_source.gs3
    mkdir /config/usb_gadget/g1/functions/midi.gs5
    mkdir /config/usb_gadget/g1/functions/ffs.adb
    mkdir /config/usb_gadget/g1/functions/ffs.mtp
    mkdir /config/usb_gadget/g1/functions/ffs.ptp
    mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
    mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
    write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
    write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
    write /config/usb_gadget/g1/configs/b.1/MaxPower 500
    mkdir /dev/usb-ffs 0775 shell shell
    mkdir /dev/usb-ffs/adb 0770 shell shell
    mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
    mkdir /dev/usb-ffs/mtp 0770 mtp mtp
    mkdir /dev/usb-ffs/ptp 0770 mtp mtp
    mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
    mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
    setprop sys.usb.mtp.device_type 3
    setprop sys.usb.configfs 1
    setprop sys.usb.ffs.aio_compat 1
    symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
on property:sys.usb.config=none && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/os_desc/use 0
on property:sys.usb.config=mtp && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x4ee1
    write /config/usb_gadget/g1/os_desc/use 1
    symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x4ee2
    write /config/usb_gadget/g1/os_desc/use 1
    symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
on property:sys.usb.config=rndis && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x4ee3
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x4ee4
on property:sys.usb.config=ptp && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x4ee5
    write /config/usb_gadget/g1/os_desc/use 1
    symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x4ee6
    write /config/usb_gadget/g1/os_desc/use 1
    symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
on property:sys.usb.config=adb && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x4ee7
on property:sys.usb.config=midi && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x4ee8
on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x4ee9
on property:sys.usb.config=accessory && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x2d00
on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x2d01
on property:sys.usb.config=audio_source && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x2d02
on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x2d03
on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x2d04
on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x2d05


================================================
FILE: init.usb.rc
================================================
#
# USB configuration
#

on post-fs-data
    mkdir /data/misc/adb 02750 system shell
    mkdir /data/adb 0700 root root

service adbd /system/bin/adbd --root_seclabel=u:r:su:s0
    class core
    socket adbd seqpacket 660 system system
    disabled
    seclabel u:r:adbd:s0


================================================
FILE: manifest.xml
================================================
<manifest version="1.0" type="device" target-level="2">
    <hal format="hidl">
        <name>android.hardware.audio</name>
        <transport>hwbinder</transport>
        <version>4.0</version>
        <interface>
            <name>IDevicesFactory</name>
            <instance>default</instance>
        </interface>
        <fqname>@4.0::IDevicesFactory/default</fqname>
    </hal>
    <hal format="hidl">
        <name>android.hardware.audio.effect</name>
        <transport>hwbinder</transport>
        <version>4.0</version>
        <interface>
            <name>IEffectsFactory</name>
            <instance>default</instance>
        </interface>
        <fqname>@4.0::IEffectsFactory/default</fqname>
    </hal>
    <hal format="hidl">
        <name>android.hardware.configstore</name>
        <transport>hwbinder</transport>
        <version>1.1</version>
        <interface>
            <name>ISurfaceFlingerConfigs</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.graphics.mapper</name>
        <transport arch="64">passthrough</transport>
        <version>4.0</version>
        <interface>
            <name>IMapper</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.memtrack</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IMemtrack</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.bluetooth</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IBluetoothHci</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.keymaster</name>
        <transport>hwbinder</transport>
        <version>3.0</version>
        <interface>
            <name>IKeymasterDevice</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.camera.provider</name>
        <transport>hwbinder</transport>
        <version>2.5</version>
        <interface>
            <name>ICameraProvider</name>
            <instance>external/0</instance>
        </interface>
    </hal>    
</manifest>


================================================
FILE: overlay/RpFrameworkOverlay/Android.bp
================================================
runtime_resource_overlay {
    name: "RpFrameworkOverlay",
    certificate: "platform",
    resource_dirs: ["res"],
    product_specific: true,
    sdk_version: "current",
}


================================================
FILE: overlay/RpFrameworkOverlay/AndroidManifest.xml
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.arpi.overlay.framework"
    android:versionCode="1"
    android:versionName="1.0" >

    <application android:hasCode="false" />

    <overlay
        android:targetPackage="android"
        android:priority="0"
        android:isStatic="true" />

</manifest>


================================================
FILE: overlay/RpFrameworkOverlay/res/values/config.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- Control the behavior when the user long presses the home button.
            0 - Nothing
            1 - Launch all apps intent
            2 - Launch assist intent
            3 - Launch notification panel
         This needs to match the constants in
         policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
    -->
    <integer name="config_longPressOnHomeBehavior">0</integer>
</resources>


================================================
FILE: overlay/RpFrameworkOverlay/res/xml/global_keys.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<global_keys version="1">
    <key keyCode="KEYCODE_F1" component="com.arpi.rplauncher/.GlobalKeyReceiver" />
    <key keyCode="KEYCODE_F7" component="com.arpi.rplauncher/.GlobalKeyReceiver" />
</global_keys>


================================================
FILE: rpi4.mk
================================================
#
# Copyright 2020 Android-RPi Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk)
USE_OEM_TV_APP := true
$(call inherit-product, device/google/atv/products/atv_base.mk)

PRODUCT_NAME := rpi4
PRODUCT_DEVICE := rpi4
PRODUCT_BRAND := arpi
PRODUCT_MANUFACTURER := ARPi
PRODUCT_MODEL := Raspberry Pi 4

include frameworks/native/build/tablet-10in-xhdpi-2048-dalvik-heap.mk

PRODUCT_PROPERTY_OVERRIDES += \
    debug.drm.mode.force=1280x720 \
    gralloc.drm.kms=/dev/dri/card0 \
    ro.opengles.version=196609 \
    ro.hardware.vulkan=broadcom \
    ro.hardware.egl=mesa \
    debug.stagefright.c2-poolmask=0x350000 \
    ro.vendor.v4l2_codec2.decode_concurrent_instances=4 \
    ro.hdmi.device_type=4 \
    wifi.interface=wlan0 \
    ro.rfkilldisabled=1

PRODUCT_SOONG_NAMESPACES += external/v4l2_codec2

# application packages
PRODUCT_PACKAGES += \
    TvSettingsTwoPanel \
    DeskClock \
    RpLauncher

# overlay packages
PRODUCT_PACKAGES += \
    RpFrameworkOverlay

# system packages
PRODUCT_PACKAGES += \
    gralloc.rpi4 \
    vulkan.broadcom \
    memtrack.rpi4 \
    audio.primary.rpi4 \
    audio.usb.default \
    audio.r_submix.default \
    libc2plugin_store \
    wificond \
    wifilogd \
    wpa_supplicant \
    wpa_supplicant.conf \
    hostapd \
    libbt-vendor

# graphics hal
PRODUCT_PACKAGES += \
    libEGL_mesa \
    libGLESv1_CM_mesa \
    libGLESv2_mesa \
    libgallium_dri \
    libglapi

# hardware/interfaces
PRODUCT_PACKAGES += \
    android.hardware.graphics.allocator-service.arpi \
    android.hardware.graphics.mapper@4.0-impl.arpi \
    android.hardware.graphics.composer-service.arpi \
    android.hardware.camera.provider@2.5-external-service \
    android.hardware.audio@4.0-impl \
    android.hardware.audio.effect@4.0-impl \
    android.hardware.audio.service \
    android.hardware.keymaster@3.0-impl \
    android.hardware.keymaster@3.0-service \
    android.hardware.gatekeeper@1.0-service.software \
    android.hardware.memtrack@1.0-impl \
    android.hardware.memtrack@1.0-service \
    android.hardware.health@2.1-service \
    android.hardware.health@2.1-impl \
    android.hardware.health.storage@1.0-service \
    android.hardware.wifi@1.0-service \
    android.hardware.bluetooth@1.0-service \
    android.hardware.bluetooth@1.0-impl \
    android.hardware.configstore@1.1-service \
    android.hardware.tv.hdmi.connection-service \
    android.hardware.tv.hdmi.cec-service \
    android.hardware.tv.hdmi.earc-service \
    android.hardware.media.c2@1.0-service-v4l2 \
    hwservicemanager \
    vndservicemanager

# system configurations
PRODUCT_COPY_FILES := \
    hardware/broadcom/wlan/bcmdhd/config/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \
    frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
    frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
    frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \
    frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \
    frameworks/native/data/etc/android.hardware.hdmi.cec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.hdmi.cec.xml \
    frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
    frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \
    frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml \
    frameworks/native/data/etc/android.hardware.camera.external.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.external.xml \
    $(LOCAL_PATH)/etc/external_camera_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/external_camera_config.xml \
    $(LOCAL_PATH)/init.usb.rc:root/init.usb.rc \
    $(LOCAL_PATH)/init.rpi4.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.rpi4.rc \
    $(LOCAL_PATH)/init.rpi4.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.rpi4.usb.rc \
    $(LOCAL_PATH)/ueventd.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc \
    $(LOCAL_PATH)/fstab.rpi4:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.rpi4 \
    $(LOCAL_PATH)/fstab.rpi4:$(TARGET_COPY_OUT_RAMDISK)/fstab.rpi4 \
    $(LOCAL_PATH)/Generic.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/Generic.kl \
    $(LOCAL_PATH)/firmware/brcm/brcmfmac43455-sdio.bin:root/lib/firmware/brcm/brcmfmac43455-sdio.bin \
    $(LOCAL_PATH)/firmware/brcm/brcmfmac43455-sdio.bin:$(TARGET_COPY_OUT_RAMDISK)/lib/firmware/brcm/brcmfmac43455-sdio.bin \
    $(LOCAL_PATH)/firmware/brcm/brcmfmac43455-sdio.clm_blob:root/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob \
    $(LOCAL_PATH)/firmware/brcm/brcmfmac43455-sdio.clm_blob:$(TARGET_COPY_OUT_RAMDISK)/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob \
    $(LOCAL_PATH)/firmware/brcm/brcmfmac43455-sdio.txt:root/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
    $(LOCAL_PATH)/firmware/brcm/brcmfmac43455-sdio.txt:$(TARGET_COPY_OUT_RAMDISK)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
    $(LOCAL_PATH)/firmware/brcm/brcmfmac43456-sdio.bin:root/lib/firmware/brcm/brcmfmac43456-sdio.bin \
    $(LOCAL_PATH)/firmware/brcm/brcmfmac43456-sdio.bin:$(TARGET_COPY_OUT_RAMDISK)/lib/firmware/brcm/brcmfmac43456-sdio.bin \
    $(LOCAL_PATH)/firmware/brcm/brcmfmac43456-sdio.clm_blob:root/lib/firmware/brcm/brcmfmac43456-sdio.clm_blob \
    $(LOCAL_PATH)/firmware/brcm/brcmfmac43456-sdio.clm_blob:$(TARGET_COPY_OUT_RAMDISK)/lib/firmware/brcm/brcmfmac43456-sdio.clm_blob \
    $(LOCAL_PATH)/firmware/brcm/brcmfmac43456-sdio.txt:root/lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,400.txt \
    $(LOCAL_PATH)/firmware/brcm/brcmfmac43456-sdio.txt:$(TARGET_COPY_OUT_RAMDISK)/lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,400.txt \
    $(LOCAL_PATH)/firmware/brcm/BCM4345C0.hcd:root/lib/firmware/brcm/BCM4345C0.hcd \
    $(LOCAL_PATH)/firmware/brcm/BCM4345C5.hcd:root/lib/firmware/brcm/BCM4345C5.hcd \
    $(LOCAL_PATH)/bluetooth/bt_vendor.conf:system/etc/bluetooth/bt_vendor.conf \
    $(PRODUCT_COPY_FILES)

# media configurations
PRODUCT_COPY_FILES := \
    device/generic/goldfish/camera/media/profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles.xml \
    $(LOCAL_PATH)/etc/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
    frameworks/av/media/libeffects/data/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf \
    frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
    frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \
    frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \
    frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
    frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
    frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
    frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
    frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
    $(LOCAL_PATH)/etc/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
    frameworks/base/data/sounds/effects/ogg/Effect_Tick_48k.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/ui/Effect_Tick.ogg \
    frameworks/base/data/sounds/effects/ogg/camera_click_48k.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/ui/camera_click.ogg \
    $(LOCAL_PATH)/etc/codec2.vendor.ext.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/codec2.vendor.ext.policy \
    $(PRODUCT_COPY_FILES)

PRODUCT_AAPT_PREF_CONFIG := tvdpi
PRODUCT_CHARACTERISTICS := tv

$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)


================================================
FILE: sepolicy/bluetooth.te
================================================
allow bluetooth rfkill_device:chr_file rw_file_perms;
allow bluetooth vcio_device:chr_file rw_file_perms;


================================================
FILE: sepolicy/bootanim.te
================================================
gpu_access(bootanim)


================================================
FILE: sepolicy/cameraserver.te
================================================
allow cameraserver gpu_device:chr_file rw_file_perms;
gpu_access(cameraserver)


================================================
FILE: sepolicy/device.te
================================================
type rfkill_device, dev_type, mlstrustedobject;
type vcio_device, dev_type, mlstrustedobject;


================================================
FILE: sepolicy/file_contexts
================================================
/dev/dri                        u:object_r:gpu_device:s0
/dev/dri/card0                  u:object_r:gpu_device:s0
/dev/dri/card1                  u:object_r:gpu_device:s0
/dev/dri/renderD128             u:object_r:gpu_device:s0
/dev/rfkill                     u:object_r:rfkill_device:s0
/dev/vcio                       u:object_r:vcio_device:s0
/dev/ttyAMA1                    u:object_r:hci_attach_dev:s0

/sys/class/rfkill/rfkill0/state u:object_r:sysfs_bluetooth_writable:s0

/sys/devices/platform/gpu/uevent                    u:object_r:sysfs_gpu:s0
/sys/devices/platform/v3dbus/fec00000.v3d/uevent    u:object_r:sysfs_gpu:s0

/vendor/bin/hw/android\.hardware\.gatekeeper@1\.0-service.software        u:object_r:hal_gatekeeper_default_exec:s0

/vendor/bin/hw/android\.hardware\.graphics\.allocator-service\.arpi  u:object_r:hal_graphics_allocator_default_exec:s0
/vendor/bin/hw/android\.hardware\.graphics\.composer-service\.arpi   u:object_r:hal_graphics_composer_default_exec:s0
/vendor/lib64/hw/android\.hardware\.graphics\.mapper@4\.0-impl\.arpi\.so    u:object_r:same_process_hal_file:s0

/vendor/lib64/hw/vulkan\.broadcom\.so      u:object_r:same_process_hal_file:s0
/vendor/lib64/hw/gralloc\.rpi4\.so         u:object_r:same_process_hal_file:s0
/vendor/lib64/dri/libgallium_dri\.so       u:object_r:same_process_hal_file:s0
/vendor/lib64/libdrm\.so                   u:object_r:same_process_hal_file:s0
/vendor/lib64/libglapi\.so                 u:object_r:same_process_hal_file:s0


/vendor/bin/hw/android\.hardware\.media\.c2@1\.0-service-v4l2-64  u:object_r:mediacodec_exec:s0


================================================
FILE: sepolicy/hal_camera_default.te
================================================
vndbinder_use(hal_camera_default);
allow hal_camera_default gpu_device:chr_file rw_file_perms;
gpu_access(hal_camera_default)


================================================
FILE: sepolicy/hal_graphics_allocator_default.te
================================================
gpu_access(hal_graphics_allocator_default)


================================================
FILE: sepolicy/hal_graphics_composer_default.te
================================================
vndbinder_use(hal_graphics_composer_default)
gpu_access(hal_graphics_composer_default)


================================================
FILE: sepolicy/init.te
================================================
allow init kernel:system module_request;
allow init tmpfs:lnk_file create;


================================================
FILE: sepolicy/kernel.te
================================================
allow kernel self:capability mknod;
allow kernel self:system module_request;
allow kernel device:dir { create write add_name remove_name rmdir };
allow kernel device:chr_file { create setattr getattr unlink };


================================================
FILE: sepolicy/mediacodec.te
================================================
allow mediacodec gpu_device:chr_file rw_file_perms;
gpu_access(mediacodec)


================================================
FILE: sepolicy/mediaserver.te
================================================
allow mediaserver gpu_device:dir search;


================================================
FILE: sepolicy/mediaswcodec.te
================================================
allow mediaswcodec gpu_device:chr_file rw_file_perms;
gpu_access(mediaswcodec)


================================================
FILE: sepolicy/netd.te
================================================
dontaudit netd self:capability sys_module;
allow netd kernel:system module_request;


================================================
FILE: sepolicy/platform_app.te
================================================
gpu_access(platform_app)


================================================
FILE: sepolicy/priv_app.te
================================================
gpu_access(priv_app)


================================================
FILE: sepolicy/surfaceflinger.te
================================================
gpu_access(surfaceflinger)


================================================
FILE: sepolicy/system_app.te
================================================
gpu_access(system_app)


================================================
FILE: sepolicy/system_server.te
================================================
gpu_access(system_server)
allow system_server self:capability sys_module;


================================================
FILE: sepolicy/te_macros
================================================
#####################################
# gpu_access(client_domain)
# Allow client_domain to communicate with the GPU
define(`gpu_access', `
allow $1 gpu_device:dir { getattr open read search };
allow $1 sysfs_gpu:file { getattr open read };
')


================================================
FILE: sepolicy/untrusted_app_all.te
================================================
gpu_access(untrusted_app_all)


================================================
FILE: ueventd.rc
================================================
/dev/ttyAMA1              0660   bluetooth  bluetooth
/dev/rfkill               0660   bluetooth  bluetooth
/dev/vcio                 0660   system     bluetooth
/dev/ion                  0664   system     system
/dev/video0               0660   system     camera
/dev/video1               0660   system     camera
/dev/video10              0660   media      media
/dev/dma_heap/linux,cma   0666   system     graphics
Download .txt
gitextract_57scc5u_/

├── AndroidProducts.mk
├── BoardConfig.mk
├── Generic.kl
├── README
├── bluetooth/
│   ├── bdroid_buildcfg.h
│   ├── bt_vendor.conf
│   ├── bt_vendor_400.conf
│   └── vnd_rpi4.txt
├── boot/
│   ├── cmdline.txt
│   ├── config.txt
│   └── start4.elf
├── etc/
│   ├── audio_policy_configuration.xml
│   ├── codec2.vendor.ext.policy
│   ├── external_camera_config.xml
│   └── media_codecs.xml
├── firmware/
│   └── brcm/
│       ├── BCM4345C0.hcd
│       ├── BCM4345C5.hcd
│       ├── brcmfmac43455-sdio.clm_blob
│       ├── brcmfmac43455-sdio.txt
│       ├── brcmfmac43456-sdio.clm_blob
│       └── brcmfmac43456-sdio.txt
├── fstab.rpi4
├── init.rpi4.rc
├── init.rpi4.usb.rc
├── init.usb.rc
├── manifest.xml
├── overlay/
│   └── RpFrameworkOverlay/
│       ├── Android.bp
│       ├── AndroidManifest.xml
│       └── res/
│           ├── values/
│           │   └── config.xml
│           └── xml/
│               └── global_keys.xml
├── rpi4.mk
├── sepolicy/
│   ├── bluetooth.te
│   ├── bootanim.te
│   ├── cameraserver.te
│   ├── device.te
│   ├── file_contexts
│   ├── hal_camera_default.te
│   ├── hal_graphics_allocator_default.te
│   ├── hal_graphics_composer_default.te
│   ├── init.te
│   ├── kernel.te
│   ├── mediacodec.te
│   ├── mediaserver.te
│   ├── mediaswcodec.te
│   ├── netd.te
│   ├── platform_app.te
│   ├── priv_app.te
│   ├── surfaceflinger.te
│   ├── system_app.te
│   ├── system_server.te
│   ├── te_macros
│   └── untrusted_app_all.te
└── ueventd.rc
Condensed preview — 53 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (53K chars).
[
  {
    "path": "AndroidProducts.mk",
    "chars": 76,
    "preview": "PRODUCT_MAKEFILES := $(LOCAL_DIR)/rpi4.mk\n\nCOMMON_LUNCH_CHOICES := rpi4-eng\n"
  },
  {
    "path": "BoardConfig.mk",
    "chars": 2222,
    "preview": "#\n# Copyright 2020 Android-RPi Project\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not"
  },
  {
    "path": "Generic.kl",
    "chars": 9301,
    "preview": "# Copyright (C) 2010 The Android Open Source Project\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "README",
    "chars": 1497,
    "preview": "# Setup build envoronment\n  https://source.android.com/setup/build/initializing\n  $ sudo apt install libssl-dev python3-"
  },
  {
    "path": "bluetooth/bdroid_buildcfg.h",
    "chars": 138,
    "preview": "#ifndef _BDROID_BUILDCFG_H\n#define _BDROID_BUILDCFG_H\n\n#define BTM_DEF_LOCAL_NAME   \"RPI4\"\n\n#define BTA_DM_COD {0x1A, 0x"
  },
  {
    "path": "bluetooth/bt_vendor.conf",
    "chars": 198,
    "preview": "# UART device port where Bluetooth controller is attached\nUartPort = /dev/ttyAMA1\n# Firmware patch file location\nFwPatch"
  },
  {
    "path": "bluetooth/bt_vendor_400.conf",
    "chars": 198,
    "preview": "# UART device port where Bluetooth controller is attached\nUartPort = /dev/ttyAMA1\n# Firmware patch file location\nFwPatch"
  },
  {
    "path": "bluetooth/vnd_rpi4.txt",
    "chars": 396,
    "preview": "BLUETOOTH_UART_DEVICE_PORT = \"/dev/ttyAMA1\"\nFW_PATCHFILE_LOCATION = \"/lib/firmware/\"\nFW_PATCH_SETTLEMENT_DELAY_MS = 200\n"
  },
  {
    "path": "boot/cmdline.txt",
    "chars": 114,
    "preview": "console=serial0,115200 no_console_suspend root=/dev/ram0 androidboot.hardware=rpi4 androidboot.selinux=permissive\n"
  },
  {
    "path": "boot/config.txt",
    "chars": 200,
    "preview": "kernel=Image.gz\narm_64bit=1\ndtparam=krnbt=off\ndtparam=audio=on\ndtoverlay=vc4-kms-v3d-pi4,noaudio\n#dtoverlay=dwc2,dr_mode"
  },
  {
    "path": "etc/audio_policy_configuration.xml",
    "chars": 1375,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<audioPolicyConfiguration version=\"1.0\" xmlns:xi=\"http://www.w3."
  },
  {
    "path": "etc/codec2.vendor.ext.policy",
    "chars": 241,
    "preview": "_llseek: 1\nepoll_create1: 1\nepoll_ctl: 1\nepoll_pwait: 1\neventfd2: 1\nfstat64: 1\nfstatat64: 1\nfstatfs64: 1\ngetcwd: 1\ngetde"
  },
  {
    "path": "etc/external_camera_config.xml",
    "chars": 1176,
    "preview": "<ExternalCamera>\n    <Provider>\n        <id>0</id>\n    </Provider>\n    <Device>\n        <!-- Max JPEG buffer size in byt"
  },
  {
    "path": "etc/media_codecs.xml",
    "chars": 4052,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<!-- Copyright (C) 2012 The Android Open Source Project\n\n     Licensed under the"
  },
  {
    "path": "firmware/brcm/brcmfmac43455-sdio.txt",
    "chars": 2074,
    "preview": "# Cloned from bcm94345wlpagb_p2xx.txt \nNVRAMRev=$Rev: 498373 $\nsromrev=11\nvendid=0x14e4\ndevid=0x43ab\nmanfid=0x2d0\nprodid"
  },
  {
    "path": "firmware/brcm/brcmfmac43456-sdio.txt",
    "chars": 2053,
    "preview": "# Cloned from bcm94345wlpagb_p2xx.txt \nNVRAMRev=$Rev: 498373 $\nsromrev=11\nvendid=0x14e4\ndevid=0x43ab\nmanfid=0x2d0\nprodid"
  },
  {
    "path": "fstab.rpi4",
    "chars": 629,
    "preview": "#<src>                  <mnt_point>         <type>    <mnt_flags and options>                               <fs_mgr_flag"
  },
  {
    "path": "init.rpi4.rc",
    "chars": 1292,
    "preview": "#import /vendor/etc/init/hw/init.rpi4.usb.rc\n\non init\n    # mount debugfs\n    mount debugfs /sys/kernel/debug /sys/kerne"
  },
  {
    "path": "init.rpi4.usb.rc",
    "chars": 4992,
    "preview": "#\n# Copyright (C) 2016 The Android Open-Source Project\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\""
  },
  {
    "path": "init.usb.rc",
    "chars": 274,
    "preview": "#\n# USB configuration\n#\n\non post-fs-data\n    mkdir /data/misc/adb 02750 system shell\n    mkdir /data/adb 0700 root root\n"
  },
  {
    "path": "manifest.xml",
    "chars": 2418,
    "preview": "<manifest version=\"1.0\" type=\"device\" target-level=\"2\">\n    <hal format=\"hidl\">\n        <name>android.hardware.audio</na"
  },
  {
    "path": "overlay/RpFrameworkOverlay/Android.bp",
    "chars": 174,
    "preview": "runtime_resource_overlay {\n    name: \"RpFrameworkOverlay\",\n    certificate: \"platform\",\n    resource_dirs: [\"res\"],\n    "
  },
  {
    "path": "overlay/RpFrameworkOverlay/AndroidManifest.xml",
    "chars": 346,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.arpi.overlay.framework\"\n    androi"
  },
  {
    "path": "overlay/RpFrameworkOverlay/res/values/config.xml",
    "chars": 474,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- Control the behavior when the user long presses the home but"
  },
  {
    "path": "overlay/RpFrameworkOverlay/res/xml/global_keys.xml",
    "chars": 248,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<global_keys version=\"1\">\n    <key keyCode=\"KEYCODE_F1\" component=\"com.arpi.rplau"
  },
  {
    "path": "rpi4.mk",
    "chars": 9098,
    "preview": "#\n# Copyright 2020 Android-RPi Project\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not"
  },
  {
    "path": "sepolicy/bluetooth.te",
    "chars": 106,
    "preview": "allow bluetooth rfkill_device:chr_file rw_file_perms;\nallow bluetooth vcio_device:chr_file rw_file_perms;\n"
  },
  {
    "path": "sepolicy/bootanim.te",
    "chars": 21,
    "preview": "gpu_access(bootanim)\n"
  },
  {
    "path": "sepolicy/cameraserver.te",
    "chars": 79,
    "preview": "allow cameraserver gpu_device:chr_file rw_file_perms;\ngpu_access(cameraserver)\n"
  },
  {
    "path": "sepolicy/device.te",
    "chars": 94,
    "preview": "type rfkill_device, dev_type, mlstrustedobject;\ntype vcio_device, dev_type, mlstrustedobject;\n"
  },
  {
    "path": "sepolicy/file_contexts",
    "chars": 1593,
    "preview": "/dev/dri                        u:object_r:gpu_device:s0\n/dev/dri/card0                  u:object_r:gpu_device:s0\n/dev/d"
  },
  {
    "path": "sepolicy/hal_camera_default.te",
    "chars": 126,
    "preview": "vndbinder_use(hal_camera_default);\nallow hal_camera_default gpu_device:chr_file rw_file_perms;\ngpu_access(hal_camera_def"
  },
  {
    "path": "sepolicy/hal_graphics_allocator_default.te",
    "chars": 43,
    "preview": "gpu_access(hal_graphics_allocator_default)\n"
  },
  {
    "path": "sepolicy/hal_graphics_composer_default.te",
    "chars": 87,
    "preview": "vndbinder_use(hal_graphics_composer_default)\ngpu_access(hal_graphics_composer_default)\n"
  },
  {
    "path": "sepolicy/init.te",
    "chars": 75,
    "preview": "allow init kernel:system module_request;\nallow init tmpfs:lnk_file create;\n"
  },
  {
    "path": "sepolicy/kernel.te",
    "chars": 210,
    "preview": "allow kernel self:capability mknod;\nallow kernel self:system module_request;\nallow kernel device:dir { create write add_"
  },
  {
    "path": "sepolicy/mediacodec.te",
    "chars": 75,
    "preview": "allow mediacodec gpu_device:chr_file rw_file_perms;\ngpu_access(mediacodec)\n"
  },
  {
    "path": "sepolicy/mediaserver.te",
    "chars": 41,
    "preview": "allow mediaserver gpu_device:dir search;\n"
  },
  {
    "path": "sepolicy/mediaswcodec.te",
    "chars": 79,
    "preview": "allow mediaswcodec gpu_device:chr_file rw_file_perms;\ngpu_access(mediaswcodec)\n"
  },
  {
    "path": "sepolicy/netd.te",
    "chars": 84,
    "preview": "dontaudit netd self:capability sys_module;\nallow netd kernel:system module_request;\n"
  },
  {
    "path": "sepolicy/platform_app.te",
    "chars": 25,
    "preview": "gpu_access(platform_app)\n"
  },
  {
    "path": "sepolicy/priv_app.te",
    "chars": 21,
    "preview": "gpu_access(priv_app)\n"
  },
  {
    "path": "sepolicy/surfaceflinger.te",
    "chars": 27,
    "preview": "gpu_access(surfaceflinger)\n"
  },
  {
    "path": "sepolicy/system_app.te",
    "chars": 23,
    "preview": "gpu_access(system_app)\n"
  },
  {
    "path": "sepolicy/system_server.te",
    "chars": 74,
    "preview": "gpu_access(system_server)\nallow system_server self:capability sys_module;\n"
  },
  {
    "path": "sepolicy/te_macros",
    "chars": 243,
    "preview": "#####################################\n# gpu_access(client_domain)\n# Allow client_domain to communicate with the GPU\ndefi"
  },
  {
    "path": "sepolicy/untrusted_app_all.te",
    "chars": 30,
    "preview": "gpu_access(untrusted_app_all)\n"
  },
  {
    "path": "ueventd.rc",
    "chars": 418,
    "preview": "/dev/ttyAMA1              0660   bluetooth  bluetooth\n/dev/rfkill               0660   bluetooth  bluetooth\n/dev/vcio   "
  }
]

// ... and 5 more files (download for full content)

About this extraction

This page contains the full source code of the android-rpi/device_arpi_rpi4 GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 53 files (47.7 KB), approximately 16.7k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!