diff --git a/gps/brcm/device.mk b/gps/brcm/device.mk index e9dcf3d..c61897b 100644 --- a/gps/brcm/device.mk +++ b/gps/brcm/device.mk @@ -1,6 +1,6 @@ BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/gps/brcm/sepolicy -PRODUCT_SOONG_NAMESPACES += vendor/broadcom/gps/bcm47765 +PRODUCT_SOONG_NAMESPACES += device/google/gs-common/gps/brcm/prebuilt PRODUCT_PACKAGES += \ bcm47765_gps_package \ diff --git a/gps/brcm/device_v2.mk b/gps/brcm/device_v2.mk new file mode 100644 index 0000000..60e62b3 --- /dev/null +++ b/gps/brcm/device_v2.mk @@ -0,0 +1,10 @@ +BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/gps/brcm/sepolicy + +PRODUCT_SOONG_NAMESPACES += vendor/broadcom/gps/bcm47765 + +PRODUCT_PACKAGES += \ + bcm47765_gps_package_v2 \ + android.hardware.location.gps.prebuilt.xml + +PRODUCT_PACKAGES_DEBUG += \ + init.gps_log.rc diff --git a/gps/brcm/prebuilt/Android.bp b/gps/brcm/prebuilt/Android.bp new file mode 100644 index 0000000..9e1b5b0 --- /dev/null +++ b/gps/brcm/prebuilt/Android.bp @@ -0,0 +1,235 @@ +soong_namespace { + imports: [ + "hardware/google/pixel", + ], +} + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +cc_prebuilt_library_shared { + name: "android.hardware.gnss@2.1-impl-google", + arch: { + arm64: { + srcs: ["android.hardware.gnss@2.1-impl-google.so"], + shared_libs: [ + "liblog", + "libhidlbase", + // "libhidltransport", + "libutils", + "android.hardware.gnss@1.0", + "android.hardware.gnss@1.1", + "android.hardware.gnss@2.0", + "android.hardware.gnss@2.1", + "android.hardware.gnss.measurement_corrections@1.0", + "android.hardware.gnss.visibility_control@1.0", + "android.hardware.gnss-V2-ndk", + "libhardware", + "libc++", + "libc", + "libm", + "libdl", + ], + }, + }, + compile_multilib: "64", + vendor: true, + relative_install_path: "hw", + strip: { + none: true, + }, + // Bypass because libhidltransport is deprecated + check_elf_files: false, +} + +cc_prebuilt_binary { + name: "android.hardware.gnss@2.1-service-brcm", + init_rc: ["init.gps.rc"], + arch: { + arm64: { + srcs: ["android.hardware.gnss@2.1-service-brcm"], + shared_libs: [ + "liblog", + "libutils", + "libhardware", + "android.hardware.gnss@1.0", + "libhidlbase", + // "libhidltransport", + // "libhwbinder", + "android.hardware.gnss@1.1", + "android.hardware.gnss@2.0", + "android.hardware.gnss@2.1", + "android.hardware.gnss-V2-ndk", + "libc++", + "libc", + "libm", + "libdl", + ], + }, + }, + compile_multilib: "64", + vendor: true, + relative_install_path: "hw", + strip: { + none: true, + }, + // Bypass because libhidltransport is deprecated + // Bypass because libhwbinder is deprecated + check_elf_files: false, + vintf_fragments: ["android.hardware.gnss@2.1-service-brcm.xml"] +} + +cc_prebuilt_library_shared { + name: "flp.default", + arch: { + arm64: { + srcs: ["flp.default.so"], + shared_libs: [ + "liblog", + "libcutils", + "libutils", + "libc++", + "libc", + "libm", + "libdl", + ], + }, + }, + compile_multilib: "64", + vendor: true, + relative_install_path: "hw", + strip: { + none: true, + }, + // Bypass because soname mismatch + check_elf_files: false, +} + +cc_prebuilt_binary { + name: "gpsd", + arch: { + arm64: { + srcs: ["gpsd"], + shared_libs: [ + "liblog", + "libutils", + "libhardware_legacy", + "libcutils", + "libssl", + "libcrypto", + // "libsitril-gps", + "android.frameworks.sensorservice@1.0", + "libhidlbase", + "libandroid_net", + "libc++", + "libc", + "libm", + "libdl", + ], + }, + }, + compile_multilib: "64", + vendor: true, + relative_install_path: "hw", + strip: { + none: true, + }, + // Bypass because libsitril-gps is Android.mk module + check_elf_files: false, +} + +cc_prebuilt_library_shared { + name: "gps.default", + arch: { + arm64: { + srcs: ["gps.default.so"], + shared_libs: [ + "liblog", + "libcutils", + "libutils", + "libc++", + "libc", + "libm", + "libdl", + ], + }, + }, + compile_multilib: "64", + vendor: true, + relative_install_path: "hw", + strip: { + none: true, + }, + // Bypass because soname mismatch + check_elf_files: false, +} + +cc_prebuilt_binary { + name: "lhd", + arch: { + arm64: { + srcs: ["lhd"], + shared_libs: [ + "liblog", + "libutils", + "libhardware_legacy", + "libc++", + "libc", + "libm", + "libz", + "android.hardware.contexthub@1.0", + "libhidlbase", + "libdl", + ], + }, + }, + compile_multilib: "64", + vendor: true, + relative_install_path: "hw", + strip: { + none: true, + }, +} + +cc_prebuilt_binary { + name: "scd", + arch: { + arm64: { + srcs: ["scd"], + shared_libs: [ + "liblog", + "libutils", + "libssl", + "libcrypto", + "libandroid_net", + ], + }, + }, + compile_multilib: "64", + vendor: true, + relative_install_path: "hw", + strip: { + none: true, + }, +} + +prebuilt_firmware { + name: "SensorHub.patch", + src: "SensorHub.patch", + vendor: true, +} + +phony { + name: "bcm47765_gps_package", + required: [ + "android.hardware.gnss@2.1-impl-google", + "android.hardware.gnss@2.1-service-brcm", + "flp.default", + "gpsd", + "lhd", + "gps.default", + "scd", + "SensorHub.patch" + ], +} diff --git a/gps/brcm/prebuilt/SensorHub.patch b/gps/brcm/prebuilt/SensorHub.patch new file mode 100644 index 0000000..cee5c46 --- /dev/null +++ b/gps/brcm/prebuilt/SensorHub.patch @@ -0,0 +1,7050 @@ + + + + + + + + + + + + + + diff --git a/gps/brcm/prebuilt/android.hardware.gnss@2.1-impl-google.so b/gps/brcm/prebuilt/android.hardware.gnss@2.1-impl-google.so new file mode 100755 index 0000000..e63acda Binary files /dev/null and b/gps/brcm/prebuilt/android.hardware.gnss@2.1-impl-google.so differ diff --git a/gps/brcm/prebuilt/android.hardware.gnss@2.1-service-brcm b/gps/brcm/prebuilt/android.hardware.gnss@2.1-service-brcm new file mode 100755 index 0000000..1ae69f1 Binary files /dev/null and b/gps/brcm/prebuilt/android.hardware.gnss@2.1-service-brcm differ diff --git a/gps/brcm/prebuilt/android.hardware.gnss@2.1-service-brcm.xml b/gps/brcm/prebuilt/android.hardware.gnss@2.1-service-brcm.xml new file mode 100644 index 0000000..97538b8 --- /dev/null +++ b/gps/brcm/prebuilt/android.hardware.gnss@2.1-service-brcm.xml @@ -0,0 +1,7 @@ + + + android.hardware.gnss + 2 + IGnss/default + + diff --git a/gps/brcm/prebuilt/flp.default.so b/gps/brcm/prebuilt/flp.default.so new file mode 100755 index 0000000..728b67c Binary files /dev/null and b/gps/brcm/prebuilt/flp.default.so differ diff --git a/gps/brcm/prebuilt/gps.default.so b/gps/brcm/prebuilt/gps.default.so new file mode 100755 index 0000000..061ad5c Binary files /dev/null and b/gps/brcm/prebuilt/gps.default.so differ diff --git a/gps/brcm/prebuilt/gpsd b/gps/brcm/prebuilt/gpsd new file mode 100755 index 0000000..73a0c5e Binary files /dev/null and b/gps/brcm/prebuilt/gpsd differ diff --git a/gps/brcm/prebuilt/init.gps.rc b/gps/brcm/prebuilt/init.gps.rc new file mode 100644 index 0000000..5f1bb15 --- /dev/null +++ b/gps/brcm/prebuilt/init.gps.rc @@ -0,0 +1,31 @@ +service lhd /vendor/bin/hw/lhd /vendor/etc/gnss/lhd.conf + class main + user gps + group system inet net_raw sdcard_rw + ioprio be 0 + +service gpsd /vendor/bin/hw/gpsd -c /vendor/etc/gnss/gps.xml + class main + user gps + group system gps radio inet wakelock sdcard_rw net_raw + ioprio be 0 + +service scd /vendor/bin/hw/scd /vendor/etc/gnss/scd.conf + class main + user gps + group system inet net_raw wakelock + ioprio be 0 + priority -1 + +service gnss_service /vendor/bin/hw/android.hardware.gnss@2.1-service-brcm + class hal + user gps + group system gps radio + ioprio be 0 + priority -1 + +# disable gps service if no gps h/w +on property:vendor.ril.cbd.svc=0 + stop gpsd + stop lhd + stop scd \ No newline at end of file diff --git a/gps/brcm/prebuilt/lhd b/gps/brcm/prebuilt/lhd new file mode 100755 index 0000000..ed83fc7 Binary files /dev/null and b/gps/brcm/prebuilt/lhd differ diff --git a/gps/brcm/prebuilt/scd b/gps/brcm/prebuilt/scd new file mode 100755 index 0000000..f64cc25 Binary files /dev/null and b/gps/brcm/prebuilt/scd differ