convert to rpi4

pull/1/head
Peter Yoon 2020-04-18 20:43:02 +09:00
parent 812866a8c0
commit 1b05f77ffb
25 changed files with 287 additions and 62 deletions

View File

@ -1,3 +1,3 @@
PRODUCT_MAKEFILES := $(LOCAL_DIR)/rpi3.mk
PRODUCT_MAKEFILES := $(LOCAL_DIR)/rpi4.mk
COMMON_LUNCH_CHOICES := rpi3-eng
COMMON_LUNCH_CHOICES := rpi4-eng

View File

@ -4,11 +4,13 @@ TARGET_NO_RECOVERY := true
TARGET_ARCH := arm
TARGET_ARCH_VARIANT := armv7-a-neon
TARGET_CPU_VARIANT := cortex-a7
TARGET_CPU_VARIANT := cortex-a72
TARGET_CPU_ABI := armeabi-v7a
TARGET_CPU_ABI2 := armeabi
TARGET_BOARD_PLATFORM := bcm2710
TARGET_USES_64_BIT_BINDER := true
TARGET_BOARD_PLATFORM := bcm2711
TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
TARGET_USERIMAGES_USE_EXT4 := true
@ -26,7 +28,7 @@ MALLOC_SVELTE := true
USE_XML_AUDIO_POLICY_CONF := 1
BOARD_GPU_DRIVERS := vc4
BOARD_GPU_DRIVERS := v3d
BOARD_USES_DRM_GRALLOC := true
USE_OPENGL_RENDERER := true
TARGET_USES_HWC2 := true
@ -42,6 +44,6 @@ BOARD_WPA_SUPPLICANT_DRIVER := NL80211
USE_CAMERA_STUB := true
BOARD_SEPOLICY_DIRS := \
device/brcm/rpi3/sepolicy
device/arpi/rpi4/sepolicy
DEVICE_MANIFEST_FILE := device/brcm/rpi3/manifest.xml
DEVICE_MANIFEST_FILE := device/arpi/rpi4/manifest.xml

32
README
View File

@ -1,9 +1,9 @@
Read it first : https://github.com/android-rpi/local_manifests/tree/android10
Read it first : https://github.com/android-rpi/local_manifests
# Build Kernel
$ sudo apt install gcc-arm-linux-gnueabihf libssl-dev
$ cd kernel/rpi
$ ARCH=arm scripts/kconfig/merge_config.sh arch/arm/configs/bcm2709_defconfig kernel/configs/android-base.config kernel/configs/android-recommended.config
$ cd kernel/arpi
$ ARCH=arm scripts/kconfig/merge_config.sh arch/arm/configs/bcm2711_defconfig kernel/configs/android-base.config kernel/configs/android-recommended.config
$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make zImage
$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make dtbs
@ -11,32 +11,30 @@ Read it first : https://github.com/android-rpi/local_manifests/tree/android10
$ sudo apt install python-mako
# Build Android source
Continue build with http://source.android.com/source/building.html
Continue build referring to http://source.android.com/source/building.html
$ source build/envsetup.sh
$ lunch rpi3-eng
$ 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 256MB for BOOT : Do fdisk : W95 FAT32(LBA) & Bootable, mkfs.vfat
p2 640MB 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 for /data partition as userdata
: use -L option of mkfs.ext4, e2label command, or -n option of mkfs.vfat
Set volume label of /data partition as userdata
: use -L option for mkfs.ext4, and -n option for mkfs.vfat
# Write system & vendor partition
$ cd out/target/product/rpi3
$ 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 kernel & ramdisk to BOOT partition
device/brcm/rpi3/boot/* to p1:/
kernel/rpi/arch/arm/boot/zImage to p1:/
kernel/rpi/arch/arm/boot/dts/bcm2710-rpi-3-b.dtb to p1:/
kernel/rpi/arch/arm/boot/dts/overlays/vc4-kms-v3d.dtbo to p1:/overlays/vc4-kms-v3d.dtbo
out/target/product/rpi3/ramdisk.img to p1:/
# HDMI_MODE : If DVI monitor does not work, try followings for p1:/config.txt
hdmi_group=2
hdmi_mode=85
device/arpi/rpi4/boot/* to p1:/
kernel/arpi/arch/arm/boot/zImage to p1:/
kernel/arpi/arch/arm/boot/dts/bcm2711-rpi-4-b.dtb to p1:/
kernel/arpi/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4.dtbo to p1:/overlays/vc4-kms-v3d-pi4.dtbo
out/target/product/rpi4/ramdisk.img to p1:/

View File

@ -1,7 +1,7 @@
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#define BTM_DEF_LOCAL_NAME "RPI3"
#define BTM_DEF_LOCAL_NAME "RPI4"
#define BTA_DM_COD {0x1A, 0x01, 0x20}

Binary file not shown.

View File

@ -1 +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
initrd=0x01f00000 console=serial0,115200 no_console_suspend root=/dev/ram0 elevator=deadline rootwait androidboot.hardware=rpi4 androidboot.selinux=permissive

View File

@ -1,16 +1,5 @@
hdmi_force_hotplug=1
hdmi_drive=2
config_hdmi_boost=4
hdmi_group=1
hdmi_mode=4
disable_overscan=1
framebuffer_width=1280
framebuffer_height=720
kernel=zImage
device_tree=bcm2710-rpi-3-b.dtb
dtparam=audio=on
dtoverlay=vc4-kms-v3d,cma-256
device_tree=bcm2711-rpi-4-b.dtb
dtoverlay=vc4-kms-v3d-pi4
initramfs ramdisk.img 0x01f00000
mask_gpu_interrupt0=0x400
avoid_warnings=2
enable_uart=1

Binary file not shown.

BIN
boot/fixup4.dat 100644

Binary file not shown.

Binary file not shown.

View File

@ -13,7 +13,7 @@ on init
write /sys/kernel/mm/ksm/run 1
on fs
mount_all /vendor/etc/fstab.rpi3
mount_all /vendor/etc/fstab.rpi4
on post-fs-data
# Bluetooth

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2014, 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.
*/
-->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:zAdjustment="normal"
android:interpolator="@android:interpolator/decelerate_quad"
android:fromAlpha="1.0"
android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2014, 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.
*/
-->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:zAdjustment="top"
android:interpolator="@android:interpolator/decelerate_quad"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2014, 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.
*/
-->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:zAdjustment="normal"
android:interpolator="@android:interpolator/accelerate_quad"
android:fromAlpha="1.0"
android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2014, 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.
*/
-->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:zAdjustment="top"
android:interpolator="@android:interpolator/accelerate_quad"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="@android:integer/config_mediumAnimTime" />

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*\
** Copyright 2009, 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.
*/
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@interpolator/decelerate_quad">
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2009, 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.
*/
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@interpolator/accelerate_quad">
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 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.
-->
<resources>
<!-- Height of the status bar -->
<dimen name="status_bar_height_portrait">0dp</dimen>
<!-- Height of the bottom navigation / system bar -->
<dimen name="navigation_bar_height">0dp</dimen>
<!-- Height of the bottom navigation bar in landscape -->
<dimen name="navigation_bar_height_landscape">0dp</dimen>
<!-- Width of the navigation bar when it is placed vertically on the screen -->
<dimen name="navigation_bar_width">42dp</dimen>
<!-- This overlay makes sure that notification icons are large enough to be used as Recommendation images -->
<dimen name="notification_right_icon_size">320dp</dimen>
</resources>

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2006 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.
-->
<resources>
<!-- Standard animations for wallpapers. -->
<style name="Animation.Wallpaper">
<item name="windowEnterAnimation">@anim/atv_wallpaper_enter</item>
<item name="windowExitAnimation">@anim/atv_wallpaper_exit</item>
</style>
<!-- Standard animations for a full-screen window or activity. -->
<style name="Animation.Activity">
<item name="activityOpenEnterAnimation">@anim/atv_fade_in_top</item>
<item name="activityOpenExitAnimation">@anim/atv_fade_in_bottom</item>
<item name="activityCloseEnterAnimation">@anim/atv_fade_out_bottom</item>
<item name="activityCloseExitAnimation">@anim/atv_fade_out_top</item>
<item name="taskOpenEnterAnimation">@anim/atv_fade_in_top</item>
<item name="taskOpenExitAnimation">@anim/atv_fade_in_bottom</item>
<item name="taskCloseEnterAnimation">@anim/atv_fade_out_bottom</item>
<item name="taskCloseExitAnimation">@anim/atv_fade_out_top</item>
<item name="taskToFrontEnterAnimation">@anim/atv_fade_in_top</item>
<item name="taskToFrontExitAnimation">@anim/atv_fade_in_bottom</item>
<item name="taskToBackEnterAnimation">@anim/atv_fade_out_bottom</item>
<item name="taskToBackExitAnimation">@anim/atv_fade_out_top</item>
<item name="wallpaperOpenEnterAnimation">@anim/atv_fade_out_bottom</item>
<item name="wallpaperOpenExitAnimation">@anim/atv_fade_out_top</item>
<item name="wallpaperCloseEnterAnimation">@anim/atv_fade_in_top</item>
<item name="wallpaperCloseExitAnimation">@anim/atv_fade_in_bottom</item>
<item name="wallpaperIntraOpenEnterAnimation">@anim/atv_fade_in_top</item>
<item name="wallpaperIntraOpenExitAnimation">@anim/atv_fade_in_bottom</item>
<item name="wallpaperIntraCloseEnterAnimation">@anim/atv_fade_out_bottom</item>
<item name="wallpaperIntraCloseExitAnimation">@anim/atv_fade_out_top</item>
</style>
</resources>

View File

@ -1,19 +1,19 @@
USE_OEM_TV_APP := true
$(call inherit-product, device/google/atv/products/atv_base.mk)
PRODUCT_NAME := rpi3
PRODUCT_DEVICE := rpi3
PRODUCT_NAME := rpi4
PRODUCT_DEVICE := rpi4
PRODUCT_BRAND := arpi
PRODUCT_MODEL := Raspberry Pi 3
PRODUCT_MANUFACTURER := ARPI
PRODUCT_MANUFACTURER := ARPi
PRODUCT_MODEL := Raspberry Pi 4
include frameworks/native/build/tablet-7in-hdpi-1024-dalvik-heap.mk
PRODUCT_PROPERTY_OVERRIDES += \
debug.drm.mode.force=1280x720 \
gralloc.drm.device=/dev/dri/card0 \
ro.opengles.version=131072 \
ro.config.low_ram=true \
gralloc.drm.kms=/dev/dri/card0 \
gralloc.drm.device=/dev/dri/card1 \
ro.opengles.version=196609 \
wifi.interface=wlan0
# application packages
@ -23,9 +23,9 @@ PRODUCT_PACKAGES += \
# system packages
PRODUCT_PACKAGES += \
libGLES_mesa \
gralloc.rpi3 \
memtrack.rpi3 \
audio.primary.rpi3 \
gralloc.rpi4 \
memtrack.rpi4 \
audio.primary.rpi4 \
audio.usb.default \
wificond \
wifilogd \
@ -34,9 +34,9 @@ PRODUCT_PACKAGES += \
# hardware/interfaces
PRODUCT_PACKAGES += \
android.hardware.graphics.allocator@2.0-service.rpi3 \
android.hardware.graphics.mapper@2.0-impl.rpi3 \
android.hardware.graphics.composer@2.1-impl.rpi3 \
android.hardware.graphics.allocator@2.0-service.rpi4 \
android.hardware.graphics.mapper@2.0-impl.rpi4 \
android.hardware.graphics.composer@2.1-impl.rpi4 \
android.hardware.audio@2.0-impl \
android.hardware.audio.effect@2.0-impl \
android.hardware.keymaster@3.0-impl \
@ -50,12 +50,12 @@ PRODUCT_COPY_FILES := \
frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml \
frameworks/native/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb.host.xml \
frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \
$(LOCAL_PATH)/rpi3_core_hardware.xml:system/etc/permissions/rpi3_core_hardware.xml \
$(LOCAL_PATH)/rpi4_core_hardware.xml:system/etc/permissions/rpi4_core_hardware.xml \
$(LOCAL_PATH)/init.usb.rc:root/init.usb.rc \
$(LOCAL_PATH)/init.rpi3.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.rpi3.rc \
$(LOCAL_PATH)/ueventd.rpi3.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \
$(LOCAL_PATH)/fstab.rpi3:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.rpi3 \
$(LOCAL_PATH)/fstab.rpi3:$(TARGET_COPY_OUT_RAMDISK)/fstab.rpi3 \
$(LOCAL_PATH)/init.rpi4.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.rpi4.rc \
$(LOCAL_PATH)/ueventd.rpi4.rc:$(TARGET_COPY_OUT_VENDOR)/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/brcmfmac43430-sdio.bin:root/lib/firmware/brcm/brcmfmac43430-sdio.bin \
$(LOCAL_PATH)/firmware/brcm/brcmfmac43430-sdio.txt:root/lib/firmware/brcm/brcmfmac43430-sdio.txt \
@ -78,7 +78,7 @@ PRODUCT_COPY_FILES := \
frameworks/base/data/sounds/effects/ogg/Effect_Tick_48k.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/ui/Effect_Tick.ogg \
$(PRODUCT_COPY_FILES)
DEVICE_PACKAGE_OVERLAYS := device/brcm/rpi3/overlay
DEVICE_PACKAGE_OVERLAYS := device/arpi/rpi4/overlay
PRODUCT_AAPT_PREF_CONFIG := tvdpi
PRODUCT_CHARACTERISTICS := tv
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

View File

@ -5,6 +5,6 @@
/sys/class/rfkill/rfkill0/state u:object_r:sysfs_bluetooth_writable:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.graphics\.allocator@2\.0-service\.rpi3 u:object_r:hal_graphics_allocator_default_exec:s0
/(vendor|system/vendor)/lib/hw/android\.hardware\.graphics\.mapper@2\.0-impl\.rpi3\.so u:object_r:same_process_hal_file:s0
/(vendor|system/vendor)/lib/hw/android\.hardware\.graphics\.composer@2\.1-impl\.rpi3\.so u:object_r:same_process_hal_file:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.graphics\.allocator@2\.0-service\.rpi4 u:object_r:hal_graphics_allocator_default_exec:s0
/(vendor|system/vendor)/lib/hw/android\.hardware\.graphics\.mapper@2\.0-impl\.rpi4\.so u:object_r:same_process_hal_file:s0
/(vendor|system/vendor)/lib/hw/android\.hardware\.graphics\.composer@2\.1-impl\.rpi4\.so u:object_r:same_process_hal_file:s0