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
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.