1
0
Fork 0

Support drm hwcomposer as an apex

... so that Cuttlefish can runtime select between drm_hwcomposer
and ranchu.

Drops the libbinder to avoid error:

  APEX can't use libbinder (must use libbinder_ndk)

and fixes a couple includes.

Bug: b/348466630
Test: cvd start
Test: cvd start --hwcomposer=drm_hwcomposer
Change-Id: I50681677d89c56fb6761b740a465bf92890157ea
This commit is contained in:
Jason Macnak 2024-09-18 13:27:18 -07:00
parent 7231bbd7bb
commit 1f26384f2a
6 changed files with 68 additions and 2 deletions

View file

@ -177,7 +177,6 @@ cc_binary {
shared_libs: [
"android.hardware.graphics.composer3-V3-ndk",
"libbase",
"libbinder",
"libbinder_ndk",
"liblog",
"libutils",
@ -225,3 +224,60 @@ filegroup {
name: "drm_hwcomposer_platformmediatek",
srcs: ["bufferinfo/legacy/BufferInfoMaliMediatek.cpp"],
}
prebuilt_etc {
name: "drm_hwcomposer_hwc3_apex_vintf",
src: "hwc3/hwc3-drm.xml",
sub_dir: "vintf",
vendor: true,
installable: false,
}
prebuilt_etc {
name: "drm_hwcomposer_hwc3_apex_init_rc",
filename_from_src: true,
vendor: true,
src: ":gen-drm_hwcomposer_hwc3_apex_init_rc",
}
genrule {
name: "gen-drm_hwcomposer_hwc3_apex_init_rc",
srcs: ["hwc3/hwc3-drm.rc"],
out: ["hwc3-drm.apex.rc"],
cmd: "sed " +
// Update the binary location to inside the Apex:
"-e 's%/vendor/bin/%/apex/com.android.hardware.graphics.composer/bin/%' " +
"$(in) > $(out)",
}
filegroup {
name: "drm_hwcomposer_hwc3_apex_file_contexts",
srcs: [
"hwc3/hwc3-apex-file-contexts",
],
}
filegroup {
name: "drm_hwcomposer_hwc3_apex_manifest",
srcs: [
"hwc3/hwc3-apex-manifest.json",
],
}
apex {
name: "com.android.hardware.graphics.composer.drm_hwcomposer",
key: "com.android.hardware.key",
certificate: ":com.android.hardware.certificate",
file_contexts: ":drm_hwcomposer_hwc3_apex_file_contexts",
manifest: ":drm_hwcomposer_hwc3_apex_manifest",
vendor: true,
updatable: false,
soc_specific: true,
binaries: [
"android.hardware.composer.hwc3-service.drm",
],
prebuilts: [
"drm_hwcomposer_hwc3_apex_init_rc",
"drm_hwcomposer_hwc3_apex_vintf",
],
}

View file

@ -17,6 +17,8 @@
#include <unordered_map>
#include <vector>
#include <android-base/unique_fd.h>
#include "Utils.h"
#include "aidl/android/hardware/graphics/composer3/CommandError.h"
#include "aidl/android/hardware/graphics/composer3/CommandResultPayload.h"

View file

@ -18,6 +18,7 @@
#include <aidl/android/hardware/graphics/composer3/IComposerClient.h>
#include <hardware/hwcomposer2.h>
#include <log/log.h>
#include <cstdint>

View file

@ -0,0 +1,3 @@
(/.*)? u:object_r:vendor_file:s0
/etc(/.*)? u:object_r:vendor_configs_file:s0
/bin/hw/android\.hardware\.composer\.hwc3-service\.drm u:object_r:hal_graphics_composer_default_exec:s0

View file

@ -0,0 +1,5 @@
{
"name": "com.android.hardware.graphics.composer",
"version": 1,
"vendorBootstrap": true
}

View file

@ -19,7 +19,6 @@
#include <android/binder_manager.h>
#include <android/binder_process.h>
#include <binder/ProcessState.h>
#include <sched.h>
#include "Composer.h"