initial Raspberry Vanilla AOSP 12 commit

* Audio
  - Based on AOSP hikey audio HAL:
    https://android.googlesource.com/device/linaro/hikey/+/refs/heads/master/audio/
  - ALSA based on Android-x86
  - ALSA loop is used to support HDMI audio on Pi 4 because VC4 HDMI
    audio devices use SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE that is not
    supported on Android
    https://github.com/raspberrypi/linux/issues/4651
    https://github.com/raspberrypi/linux/issues/4654

* Bluetooth
  - AOSP Broadcom vendor stack with some additional fixes from android-rpi

* Camera
  - libcamera for official Raspberry Pi CSI camera modules based on GloDroid
  - AOSP external camera HAL for UVC USB webcams:
    https://source.android.com/docs/core/camera/external-usb-cameras

* Graphics
  - OpenGL & Vulkan: upstream Mesa with GloDroid patches
  - Upstream drm_hwcomposer with force resolution patch from Android-x86 and
    my additional fixes
  - minigbm based on GloDroid

* Health
  - Based on AOSP cuttlefish health HAL

* Kernel
  - Merge of Raspberry Pi and AOSP common kernel with my additional fixes
    and configurations
    https://github.com/raspberrypi/linux
    https://android.googlesource.com/kernel/common/

* Lights
  - Based on LineageOS Xiaomi msm8996-common lights HAL

* suspend_blocker
  - Based on AOSP cuttlefish

* v4l2_codec2
  - Based on AOSP with my Raspberry Pi 4 specific fixes

* Wifi
  - AOSP Broadcom vendor stack with my additional fixes
This commit is contained in:
Konsta
2022-09-14 15:06:12 +03:00
commit bbdbc45eea
85 changed files with 3127 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
// Copyright (C) 2021-2022 KonstaKANG
//
// SPDX-License-Identifier: Apache-2.0
runtime_resource_overlay {
name: "AndroidRpiOverlay",
resource_dirs: ["res"],
sdk_version: "current",
proprietary: true
}

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright (C) 2021-2022 KonstaKANG
**
** SPDX-License-Identifier: Apache-2.0
*/
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.rpi"
android:versionCode="1"
android:versionName="1.0" >
<application android:hasCode="false" />
<overlay
android:targetPackage="android"
android:isStatic="true"
android:priority="0" />
</manifest>

View File

@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2009 The Android Open Source Project
Copyright (C) 2021-2022 KonstaKANG
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>
<!-- Flag indicating that the media framework should support playing of sounds on volume
key usage. This adds noticeable additional overhead to volume key processing, so
is disableable for products for which it is irrelevant. -->
<bool name="config_useVolumeKeySounds">false</bool>
<!-- Flag indicating whether the current device is "voice capable".
If true, this means that the device supports circuit-switched
(i.e. voice) phone calls over the telephony network, and is
allowed to display the in-call UI while a cellular voice call is
active. This can be overridden to false for "data only" devices
which can't make voice calls and don't support any in-call UI.
Note: this flag is subtly different from the
PackageManager.FEATURE_TELEPHONY system feature, which is
available on *any* device with a telephony radio, even if the
device is data-only. -->
<bool name="config_voice_capable">false</bool>
<!-- Flag indicating whether the current device allows sms service.
If true, this means that the device supports both sending and
receiving sms via the telephony network.
This can be overridden to false for "data only" devices
which can't send and receive sms message.
Note: Disable SMS also disable voicemail waiting sms,
cell broadcasting sms, and MMS. -->
<bool name="config_sms_capable">false</bool>
<!-- Whether a software navigation bar should be shown. NOTE: in the future this may be
autodetected from the Configuration. -->
<bool name="config_showNavigationBar">true</bool>
<!-- This string array should be overridden by the device to present a list of network
attributes. This is used by the connectivity manager to decide which networks can coexist
based on the hardware -->
<!-- An Array of "[Connection name],[ConnectivityManager.TYPE_xxxx],
[associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet] -->
<!-- the 5th element "resore-time" indicates the number of milliseconds to delay
before automatically restore the default connection. Set -1 if the connection
does not require auto-restore. -->
<!-- the 6th element indicates boot-time dependency-met value. -->
<string-array translatable="false" name="networkAttributes">
<item>"wifi,1,1,1,-1,true"</item>
<item>"bluetooth,7,7,2,-1,true"</item>
<item>"ethernet,9,9,9,-1,true"</item>
</string-array>
<!-- This string array should be overridden by the device to present a list of radio
attributes. This is used by the connectivity manager to decide which networks can coexist
based on the hardware -->
<!-- An Array of "[ConnectivityManager connectionType],
[# simultaneous connection types]" -->
<string-array translatable="false" name="radioAttributes">
<item>"1,1"</item>
<item>"7,1"</item>
<item>"9,1"</item>
</string-array>
<!-- Default screen brightness setting.
Must be in the range specified by minimum and maximum. -->
<integer name="config_screenBrightnessSettingDefault">128</integer>
<!-- Minimum screen brightness setting allowed by the power manager.
The user is forbidden from setting the brightness below this level. -->
<integer name="config_screenBrightnessSettingMinimum">20</integer>
<!-- Screen brightness used to dim the screen when the user activity
timeout expires. May be less than the minimum allowed brightness setting
that can be set by the user. -->
<integer name="config_screenBrightnessDim">20</integer>
<!-- If true, then we do not ask user for permission for apps to connect to USB devices.
Do not set this to true for production devices. Doing so will cause you to fail CTS. -->
<bool name="config_disableUsbPermissionDialogs">true</bool>
<!-- Control the behavior when the user long presses the power button.
0 - Nothing
1 - Global actions menu
2 - Power off (with confirmation)
3 - Power off (without confirmation)
4 - Go to voice assist
5 - Go to assistant (Settings.Secure.ASSISTANT)
-->
<integer name="config_longPressOnPowerBehavior">1</integer>
<!-- Control the default night mode to use when there is no other mode override set.
One of the following values (see UiModeManager.java):
0 - MODE_NIGHT_AUTO
1 - MODE_NIGHT_NO
2 - MODE_NIGHT_YES
-->
<integer name="config_defaultNightMode">2</integer>
</resources>