diff --git a/camera/external/Android.bp b/camera/external/Android.bp
new file mode 100644
index 0000000..da0e23d
--- /dev/null
+++ b/camera/external/Android.bp
@@ -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",
+ ],
+}
diff --git a/camera/external/android.hardware.camera.provider-V1-external-service.rc b/camera/external/android.hardware.camera.provider-V1-external-service.rc
new file mode 100644
index 0000000..edad869
--- /dev/null
+++ b/camera/external/android.hardware.camera.provider-V1-external-service.rc
@@ -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
diff --git a/camera/external/android.hardware.camera.provider-V1-external-service.xml b/camera/external/android.hardware.camera.provider-V1-external-service.xml
new file mode 100644
index 0000000..f7973c1
--- /dev/null
+++ b/camera/external/android.hardware.camera.provider-V1-external-service.xml
@@ -0,0 +1,10 @@
+
+
+ android.hardware.camera.provider
+ 1
+
+ ICameraProvider
+ external/0
+
+
+
diff --git a/camera/external/apex_file_contexts b/camera/external/apex_file_contexts
new file mode 100644
index 0000000..0b91069
--- /dev/null
+++ b/camera/external/apex_file_contexts
@@ -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
diff --git a/camera/external/apex_manifest.json b/camera/external/apex_manifest.json
new file mode 100644
index 0000000..8c04c8d
--- /dev/null
+++ b/camera/external/apex_manifest.json
@@ -0,0 +1,4 @@
+{
+ "name": "com.android.hardware.camera.external.rpi4",
+ "version": 1
+}
diff --git a/camera/external_camera_config.xml b/camera/external/external_camera_config.xml
similarity index 100%
rename from camera/external_camera_config.xml
rename to camera/external/external_camera_config.xml
diff --git a/device.mk b/device.mk
index fa89f87..85b7e1f 100644
--- a/device.mk
+++ b/device.mk
@@ -52,10 +52,10 @@ PRODUCT_COPY_FILES += \
# Camera
PRODUCT_PACKAGES += \
- android.hardware.camera.provider-V1-external-service
+ com.android.hardware.camera.external.rpi4
PRODUCT_COPY_FILES += \
- $(DEVICE_PATH)/camera/external_camera_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/external_camera_config.xml
+ $(DEVICE_PATH)/camera/external/external_camera_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/external_camera_config.xml
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.camera.external.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.external.xml
diff --git a/manifest.xml b/manifest.xml
index 326beec..3d01ce9 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -17,12 +17,4 @@
default
-
- android.hardware.camera.provider
- 1
-
- ICameraProvider
- external/0
-
-