├── AndroidProducts.mk ├── BoardConfig.mk ├── Generic.kl ├── README ├── audio_policy_configuration.xml ├── bluetooth ├── bdroid_buildcfg.h ├── bt_vendor.conf └── vnd_rpi3.txt ├── boot ├── bootcode.bin ├── cmdline.txt ├── config.txt ├── fixup.dat └── start.elf ├── firmware └── brcm │ ├── BCM43430A1.hcd │ ├── brcmfmac43430-sdio.bin │ ├── brcmfmac43430-sdio.txt │ ├── brcmfmac43455-sdio.bin │ └── brcmfmac43455-sdio.txt ├── fstab.rpi3 ├── init.rpi3.rc ├── init.usb.rc ├── manifest.xml ├── overlay └── frameworks │ └── base │ ├── core │ └── res │ │ └── res │ │ ├── values-television │ │ └── config.xml │ │ └── values │ │ └── config.xml │ └── packages │ ├── SettingsProvider │ └── res │ │ └── values │ │ └── defaults.xml │ └── SystemUI │ └── res │ └── values │ └── config.xml ├── rpi3.mk ├── rpi3_core_hardware.xml ├── sepolicy ├── bluetooth.te ├── bootanim.te ├── device.te ├── file_contexts ├── hal_graphics_allocator.te ├── init.te ├── kernel.te ├── mediaserver.te ├── netd.te ├── platform_app.te ├── priv_app.te ├── surfaceflinger.te ├── system_app.te ├── system_server.te └── untrusted_app.te └── ueventd.rpi3.rc /AndroidProducts.mk: -------------------------------------------------------------------------------- 1 | PRODUCT_MAKEFILES := $(LOCAL_DIR)/rpi3.mk 2 | 3 | COMMON_LUNCH_CHOICES := rpi3-eng 4 | -------------------------------------------------------------------------------- /BoardConfig.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2020 Android-RPi Project 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | TARGET_NO_BOOTLOADER := true 18 | TARGET_NO_KERNEL := true 19 | TARGET_NO_RECOVERY := true 20 | 21 | TARGET_ARCH := arm 22 | TARGET_ARCH_VARIANT := armv7-a-neon 23 | TARGET_CPU_VARIANT := cortex-a7 24 | TARGET_CPU_ABI := armeabi-v7a 25 | TARGET_CPU_ABI2 := armeabi 26 | 27 | TARGET_BOARD_PLATFORM := bcm2710 28 | 29 | TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true 30 | TARGET_USERIMAGES_USE_EXT4 := true 31 | 32 | BOARD_SYSTEMIMAGE_PARTITION_SIZE := 671088640 # 640M 33 | BOARD_USERDATAIMAGE_PARTITION_SIZE := 134217728 # 128M 34 | 35 | TARGET_COPY_OUT_VENDOR := vendor 36 | BOARD_VENDORIMAGE_PARTITION_SIZE := 134217728 # 128M 37 | BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 38 | 39 | BOARD_FLASH_BLOCK_SIZE := 4096 40 | 41 | MALLOC_SVELTE := true 42 | 43 | USE_XML_AUDIO_POLICY_CONF := 1 44 | 45 | BOARD_GPU_DRIVERS := vc4 46 | BOARD_USES_DRM_GRALLOC := true 47 | USE_OPENGL_RENDERER := true 48 | TARGET_USES_HWC2 := true 49 | TARGET_SCREEN_DENSITY := 213 50 | 51 | # Wifi 52 | BOARD_WLAN_DEVICE := bcmdhd 53 | BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd 54 | BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_bcmdhd 55 | WPA_SUPPLICANT_VERSION := VER_0_8_X 56 | BOARD_WPA_SUPPLICANT_DRIVER := NL80211 57 | 58 | USE_CAMERA_STUB := true 59 | 60 | BOARD_SEPOLICY_DIRS := \ 61 | device/brcm/rpi3/sepolicy 62 | 63 | DEVICE_MANIFEST_FILE := device/brcm/rpi3/manifest.xml 64 | -------------------------------------------------------------------------------- /Generic.kl: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2010 The Android Open Source Project 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # 16 | # Generic key layout file for full alphabetic US English PC style external keyboards. 17 | # 18 | # This file is intentionally very generic and is intended to support a broad rang of keyboards. 19 | # Do not edit the generic key layout to support a specific keyboard; instead, create 20 | # a new key layout file with the required keyboard configuration. 21 | # 22 | 23 | key 1 ESCAPE 24 | key 2 1 25 | key 3 2 26 | key 4 3 27 | key 5 4 28 | key 6 5 29 | key 7 6 30 | key 8 7 31 | key 9 8 32 | key 10 9 33 | key 11 0 34 | key 12 MINUS 35 | key 13 EQUALS 36 | key 14 DEL 37 | key 15 TAB 38 | key 16 Q 39 | key 17 W 40 | key 18 E 41 | key 19 R 42 | key 20 T 43 | key 21 Y 44 | key 22 U 45 | key 23 I 46 | key 24 O 47 | key 25 P 48 | key 26 LEFT_BRACKET 49 | key 27 RIGHT_BRACKET 50 | key 28 ENTER 51 | key 29 CTRL_LEFT 52 | key 30 A 53 | key 31 S 54 | key 32 D 55 | key 33 F 56 | key 34 G 57 | key 35 H 58 | key 36 J 59 | key 37 K 60 | key 38 L 61 | key 39 SEMICOLON 62 | key 40 APOSTROPHE 63 | key 41 GRAVE 64 | key 42 SHIFT_LEFT 65 | key 43 BACKSLASH 66 | key 44 Z 67 | key 45 X 68 | key 46 C 69 | key 47 V 70 | key 48 B 71 | key 49 N 72 | key 50 M 73 | key 51 COMMA 74 | key 52 PERIOD 75 | key 53 SLASH 76 | key 54 SHIFT_RIGHT 77 | key 55 NUMPAD_MULTIPLY 78 | key 56 ALT_LEFT 79 | key 57 SPACE 80 | key 58 CAPS_LOCK 81 | key 59 HOME 82 | key 60 BACK 83 | key 61 MENU 84 | key 62 INFO 85 | key 63 F5 86 | key 64 F6 87 | key 65 F7 88 | key 66 F8 89 | key 67 F9 90 | key 68 F10 91 | key 69 NUM_LOCK 92 | key 70 SCROLL_LOCK 93 | key 71 NUMPAD_7 94 | key 72 NUMPAD_8 95 | key 73 NUMPAD_9 96 | key 74 NUMPAD_SUBTRACT 97 | key 75 NUMPAD_4 98 | key 76 NUMPAD_5 99 | key 77 NUMPAD_6 100 | key 78 NUMPAD_ADD 101 | key 79 NUMPAD_1 102 | key 80 NUMPAD_2 103 | key 81 NUMPAD_3 104 | key 82 NUMPAD_0 105 | key 83 NUMPAD_DOT 106 | # key 84 (undefined) 107 | key 85 ZENKAKU_HANKAKU 108 | key 86 BACKSLASH 109 | key 87 VOLUME_DOWN 110 | key 88 VOLUME_UP 111 | key 89 RO 112 | # key 90 "KEY_KATAKANA" 113 | # key 91 "KEY_HIRAGANA" 114 | key 92 HENKAN 115 | key 93 KATAKANA_HIRAGANA 116 | key 94 MUHENKAN 117 | key 95 NUMPAD_COMMA 118 | key 96 NUMPAD_ENTER 119 | key 97 CTRL_RIGHT 120 | key 98 NUMPAD_DIVIDE 121 | key 99 SYSRQ 122 | key 100 ALT_RIGHT 123 | # key 101 "KEY_LINEFEED" 124 | key 102 MOVE_HOME 125 | key 103 DPAD_UP 126 | key 104 PAGE_UP 127 | key 105 DPAD_LEFT 128 | key 106 DPAD_RIGHT 129 | key 107 MOVE_END 130 | key 108 DPAD_DOWN 131 | key 109 PAGE_DOWN 132 | key 110 INSERT 133 | key 111 FORWARD_DEL 134 | # key 112 "KEY_MACRO" 135 | key 113 VOLUME_MUTE 136 | key 114 VOLUME_DOWN 137 | key 115 VOLUME_UP 138 | key 116 POWER 139 | key 117 NUMPAD_EQUALS 140 | # key 118 "KEY_KPPLUSMINUS" 141 | key 119 BREAK 142 | # key 120 (undefined) 143 | key 121 NUMPAD_COMMA 144 | key 122 KANA 145 | key 123 EISU 146 | key 124 YEN 147 | key 125 META_LEFT 148 | key 126 META_RIGHT 149 | key 127 MENU 150 | key 128 MEDIA_STOP 151 | # key 129 "KEY_AGAIN" 152 | # key 130 "KEY_PROPS" 153 | # key 131 "KEY_UNDO" 154 | # key 132 "KEY_FRONT" 155 | key 133 COPY 156 | # key 134 "KEY_OPEN" 157 | key 135 PASTE 158 | # key 136 "KEY_FIND" 159 | key 137 CUT 160 | # key 138 "KEY_HELP" 161 | key 139 MENU 162 | key 140 CALCULATOR 163 | # key 141 "KEY_SETUP" 164 | key 142 SLEEP 165 | key 143 WAKEUP 166 | # key 144 "KEY_FILE" 167 | # key 145 "KEY_SENDFILE" 168 | # key 146 "KEY_DELETEFILE" 169 | # key 147 "KEY_XFER" 170 | # key 148 "KEY_PROG1" 171 | # key 149 "KEY_PROG2" 172 | key 150 EXPLORER 173 | # key 151 "KEY_MSDOS" 174 | key 152 POWER 175 | # key 153 "KEY_DIRECTION" 176 | # key 154 "KEY_CYCLEWINDOWS" 177 | key 155 ENVELOPE 178 | key 156 BOOKMARK 179 | # key 157 "KEY_COMPUTER" 180 | key 158 BACK 181 | key 159 FORWARD 182 | key 160 MEDIA_CLOSE 183 | key 161 MEDIA_EJECT 184 | key 162 MEDIA_EJECT 185 | key 163 MEDIA_NEXT 186 | key 164 MEDIA_PLAY_PAUSE 187 | key 165 MEDIA_PREVIOUS 188 | key 166 MEDIA_STOP 189 | key 167 MEDIA_RECORD 190 | key 168 MEDIA_REWIND 191 | key 169 CALL 192 | # key 170 "KEY_ISO" 193 | key 171 MUSIC 194 | key 172 HOME 195 | # key 173 "KEY_REFRESH" 196 | # key 174 "KEY_EXIT" 197 | # key 175 "KEY_MOVE" 198 | # key 176 "KEY_EDIT" 199 | key 177 PAGE_UP 200 | key 178 PAGE_DOWN 201 | key 179 NUMPAD_LEFT_PAREN 202 | key 180 NUMPAD_RIGHT_PAREN 203 | # key 181 "KEY_NEW" 204 | # key 182 "KEY_REDO" 205 | # key 183 F13 206 | # key 184 F14 207 | # key 185 F15 208 | # key 186 F16 209 | # key 187 F17 210 | # key 188 F18 211 | # key 189 F19 212 | # key 190 F20 213 | # key 191 F21 214 | # key 192 F22 215 | # key 193 F23 216 | # key 194 F24 217 | # key 195 (undefined) 218 | # key 196 (undefined) 219 | # key 197 (undefined) 220 | # key 198 (undefined) 221 | # key 199 (undefined) 222 | key 200 MEDIA_PLAY 223 | key 201 MEDIA_PAUSE 224 | # key 202 "KEY_PROG3" 225 | # key 203 "KEY_PROG4" 226 | # key 204 (undefined) 227 | # key 205 "KEY_SUSPEND" 228 | # key 206 "KEY_CLOSE" 229 | key 207 MEDIA_PLAY 230 | key 208 MEDIA_FAST_FORWARD 231 | # key 209 "KEY_BASSBOOST" 232 | # key 210 "KEY_PRINT" 233 | # key 211 "KEY_HP" 234 | key 212 CAMERA 235 | key 213 MUSIC 236 | # key 214 "KEY_QUESTION" 237 | key 215 ENVELOPE 238 | # key 216 "KEY_CHAT" 239 | key 217 SEARCH 240 | # key 218 "KEY_CONNECT" 241 | # key 219 "KEY_FINANCE" 242 | # key 220 "KEY_SPORT" 243 | # key 221 "KEY_SHOP" 244 | # key 222 "KEY_ALTERASE" 245 | # key 223 "KEY_CANCEL" 246 | key 224 BRIGHTNESS_DOWN 247 | key 225 BRIGHTNESS_UP 248 | key 226 HEADSETHOOK 249 | key 227 STAR 250 | key 228 POUND 251 | 252 | key 256 BUTTON_1 253 | key 257 BUTTON_2 254 | key 258 BUTTON_3 255 | key 259 BUTTON_4 256 | key 260 BUTTON_5 257 | key 261 BUTTON_6 258 | key 262 BUTTON_7 259 | key 263 BUTTON_8 260 | key 264 BUTTON_9 261 | key 265 BUTTON_10 262 | key 266 BUTTON_11 263 | key 267 BUTTON_12 264 | key 268 BUTTON_13 265 | key 269 BUTTON_14 266 | key 270 BUTTON_15 267 | key 271 BUTTON_16 268 | 269 | key 288 BUTTON_1 270 | key 289 BUTTON_2 271 | key 290 BUTTON_3 272 | key 291 BUTTON_4 273 | key 292 BUTTON_5 274 | key 293 BUTTON_6 275 | key 294 BUTTON_7 276 | key 295 BUTTON_8 277 | key 296 BUTTON_9 278 | key 297 BUTTON_10 279 | key 298 BUTTON_11 280 | key 299 BUTTON_12 281 | key 300 BUTTON_13 282 | key 301 BUTTON_14 283 | key 302 BUTTON_15 284 | key 303 BUTTON_16 285 | 286 | 287 | key 304 BUTTON_A 288 | key 305 BUTTON_B 289 | key 306 BUTTON_C 290 | key 307 BUTTON_X 291 | key 308 BUTTON_Y 292 | key 309 BUTTON_Z 293 | key 310 BUTTON_L1 294 | key 311 BUTTON_R1 295 | key 312 BUTTON_L2 296 | key 313 BUTTON_R2 297 | key 314 BUTTON_SELECT 298 | key 315 BUTTON_START 299 | key 316 BUTTON_MODE 300 | key 317 BUTTON_THUMBL 301 | key 318 BUTTON_THUMBR 302 | 303 | 304 | # key 352 "KEY_OK" 305 | key 353 DPAD_CENTER 306 | # key 354 "KEY_GOTO" 307 | # key 355 "KEY_CLEAR" 308 | # key 356 "KEY_POWER2" 309 | # key 357 "KEY_OPTION" 310 | # key 358 "KEY_INFO" 311 | # key 359 "KEY_TIME" 312 | # key 360 "KEY_VENDOR" 313 | # key 361 "KEY_ARCHIVE" 314 | key 362 GUIDE 315 | # key 363 "KEY_CHANNEL" 316 | # key 364 "KEY_FAVORITES" 317 | # key 365 "KEY_EPG" 318 | key 366 DVR 319 | # key 367 "KEY_MHP" 320 | # key 368 "KEY_LANGUAGE" 321 | # key 369 "KEY_TITLE" 322 | # key 370 "KEY_SUBTITLE" 323 | # key 371 "KEY_ANGLE" 324 | # key 372 "KEY_ZOOM" 325 | # key 373 "KEY_MODE" 326 | # key 374 "KEY_KEYBOARD" 327 | # key 375 "KEY_SCREEN" 328 | # key 376 "KEY_PC" 329 | key 377 TV 330 | # key 378 "KEY_TV2" 331 | # key 379 "KEY_VCR" 332 | # key 380 "KEY_VCR2" 333 | # key 381 "KEY_SAT" 334 | # key 382 "KEY_SAT2" 335 | # key 383 "KEY_CD" 336 | # key 384 "KEY_TAPE" 337 | # key 385 "KEY_RADIO" 338 | # key 386 "KEY_TUNER" 339 | # key 387 "KEY_PLAYER" 340 | # key 388 "KEY_TEXT" 341 | # key 389 "KEY_DVD" 342 | # key 390 "KEY_AUX" 343 | # key 391 "KEY_MP3" 344 | # key 392 "KEY_AUDIO" 345 | # key 393 "KEY_VIDEO" 346 | # key 394 "KEY_DIRECTORY" 347 | # key 395 "KEY_LIST" 348 | # key 396 "KEY_MEMO" 349 | key 397 CALENDAR 350 | # key 398 "KEY_RED" 351 | # key 399 "KEY_GREEN" 352 | # key 400 "KEY_YELLOW" 353 | # key 401 "KEY_BLUE" 354 | key 402 CHANNEL_UP 355 | key 403 CHANNEL_DOWN 356 | # key 404 "KEY_FIRST" 357 | # key 405 "KEY_LAST" 358 | # key 406 "KEY_AB" 359 | # key 407 "KEY_NEXT" 360 | # key 408 "KEY_RESTART" 361 | # key 409 "KEY_SLOW" 362 | # key 410 "KEY_SHUFFLE" 363 | # key 411 "KEY_BREAK" 364 | # key 412 "KEY_PREVIOUS" 365 | # key 413 "KEY_DIGITS" 366 | # key 414 "KEY_TEEN" 367 | # key 415 "KEY_TWEN" 368 | 369 | key 429 CONTACTS 370 | 371 | # key 448 "KEY_DEL_EOL" 372 | # key 449 "KEY_DEL_EOS" 373 | # key 450 "KEY_INS_LINE" 374 | # key 451 "KEY_DEL_LINE" 375 | 376 | 377 | key 464 FUNCTION 378 | key 465 ESCAPE FUNCTION 379 | key 466 F1 FUNCTION 380 | key 467 F2 FUNCTION 381 | key 468 F3 FUNCTION 382 | key 469 F4 FUNCTION 383 | key 470 F5 FUNCTION 384 | key 471 F6 FUNCTION 385 | key 472 F7 FUNCTION 386 | key 473 F8 FUNCTION 387 | key 474 F9 FUNCTION 388 | key 475 F10 FUNCTION 389 | key 476 F11 FUNCTION 390 | key 477 F12 FUNCTION 391 | key 478 1 FUNCTION 392 | key 479 2 FUNCTION 393 | key 480 D FUNCTION 394 | key 481 E FUNCTION 395 | key 482 F FUNCTION 396 | key 483 S FUNCTION 397 | key 484 B FUNCTION 398 | 399 | 400 | # key 497 KEY_BRL_DOT1 401 | # key 498 KEY_BRL_DOT2 402 | # key 499 KEY_BRL_DOT3 403 | # key 500 KEY_BRL_DOT4 404 | # key 501 KEY_BRL_DOT5 405 | # key 502 KEY_BRL_DOT6 406 | # key 503 KEY_BRL_DOT7 407 | # key 504 KEY_BRL_DOT8 408 | 409 | key 580 APP_SWITCH 410 | key 582 VOICE_ASSIST 411 | 412 | # Keys defined by HID usages 413 | key usage 0x0c006F BRIGHTNESS_UP 414 | key usage 0x0c0070 BRIGHTNESS_DOWN 415 | 416 | # Joystick and game controller axes. 417 | # Axes that are not mapped will be assigned generic axis numbers by the input subsystem. 418 | axis 0x00 X 419 | axis 0x01 Y 420 | axis 0x02 Z 421 | axis 0x03 RX 422 | axis 0x04 RY 423 | axis 0x05 RZ 424 | axis 0x06 THROTTLE 425 | axis 0x07 RUDDER 426 | axis 0x08 WHEEL 427 | axis 0x09 GAS 428 | axis 0x0a BRAKE 429 | axis 0x10 HAT_X 430 | axis 0x11 HAT_Y 431 | 432 | # LEDs 433 | led 0x00 NUM_LOCK 434 | led 0x01 CAPS_LOCK 435 | led 0x02 SCROLL_LOCK 436 | led 0x03 COMPOSE 437 | led 0x04 KANA 438 | led 0x05 SLEEP 439 | led 0x06 SUSPEND 440 | led 0x07 MUTE 441 | led 0x08 MISC 442 | led 0x09 MAIL 443 | led 0x0a CHARGING 444 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | Read it first : https://github.com/android-rpi/local_manifests/tree/android10 2 | 3 | # Build Kernel 4 | $ sudo apt install gcc-arm-linux-gnueabihf libssl-dev 5 | $ cd kernel/rpi 6 | $ ARCH=arm scripts/kconfig/merge_config.sh arch/arm/configs/bcm2709_defconfig kernel/configs/android-base.config kernel/configs/android-recommended.config 7 | $ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make zImage 8 | $ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make dtbs 9 | 10 | # Install python mako module 11 | $ sudo apt install python-mako 12 | 13 | # Build Android source 14 | Continue build with http://source.android.com/source/building.html 15 | $ source build/envsetup.sh 16 | $ lunch rpi3-eng 17 | $ make ramdisk systemimage vendorimage 18 | 19 | # Prepare sd card 20 | Partitions of the card should be set-up like followings. 21 | p1 256MB for BOOT : Do fdisk : W95 FAT32(LBA) & Bootable, mkfs.vfat 22 | p2 640MB for /system : Do fdisk, new primary partition 23 | p3 128MB for /vendor : Do fdisk, new primary partition 24 | p4 remainings for /data : Do fdisk, mkfs.ext4 25 | Set volume label for /data partition as userdata 26 | : use -L option of mkfs.ext4, e2label command, or -n option of mkfs.vfat 27 | 28 | # Write system & vendor partition 29 | $ cd out/target/product/rpi3 30 | $ sudo dd if=system.img of=/dev/ bs=1M 31 | $ sudo dd if=vendor.img of=/dev/ bs=1M 32 | 33 | # Copy kernel & ramdisk to BOOT partition 34 | device/brcm/rpi3/boot/* to p1:/ 35 | kernel/rpi/arch/arm/boot/zImage to p1:/ 36 | kernel/rpi/arch/arm/boot/dts/bcm2710-rpi-3-b.dtb to p1:/ 37 | kernel/rpi/arch/arm/boot/dts/overlays/vc4-kms-v3d.dtbo to p1:/overlays/vc4-kms-v3d.dtbo 38 | out/target/product/rpi3/ramdisk.img to p1:/ 39 | 40 | # HDMI_MODE : If DVI monitor does not work, try followings for p1:/config.txt 41 | hdmi_group=2 42 | hdmi_mode=85 43 | -------------------------------------------------------------------------------- /audio_policy_configuration.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Speaker 7 | 8 | Speaker 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /bluetooth/bdroid_buildcfg.h: -------------------------------------------------------------------------------- 1 | #ifndef _BDROID_BUILDCFG_H 2 | #define _BDROID_BUILDCFG_H 3 | 4 | #define BTM_DEF_LOCAL_NAME "RPI3" 5 | 6 | #define BTA_DM_COD {0x1A, 0x01, 0x20} 7 | 8 | #define KERNEL_MISSING_CLOCK_BOOTTIME_ALARM TRUE 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /bluetooth/bt_vendor.conf: -------------------------------------------------------------------------------- 1 | # UART device port where Bluetooth controller is attached 2 | UartPort = /dev/ttyAMA0 3 | # Firmware patch file location 4 | FwPatchFilePath = /lib/firmware/brcm 5 | # Firmware Name 6 | FwPatchFileName = BCM43430A1.hcd 7 | -------------------------------------------------------------------------------- /bluetooth/vnd_rpi3.txt: -------------------------------------------------------------------------------- 1 | BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyAMA0" 2 | FW_PATCHFILE_LOCATION = "/lib/firmware/" 3 | BT_WAKE_VIA_PROC = FALSE 4 | BT_WAKE_VIA_USERIAL_IOCTL = FALSE 5 | LPM_IDLE_TIMEOUT_MULTIPLE = 5 6 | SCO_CFG_INCLUDED = FALSE 7 | SCO_PCM_IF_CLOCK_RATE = 2 8 | BTVND_DBG = FALSE 9 | BTHW_DBG = FALSE 10 | VNDUSERIAL_DBG = FALSE 11 | UPIO_DBG = FALSE 12 | UART_TARGET_BAUD_RATE = 921600 13 | USE_CONTROLLER_BDADDR = FALSE 14 | -------------------------------------------------------------------------------- /boot/bootcode.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android-rpi/device_brcm_rpi3/7d5a22757b9df7650d0a41a8d0aea4e515075990/boot/bootcode.bin -------------------------------------------------------------------------------- /boot/cmdline.txt: -------------------------------------------------------------------------------- 1 | initrd=0x01f00000 dwc_otg.lpm_enable=0 console=serial0,115200 no_console_suspend root=/dev/ram0 elevator=deadline rootwait androidboot.hardware=rpi3 androidboot.selinux=permissive 2 | -------------------------------------------------------------------------------- /boot/config.txt: -------------------------------------------------------------------------------- 1 | hdmi_force_hotplug=1 2 | hdmi_drive=2 3 | config_hdmi_boost=4 4 | hdmi_group=1 5 | hdmi_mode=4 6 | disable_overscan=1 7 | framebuffer_width=1280 8 | framebuffer_height=720 9 | kernel=zImage 10 | device_tree=bcm2710-rpi-3-b.dtb 11 | dtparam=audio=on 12 | dtoverlay=vc4-kms-v3d,cma-256 13 | initramfs ramdisk.img 0x01f00000 14 | mask_gpu_interrupt0=0x400 15 | avoid_warnings=2 16 | enable_uart=1 17 | -------------------------------------------------------------------------------- /boot/fixup.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android-rpi/device_brcm_rpi3/7d5a22757b9df7650d0a41a8d0aea4e515075990/boot/fixup.dat -------------------------------------------------------------------------------- /boot/start.elf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android-rpi/device_brcm_rpi3/7d5a22757b9df7650d0a41a8d0aea4e515075990/boot/start.elf -------------------------------------------------------------------------------- /firmware/brcm/BCM43430A1.hcd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android-rpi/device_brcm_rpi3/7d5a22757b9df7650d0a41a8d0aea4e515075990/firmware/brcm/BCM43430A1.hcd -------------------------------------------------------------------------------- /firmware/brcm/brcmfmac43430-sdio.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android-rpi/device_brcm_rpi3/7d5a22757b9df7650d0a41a8d0aea4e515075990/firmware/brcm/brcmfmac43430-sdio.bin -------------------------------------------------------------------------------- /firmware/brcm/brcmfmac43430-sdio.txt: -------------------------------------------------------------------------------- 1 | # NVRAM file for BCM943430WLPTH 2 | # 2.4 GHz, 20 MHz BW mode 3 | 4 | # The following parameter values are just placeholders, need to be updated. 5 | manfid=0x2d0 6 | prodid=0x0727 7 | vendid=0x14e4 8 | devid=0x43e2 9 | boardtype=0x0727 10 | boardrev=0x1101 11 | boardnum=22 12 | macaddr=00:90:4c:c5:12:38 13 | sromrev=11 14 | boardflags=0x00404201 15 | boardflags3=0x08000000 16 | xtalfreq=37400 17 | nocrc=1 18 | ag0=255 19 | aa2g=1 20 | ccode=ALL 21 | 22 | pa0itssit=0x20 23 | extpagain2g=0 24 | #PA parameters for 2.4GHz, measured at CHIP OUTPUT 25 | pa2ga0=-168,7161,-820 26 | AvVmid_c0=0x0,0xc8 27 | cckpwroffset0=5 28 | 29 | # PPR params 30 | maxp2ga0=84 31 | txpwrbckof=6 32 | cckbw202gpo=0 33 | legofdmbw202gpo=0x66111111 34 | mcsbw202gpo=0x77711111 35 | propbw202gpo=0xdd 36 | 37 | # OFDM IIR : 38 | ofdmdigfilttype=18 39 | ofdmdigfilttypebe=18 40 | # PAPD mode: 41 | papdmode=1 42 | papdvalidtest=1 43 | pacalidx2g=42 44 | papdepsoffset=-22 45 | papdendidx=58 46 | 47 | # LTECX flags 48 | ltecxmux=0 49 | ltecxpadnum=0x0102 50 | ltecxfnsel=0x44 51 | ltecxgcigpio=0x01 52 | 53 | il0macaddr=00:90:4c:c5:12:38 54 | wl0id=0x431b 55 | 56 | deadman_to=0xffffffff 57 | # muxenab: 0x1 for UART enable, 0x2 for GPIOs, 0x8 for JTAG 58 | muxenab=0x1 59 | # CLDO PWM voltage settings - 0x4 - 1.1 volt 60 | #cldo_pwm=0x4 61 | 62 | #VCO freq 326.4MHz 63 | spurconfig=0x3 64 | 65 | edonthd20l=-75 66 | edoffthd20ul=-80 67 | -------------------------------------------------------------------------------- /firmware/brcm/brcmfmac43455-sdio.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/android-rpi/device_brcm_rpi3/7d5a22757b9df7650d0a41a8d0aea4e515075990/firmware/brcm/brcmfmac43455-sdio.bin -------------------------------------------------------------------------------- /firmware/brcm/brcmfmac43455-sdio.txt: -------------------------------------------------------------------------------- 1 | # Cloned from bcm94345wlpagb_p2xx.txt 2 | NVRAMRev=$Rev: 498373 $ 3 | sromrev=11 4 | vendid=0x14e4 5 | devid=0x43ab 6 | manfid=0x2d0 7 | prodid=0x06e4 8 | #macaddr=00:90:4c:c5:12:38 9 | macaddr=b8:27:eb:74:f2:6c 10 | nocrc=1 11 | boardtype=0x6e4 12 | boardrev=0x1304 13 | 14 | #XTAL 37.4MHz 15 | xtalfreq=37400 16 | 17 | btc_mode=1 18 | #------------------------------------------------------ 19 | #boardflags: 5GHz eTR switch by default 20 | # 2.4GHz eTR switch by default 21 | # bit1 for btcoex 22 | boardflags=0x00480201 23 | boardflags2=0x40800000 24 | boardflags3=0x48200100 25 | phycal_tempdelta=15 26 | rxchain=1 27 | txchain=1 28 | aa2g=1 29 | aa5g=1 30 | tssipos5g=1 31 | tssipos2g=1 32 | femctrl=0 33 | AvVmid_c0=1,165,2,100,2,100,2,100,2,100 34 | pa2ga0=-129,6525,-718 35 | pa2ga1=-149,4408,-601 36 | pa5ga0=-185,6836,-815,-186,6838,-815,-184,6859,-815,-184,6882,-818 37 | pa5ga1=-202,4285,-574,-201,4312,-578,-196,4391,-586,-201,4294,-575 38 | itrsw=1 39 | pdoffsetcckma0=2 40 | pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0 41 | pdoffset2g40ma0=16 42 | pdoffset40ma0=0x8888 43 | pdoffset80ma0=0x8888 44 | extpagain5g=2 45 | extpagain2g=2 46 | tworangetssi2g=1 47 | tworangetssi5g=1 48 | # LTECX flags 49 | # WCI2 50 | ltecxmux=0 51 | ltecxpadnum=0x0504 52 | ltecxfnsel=0x22 53 | ltecxgcigpio=0x32 54 | 55 | maxp2ga0=80 56 | ofdmlrbw202gpo=0x0022 57 | dot11agofdmhrbw202gpo=0x4442 58 | mcsbw202gpo=0x98444422 59 | mcsbw402gpo=0x98444422 60 | maxp5ga0=82,82,82,82 61 | mcsbw205glpo=0xb9555000 62 | mcsbw205gmpo=0xb9555000 63 | mcsbw205ghpo=0xb9555000 64 | mcsbw405glpo=0xb9555000 65 | mcsbw405gmpo=0xb9555000 66 | mcsbw405ghpo=0xb9555000 67 | mcsbw805glpo=0xb9555000 68 | mcsbw805gmpo=0xb9555000 69 | mcsbw805ghpo=0xb9555000 70 | 71 | swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff 72 | swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe 73 | swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3 74 | swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3 75 | 76 | vcodivmode=1 77 | deadman_to=481500000 78 | 79 | ed_thresh2g=-54 80 | ed_thresh5g=-54 81 | eu_edthresh2g=-54 82 | eu_edthresh5g=-54 83 | ldo1=4 84 | rawtempsense=0x1ff 85 | cckPwrIdxCorr=3 86 | cckTssiDelay=150 87 | ofdmTssiDelay=150 88 | txpwr2gAdcScale=1 89 | txpwr5gAdcScale=1 90 | dot11b_opts=0x3aa85 91 | cbfilttype=1 92 | fdsslevel_ch11=6 93 | -------------------------------------------------------------------------------- /fstab.rpi3: -------------------------------------------------------------------------------- 1 | # 2 | 3 | /dev/block/mmcblk0p2 /system ext4 ro,barrier=1 wait,first_stage_mount 4 | /dev/block/mmcblk0p3 /vendor ext4 ro,barrier=1 wait,first_stage_mount 5 | /dev/block/mmcblk0p4 /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait 6 | 7 | /devices/platform/soc/*.usb/usb* auto auto defaults voldmanaged=usb:auto 8 | -------------------------------------------------------------------------------- /init.rpi3.rc: -------------------------------------------------------------------------------- 1 | 2 | on init 3 | # mount debugfs 4 | mount debugfs /sys/kernel/debug /sys/kernel/debug mode=755 5 | 6 | # Support legacy paths 7 | symlink /sdcard /mnt/sdcard 8 | symlink /sdcard /storage/sdcard0 9 | 10 | # KSM options 11 | write /sys/kernel/mm/ksm/pages_to_scan 100 12 | write /sys/kernel/mm/ksm/sleep_millisecs 500 13 | write /sys/kernel/mm/ksm/run 1 14 | 15 | on fs 16 | mount_all /vendor/etc/fstab.rpi3 17 | 18 | on post-fs-data 19 | # Bluetooth 20 | chmod 0660 /sys/class/rfkill/rfkill0/state 21 | chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state 22 | chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type 23 | 24 | # Set indication (checked by vold) that we have finished this action 25 | setprop vold.post_fs_data_done 1 26 | 27 | on zygote-start 28 | # Create the directories used by the Wireless subsystem 29 | mkdir /data/misc/wifi 0770 wifi wifi 30 | mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi 31 | mkdir /data/vendor/wifi 0771 wifi wifi 32 | mkdir /data/vendor/wifi/wpa 0770 wifi wifi 33 | mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi 34 | mkdir /data/misc/dhcp 0770 dhcp dhcp 35 | chown dhcp dhcp /data/misc/dhcp 36 | 37 | on boot 38 | setprop net.dns1 8.8.8.8 39 | setprop net.dns2 8.8.4.4 40 | 41 | # fake some battery state 42 | setprop status.battery.state Slow 43 | setprop status.battery.level 5 44 | setprop status.battery.level_raw 50 45 | setprop status.battery.level_scale 9 46 | 47 | setprop service.adb.tcp.port 5555 48 | start adbd 49 | 50 | service wpa_supplicant /vendor/bin/hw/wpa_supplicant \ 51 | -iwlan0 -Dnl80211 -c/vendor/etc/wifi/wpa_supplicant.conf \ 52 | -I/vendor/etc/wifi/wpa_supplicant_overlay.conf \ 53 | -O/data/vendor/wifi/wpa/sockets -g@android:wpa_wlan0 54 | interface android.hardware.wifi.supplicant@1.0::ISupplicant default 55 | class main 56 | socket wpa_wlan0 dgram 660 wifi wifi 57 | disabled 58 | oneshot 59 | -------------------------------------------------------------------------------- /init.usb.rc: -------------------------------------------------------------------------------- 1 | # 2 | # USB configuration 3 | # 4 | 5 | on post-fs-data 6 | mkdir /data/misc/adb 02750 system shell 7 | mkdir /data/adb 0700 root root 8 | 9 | service adbd /system/bin/adbd --root_seclabel=u:r:su:s0 10 | class core 11 | socket adbd stream 660 system system 12 | disabled 13 | seclabel u:r:adbd:s0 14 | -------------------------------------------------------------------------------- /manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | android.hardware.audio 4 | passthrough 5 | 2.0 6 | 7 | IDevicesFactory 8 | default 9 | 10 | @2.0::IDevicesFactory/default 11 | 12 | 13 | android.hardware.audio.effect 14 | passthrough 15 | 2.0 16 | 17 | IEffectsFactory 18 | default 19 | 20 | @2.0::IEffectsFactory/default 21 | 22 | 23 | android.hardware.configstore 24 | hwbinder 25 | 1.0 26 | 27 | ISurfaceFlingerConfigs 28 | default 29 | 30 | 31 | 32 | android.hardware.graphics.allocator 33 | hwbinder 34 | 35 | 2.0 36 | 37 | IAllocator 38 | default 39 | 40 | 41 | 42 | android.hardware.graphics.mapper 43 | passthrough 44 | 45 | 2.0 46 | 47 | IMapper 48 | default 49 | 50 | 51 | 52 | android.hardware.graphics.composer 53 | passthrough 54 | 2.1 55 | 56 | IComposer 57 | default 58 | 59 | 60 | 61 | android.hardware.memtrack 62 | hwbinder 63 | 1.0 64 | 65 | IMemtrack 66 | default 67 | 68 | 69 | 70 | android.hardware.media.omx 71 | hwbinder 72 | 1.0 73 | 74 | IOmx 75 | default 76 | 77 | 78 | IOmxStore 79 | default 80 | 81 | 82 | 83 | android.hardware.wifi 84 | hwbinder 85 | 1.0 86 | 87 | IWifi 88 | default 89 | 90 | 91 | 92 | android.hardware.wifi.supplicant 93 | hwbinder 94 | 1.0 95 | 96 | ISupplicant 97 | default 98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /overlay/frameworks/base/core/res/res/values-television/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 22 | 23 | 24 | 25 | true 26 | 27 | -------------------------------------------------------------------------------- /overlay/frameworks/base/core/res/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | false 8 | 9 | 10 | false 11 | 12 | 13 | false 14 | 15 | 16 | false 17 | 18 | 24 | 4 25 | 26 | 33 | 0 34 | 35 | 36 | true 37 | 38 | 40 | 43 | 44 | 45 | "wifi,1,1,1,-1,true" 46 | "ethernet,9,9,9,-1,true" 47 | 48 | 49 | 51 | 52 | "1,1" 53 | "9,1" 54 | 55 | 56 | 57 | ;com.android.tv.settings; 58 | 59 | 63 | 64 | com.android.location.fused 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | false 21 | 22 | 23 | true 24 | 25 | 26 | true 27 | true 28 | 29 | 30 | true 31 | 32 | 33 | 0 34 | 35 | false 36 | 37 | 38 | -------------------------------------------------------------------------------- /overlay/frameworks/base/packages/SystemUI/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | com.android.systemui.statusbar.tv.TvStatusBar 21 | 22 | 23 | false 24 | 25 | 26 | -------------------------------------------------------------------------------- /rpi3.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2020 Android-RPi Project 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | USE_OEM_TV_APP := true 18 | $(call inherit-product, device/google/atv/products/atv_base.mk) 19 | 20 | PRODUCT_NAME := rpi3 21 | PRODUCT_DEVICE := rpi3 22 | PRODUCT_BRAND := arpi 23 | PRODUCT_MODEL := Raspberry Pi 3 24 | PRODUCT_MANUFACTURER := ARPI 25 | 26 | include frameworks/native/build/tablet-7in-hdpi-1024-dalvik-heap.mk 27 | 28 | PRODUCT_PROPERTY_OVERRIDES += \ 29 | debug.drm.mode.force=1280x720 \ 30 | gralloc.drm.device=/dev/dri/card0 \ 31 | ro.opengles.version=131072 \ 32 | ro.config.low_ram=true \ 33 | wifi.interface=wlan0 34 | 35 | # application packages 36 | PRODUCT_PACKAGES += \ 37 | RpLauncher 38 | 39 | # system packages 40 | PRODUCT_PACKAGES += \ 41 | libGLES_mesa \ 42 | gralloc.rpi3 \ 43 | memtrack.rpi3 \ 44 | audio.primary.rpi3 \ 45 | audio.usb.default \ 46 | wificond \ 47 | wifilogd \ 48 | wpa_supplicant \ 49 | wpa_supplicant.conf \ 50 | wpa_cli 51 | 52 | # hardware/interfaces 53 | PRODUCT_PACKAGES += \ 54 | android.hardware.graphics.allocator@2.0-service.rpi3 \ 55 | android.hardware.graphics.mapper@2.0-impl.rpi3 \ 56 | android.hardware.graphics.composer@2.1-impl.rpi3 \ 57 | android.hardware.audio@2.0-impl \ 58 | android.hardware.audio.effect@2.0-impl \ 59 | android.hardware.keymaster@3.0-impl \ 60 | android.hardware.memtrack@1.0-service \ 61 | android.hardware.memtrack@1.0-impl \ 62 | android.hardware.wifi@1.0-service 63 | 64 | # system configurations 65 | PRODUCT_COPY_FILES := \ 66 | hardware/broadcom/wlan/bcmdhd/config/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \ 67 | frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml \ 68 | frameworks/native/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb.host.xml \ 69 | frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \ 70 | $(LOCAL_PATH)/rpi3_core_hardware.xml:system/etc/permissions/rpi3_core_hardware.xml \ 71 | $(LOCAL_PATH)/init.usb.rc:root/init.usb.rc \ 72 | $(LOCAL_PATH)/init.rpi3.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.rpi3.rc \ 73 | $(LOCAL_PATH)/ueventd.rpi3.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \ 74 | $(LOCAL_PATH)/fstab.rpi3:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.rpi3 \ 75 | $(LOCAL_PATH)/fstab.rpi3:$(TARGET_COPY_OUT_RAMDISK)/fstab.rpi3 \ 76 | $(LOCAL_PATH)/Generic.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/Generic.kl \ 77 | $(LOCAL_PATH)/firmware/brcm/brcmfmac43430-sdio.bin:root/lib/firmware/brcm/brcmfmac43430-sdio.bin \ 78 | $(LOCAL_PATH)/firmware/brcm/brcmfmac43430-sdio.txt:root/lib/firmware/brcm/brcmfmac43430-sdio.txt \ 79 | $(LOCAL_PATH)/firmware/brcm/brcmfmac43455-sdio.bin:root/lib/firmware/brcm/brcmfmac43455-sdio.bin \ 80 | $(LOCAL_PATH)/firmware/brcm/brcmfmac43455-sdio.txt:root/lib/firmware/brcm/brcmfmac43455-sdio.txt \ 81 | $(PRODUCT_COPY_FILES) 82 | 83 | # media configurations 84 | PRODUCT_COPY_FILES := \ 85 | device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \ 86 | device/generic/goldfish/camera/media_codecs.xml:system/etc/media_codecs.xml \ 87 | frameworks/av/media/libeffects/data/audio_effects.conf:system/etc/audio_effects.conf \ 88 | frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \ 89 | frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \ 90 | frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \ 91 | frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:system/etc/usb_audio_policy_configuration.xml \ 92 | frameworks/av/services/audiopolicy/config/default_volume_tables.xml:system/etc/default_volume_tables.xml \ 93 | frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:system/etc/audio_policy_volumes.xml \ 94 | $(LOCAL_PATH)/audio_policy_configuration.xml:system/etc/audio_policy_configuration.xml \ 95 | frameworks/base/data/sounds/effects/ogg/Effect_Tick_48k.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/ui/Effect_Tick.ogg \ 96 | $(PRODUCT_COPY_FILES) 97 | 98 | DEVICE_PACKAGE_OVERLAYS := device/brcm/rpi3/overlay 99 | PRODUCT_AAPT_PREF_CONFIG := tvdpi 100 | PRODUCT_CHARACTERISTICS := tv 101 | PRODUCT_LOCALES := en_US,ko_KR,ja_JP,zh_CN,hi_IN,en_GB,de_DE,fr_FR,it_IT,ru_RU,es_ES,pt_PT,nl_BE,nl_NL 102 | -------------------------------------------------------------------------------- /rpi3_core_hardware.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /sepolicy/bluetooth.te: -------------------------------------------------------------------------------- 1 | allow bluetooth rfkill_device:chr_file rw_file_perms; 2 | -------------------------------------------------------------------------------- /sepolicy/bootanim.te: -------------------------------------------------------------------------------- 1 | allow bootanim dri_device:chr_file rw_file_perms; 2 | -------------------------------------------------------------------------------- /sepolicy/device.te: -------------------------------------------------------------------------------- 1 | type dri_device, dev_type, mlstrustedobject; 2 | type rfkill_device, dev_type, mlstrustedobject; 3 | -------------------------------------------------------------------------------- /sepolicy/file_contexts: -------------------------------------------------------------------------------- 1 | /dev/dri/card[0-9]+ u:object_r:dri_device:s0 2 | /dev/dri/renderD128 u:object_r:dri_device:s0 3 | /dev/rfkill u:object_r:rfkill_device:s0 4 | /dev/ttyAMA0 u:object_r:hci_attach_dev:s0 5 | 6 | /sys/class/rfkill/rfkill0/state u:object_r:sysfs_bluetooth_writable:s0 7 | 8 | /(vendor|system/vendor)/bin/hw/android\.hardware\.graphics\.allocator@2\.0-service\.rpi3 u:object_r:hal_graphics_allocator_default_exec:s0 9 | /(vendor|system/vendor)/lib/hw/android\.hardware\.graphics\.mapper@2\.0-impl\.rpi3\.so u:object_r:same_process_hal_file:s0 10 | /(vendor|system/vendor)/lib/hw/android\.hardware\.graphics\.composer@2\.1-impl\.rpi3\.so u:object_r:same_process_hal_file:s0 11 | -------------------------------------------------------------------------------- /sepolicy/hal_graphics_allocator.te: -------------------------------------------------------------------------------- 1 | allow hal_graphics_allocator dri_device:chr_file rw_file_perms; 2 | -------------------------------------------------------------------------------- /sepolicy/init.te: -------------------------------------------------------------------------------- 1 | allow init kernel:system module_request; 2 | allow init tmpfs:lnk_file create; 3 | -------------------------------------------------------------------------------- /sepolicy/kernel.te: -------------------------------------------------------------------------------- 1 | allow kernel self:capability mknod; 2 | allow kernel self:system module_request; 3 | allow kernel device:blk_file { create setattr getattr unlink }; 4 | allow kernel device:dir { create write add_name remove_name rmdir }; 5 | allow kernel device:chr_file { create setattr getattr unlink }; 6 | -------------------------------------------------------------------------------- /sepolicy/mediaserver.te: -------------------------------------------------------------------------------- 1 | allow mediaserver dri_device:chr_file rw_file_perms; 2 | -------------------------------------------------------------------------------- /sepolicy/netd.te: -------------------------------------------------------------------------------- 1 | dontaudit netd self:capability sys_module; 2 | allow netd kernel:system module_request; 3 | -------------------------------------------------------------------------------- /sepolicy/platform_app.te: -------------------------------------------------------------------------------- 1 | allow platform_app dri_device:chr_file rw_file_perms; 2 | -------------------------------------------------------------------------------- /sepolicy/priv_app.te: -------------------------------------------------------------------------------- 1 | allow priv_app dri_device:chr_file rw_file_perms; 2 | -------------------------------------------------------------------------------- /sepolicy/surfaceflinger.te: -------------------------------------------------------------------------------- 1 | allow surfaceflinger dri_device:chr_file rw_file_perms; 2 | -------------------------------------------------------------------------------- /sepolicy/system_app.te: -------------------------------------------------------------------------------- 1 | allow system_app dri_device:chr_file rw_file_perms; 2 | -------------------------------------------------------------------------------- /sepolicy/system_server.te: -------------------------------------------------------------------------------- 1 | allow system_server dri_device:chr_file rw_file_perms; 2 | allow system_server self:capability sys_module; 3 | -------------------------------------------------------------------------------- /sepolicy/untrusted_app.te: -------------------------------------------------------------------------------- 1 | allow untrusted_app dri_device:chr_file rw_file_perms; 2 | -------------------------------------------------------------------------------- /ueventd.rpi3.rc: -------------------------------------------------------------------------------- 1 | /dev/ttyAMA0 0660 bluetooth bluetooth 2 | /dev/rfkill 0660 bluetooth bluetooth 3 | /dev/ion 0664 system system 4 | --------------------------------------------------------------------------------