Switch camera and minigbm gralloc to apex, same as upstream

This commit is contained in:
oxmc
2025-11-02 21:15:12 -08:00
parent f8f488cbd8
commit 846cac1b51
11 changed files with 80 additions and 37 deletions

34
camera/external/Android.bp vendored Normal file
View File

@@ -0,0 +1,34 @@
// Copyright (C) 2025 KonstaKANG
//
// SPDX-License-Identifier: Apache-2.0
prebuilt_etc {
name: "android.hardware.camera.provider-V1-external-service.rc",
src: "android.hardware.camera.provider-V1-external-service.rc",
installable: false,
}
prebuilt_etc {
name: "android.hardware.camera.provider-V1-external-service.xml",
src: "android.hardware.camera.provider-V1-external-service.xml",
sub_dir: "vintf",
installable: false,
}
apex {
name: "com.android.hardware.camera.external.rpi4",
manifest: "apex_manifest.json",
file_contexts: "apex_file_contexts",
key: "com.android.hardware.key",
certificate: ":com.android.hardware.certificate",
updatable: false,
vendor: true,
binaries: [
"android.hardware.camera.provider-V1-external-service",
],
prebuilts: [
"android.hardware.camera.provider-V1-external-service.rc",
"android.hardware.camera.provider-V1-external-service.xml",
],
}

View File

@@ -0,0 +1,8 @@
service vendor.camera.provider-ext /apex/com.android.hardware.camera.external.rpi4/bin/hw/android.hardware.camera.provider-V1-external-service
interface aidl android.hardware.camera.provider.ICameraProvider/external/0
class hal
user cameraserver
group audio camera input drmrpc usb
ioprio rt 4
capabilities SYS_NICE
task_profiles CameraServiceCapacity MaxPerformance

View File

@@ -0,0 +1,10 @@
<manifest version="1.0" type="device">
<hal format="aidl">
<name>android.hardware.camera.provider</name>
<version>1</version>
<interface>
<name>ICameraProvider</name>
<instance>external/0</instance>
</interface>
</hal>
</manifest>

3
camera/external/apex_file_contents vendored Normal file
View File

@@ -0,0 +1,3 @@
(/.*)? u:object_r:vendor_file:s0
/etc(/.*)? u:object_r:vendor_configs_file:s0
/bin/hw/android\.hardware\.camera\.provider-V1-external-service u:object_r:hal_camera_default_exec:s0

4
camera/external/apex_manifest.json vendored Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "com.android.hardware.camera.external.rpi4",
"version": 1
}

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2021 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.
-->
<ExternalCamera>
<Provider>
<ignore> <!-- Internal video devices to be ignored by external camera HAL -->
<id>10</id> <!-- No leading/trailing spaces -->
<id>11</id>
<id>12</id>
<id>13</id>
<id>14</id>
<id>15</id>
<id>16</id>
<id>18</id>
<id>19</id>
<id>20</id>
<id>21</id>
<id>22</id>
<id>23</id>
<id>31</id>
</ignore>
</Provider>
<!-- See ExternalCameraUtils.cpp for default values of Device configurations below -->
<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>