diff --git a/location/gnssd/Android.bp b/location/gnssd/Android.bp index 3c6c06d..60acd41 100644 --- a/location/gnssd/Android.bp +++ b/location/gnssd/Android.bp @@ -4,6 +4,7 @@ soong_namespace { package { default_applicable_licenses: ["vendor_samsung_slsi_gnss_license"], } + license { name: "vendor_samsung_slsi_gnss_license", visibility: [":__subpackages__"], @@ -41,8 +42,16 @@ cc_prebuilt_binary { // Bypass because libhidltransport is deprecated // Bypass because libhwbinder is deprecated check_elf_files: false, - vintf_fragments: ["android.hardware.gnss@lassen.xml"], + product_variables: { + debuggable: { + required: [ + "libsighandler", + ], + }, + }, + init_rc: ["init.gnss.rc"], + vintf_fragments: ["android.hardware.gnss@default.xml"], } cc_prebuilt_binary { @@ -77,6 +86,13 @@ cc_prebuilt_binary { }, // Bypass because libsitril-gps is Android.mk module check_elf_files: false, + product_variables: { + debuggable: { + required: [ + "libsighandler", + ], + }, + }, } // factory daemon and libraries @@ -211,7 +227,6 @@ cc_prebuilt_library_shared { }, // Bypass because libhidltransport is deprecated check_elf_files: false, - //vintf_fragments: ["android.hardware.gnss@2.1-service-lass.xml"] } cc_prebuilt_library_shared { @@ -245,7 +260,6 @@ cc_prebuilt_library_shared { }, // Bypass because libhidltransport is deprecated check_elf_files: false, - //vintf_fragments: ["android.hardware.gnss@2.1-service-lass.xml"] } cc_prebuilt_library_shared { @@ -279,7 +293,6 @@ cc_prebuilt_library_shared { }, // Bypass because libhidltransport is deprecated check_elf_files: false, - //vintf_fragments: ["android.hardware.gnss@2.1-service-lass.xml"] } cc_prebuilt_library_shared { @@ -313,5 +326,4 @@ cc_prebuilt_library_shared { }, // Bypass because libhidltransport is deprecated check_elf_files: false, - //vintf_fragments: ["android.hardware.gnss@2.1-service-lass.xml"] } diff --git a/location/gnssd/android.hardware.gnss@lassen.xml b/location/gnssd/android.hardware.gnss@default.xml similarity index 100% rename from location/gnssd/android.hardware.gnss@lassen.xml rename to location/gnssd/android.hardware.gnss@default.xml diff --git a/location/gnssd/device_framework_matrix_product.xml b/location/gnssd/device_framework_matrix_product.xml new file mode 100644 index 0000000..2c93444 --- /dev/null +++ b/location/gnssd/device_framework_matrix_product.xml @@ -0,0 +1,10 @@ + + + android.hardware.gnss + 3 + + IGnss + vendor + + + diff --git a/location/gnssd/gnss_release.mk b/location/gnssd/gnss_release.mk index dfc16d4..02ffbcc 100644 --- a/location/gnssd/gnss_release.mk +++ b/location/gnssd/gnss_release.mk @@ -1,30 +1,48 @@ # only GPS libraries and binaries to the target directory GPS_ROOT := device/google/tegu/location/gnssd +# Enable pixel gnss hal service +# include $(GPS_ROOT)/pixel_gnss_hal.mk + + PRODUCT_PACKAGES += \ - android.hardware.gnss@2.1-impl \ gnssd \ - sctd \ - spad \ - swcnd \ - libmptool_json \ - libmptool_log \ - libmptool_utils \ - gnss-aidl-service_IGnssV2_ISlsiGnssV1 \ android.hardware.gnss-service \ android.hardware.location.gps.prebuilt.xml PRODUCT_COPY_FILES += \ $(GPS_ROOT)/release/ca.pem:vendor/etc/gnss/ca.pem \ + $(GPS_ROOT)/release/kepler.bin:vendor/firmware/kepler.bin + + +# factory libraries +PRODUCT_PACKAGES += \ + android.hardware.gnss@2.1-impl \ + sctd \ + spad \ + swcnd \ + libmptool_json \ + libmptool_log \ + libmptool_utils + +PRODUCT_COPY_FILES += \ $(GPS_ROOT)/release/sctd.json:vendor/etc/sctd.json \ $(GPS_ROOT)/release/spad.json:vendor/etc/spad.json \ - $(GPS_ROOT)/release/swcnd.json:vendor/etc/swcnd.json \ + $(GPS_ROOT)/release/swcnd.json:vendor/etc/swcnd.json + PRODUCT_SOONG_NAMESPACES += \ $(GPS_ROOT) -PRODUCT_COPY_FILES += \ - $(GPS_ROOT)/release/gps.cfg:vendor/etc/gnss/gps.cfg +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) + PRODUCT_COPY_FILES += \ + $(GPS_ROOT)/release/gps.cfg:vendor/etc/gnss/gps.cfg + PRODUCT_VENDOR_PROPERTIES += \ + vendor.gps.aol.enabled=true +else + PRODUCT_COPY_FILES += \ + $(GPS_ROOT)/release/gps_user.cfg:vendor/etc/gnss/gps.cfg +endif BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/gps/brcm/sepolicy BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/gps/lsi/sepolicy diff --git a/location/gnssd/init.gnss.rc b/location/gnssd/init.gnss.rc index 1ead72a..3f311e1 100644 --- a/location/gnssd/init.gnss.rc +++ b/location/gnssd/init.gnss.rc @@ -17,6 +17,8 @@ on post-fs-data chown system system /dev/gnss_dump chmod 0660 /dev/gnss_boot chown system system /dev/gnss_boot + chmod 0660 /sys/devices/platform/gnssif/coredump + chown system system /sys/devices/platform/gnssif/coredump # GPS daemon service gnssd /vendor/bin/hw/gnssd diff --git a/location/gnssd/pixel_gnss_hal.mk b/location/gnssd/pixel_gnss_hal.mk new file mode 100644 index 0000000..977ba47 --- /dev/null +++ b/location/gnssd/pixel_gnss_hal.mk @@ -0,0 +1,12 @@ +# Enable aidl service +$(call soong_config_set, pixel_gnss, enable_pixel_gnss_aidl_service, true) + +PRODUCT_PACKAGES += \ + android.hardware.gnss-service.pixel + +PRODUCT_VENDOR_PROPERTIES += \ + persist.vendor.gps.hal.service.name=vendor + +# Compatibility matrix +DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += \ + device/google/tegu/location/gnssd/device_framework_matrix_product.xml diff --git a/location/gnssd/release/android.hardware.gnss-service b/location/gnssd/release/android.hardware.gnss-service index 4790fd7..867f055 100644 Binary files a/location/gnssd/release/android.hardware.gnss-service and b/location/gnssd/release/android.hardware.gnss-service differ diff --git a/location/gnssd/release/gnssd b/location/gnssd/release/gnssd index 88fe6d7..20cc957 100644 Binary files a/location/gnssd/release/gnssd and b/location/gnssd/release/gnssd differ diff --git a/location/gnssd/release/gps.cfg b/location/gnssd/release/gps.cfg index 99b9fa0..41e474d 100644 --- a/location/gnssd/release/gps.cfg +++ b/location/gnssd/release/gps.cfg @@ -1,28 +1,40 @@ ############################################ GlueLayer_ToolConfigSelection=3 +debug_console=1 +debug_enable=4 +mem_dump_to_node=1 +force_instant_logging=0 user_ports_tcp_name=Autotest user_ports_tcp_port=7555 -debug_console=1 debug_dir=/data/vendor/gps/logs ############################################ GlueLayer_IsGedKeyExist=1 -GlueLayer_isForceIPV6=0 GlueLayer_EnableGnssCfgInterface=1 -debug_enable=1 + uni_log_max_file_count=5 uni_log_max_size_mb=20 uni_log_total_max_size_mb=100 +# to enable ism stream for GAAM +ism_stream_enable=1 +caplay_port_tcp_port=@GNSS_ISM_CAPTURE_PLAYBACK + gnss_device_type=K041 +gnss_device_patch_address=0 +gnss_device_patch_file=/vendor/firmware/kepler.bin # send debug req on MCW oddity #Chip_Configuration_Io_Options=0x85 +# Disable dynamic HSI +Chip_Configuration_Dynamic_HSI=0 + # borrow this field to force CP crash on GAL bad ISM #Chip_Configuration_WT1=1 # Chip_Configuration_TrackerDebugMode = 0x10 +GlueLayer_IsPlatformRefTimeEnable=1 # enables CHPP for SPI port # uncomment the *chpp* lines below (and comment gnss_device-data_port_kepslim_present above) to use SPI+CHPP @@ -39,6 +51,12 @@ scheduling_enabled=1 ### temporarily disable precise time aiding ### Chip_Configuration_AidingConfiguration=0x00020046 +# VDR End condition (meter, meter, sec, sec) +ChipCfg_VDR_high_end_Distance = 200 +ChipCfg_VDR_low_end_Distance = 200 +ChipCfg_VDR_high_end_Time = 20 +ChipCfg_VDR_low_end_Time = 20 + # set shared reference clock for freq aiding (0x20) # enable dcxo (0x04) Chip_Configuration_RefClkControl=0x24 @@ -79,12 +97,17 @@ Chip_Configuration_WatchdogPeriod = 0 # GPS= 0x0001 GLO= 0x0002 GALILEO=0x0004 BEIDOU=0x0008 SBAS=0x0010 QZSS=0x0020 # MEMS Static Detect=0x4000 MEMS Heading=0x2000 ### 2C48 L1 only MCW ### -Chip_Configuration_GNSSConstConstraintDef=0x603F +Chip_Configuration_GNSSConstConstraintDef=0x602F Chip_Configuration_RfMiscCtrl=0x80008001 +# Disable BDS in the U.S. +bdsUsedInUSPolicy=2 +sbasUsedInUSPolicy=2 +qzssUsedInUSPolicy=2 +navicUsedInUSPolicy=2 + # DVS: 0 = Disabled (default), 1 = Enabled # DFS: 0 = Disabled (default), 1 = Enabled -# JJM: disabling due to suspicion that DVFS is contributing to GAL BAD ISM Chip_Configuration_FeatureCfg_DVS = 1 Chip_Configuration_FeatureCfg_DFS = 1 @@ -120,7 +143,7 @@ rtc_min_num_of_fixes=10 additional_rtc_uncertainty_ms=10 # set to 1 for FW SGEE download - Requires Android FW to be properly configured -Sif_UseFwXtraInterface=0 +Sif_UseFwXtraInterface=1 # Low power configurations # ACT C/No loss limit: 0dB to 15dB (0 = ACT is disabled by default) 3dB = 50% Duty Cycle, 6dB = 25% Duty Cycle, 9dB = 12.5% Duty Cycle @@ -128,6 +151,39 @@ Chip_Configuration_FeatureCfg_ACT = 5 ChipCfg_DspMemdumpEnable=1 +Agnss_IsGloAidingEnable=0 +Agnss_SuplUseCpNi=1 +SETCaps_IsOtdoa=1 +SETCaps_IsLpp=1 +PosReq_Supl2Params_SuplNiUdpPort=7275 +GlueLayer_LPPCpBitmask=0x17 +GlueLayer_IsCpLteNeighborCellEnable=1 +GlueLayer_isReqDBHFromFwRefLoc=1 +GlueLayer_isReqUBPFromPressureSensor=1 +GlueLayer_IsMemsEnable=1 +GlueLayer_MeasCorrCap=7 +Chip_Configuration_mems_data_Configuration=5 +Chip_Configuration_FeatureCfg_ANDRD_MEAS_CORR_ENABLE=1 +CP_LocTech_PrimaryConst=0 +CP_LocTech_Constraints=1 +CP_LocTech_Requirements=0 +UP_LocTech_PrimaryConst=0 +UP_LocTech_Constraints=1 +UP_LocTech_Requirements=0 +SpotLogger_Allowed=0 + +RfPathLossDb_Ap=3500 +RfPathLossDb_Cp=3500 +NmeaBitmask=0x010003fff + +# force engine to use entire response time for emergency session; default 0 +IsUseEntireRespTime911=1 +# force engine to engage high accuracy if entire response time used; default 0 +isForceHighAccuracyMode=1 + +# 0: Use calibrated Accel data 1: Use uncalibrated Accel data +isUseUncalAccel=1 + GNSS_CARRIER_CONFIG_BEGIN # DEFAULT GNSS_CARRIER_ID=0 @@ -147,60 +203,57 @@ ENABLE_4G_UP_CAPS_MSA=1 ENABLE_4G_UP_CAPS_MSB=1 ENABLE_5G_UP_CAPS_MSA=0 ENABLE_5G_UP_CAPS_MSB=0 +SUPL_SSL_METHOD=TLSv1_1 +SUPL_HMAC_HASH=SHA256 SUPL_UT2_SEC=20 SUPL_UT3_SEC=20 ENABLE_LPP_CP=1 ENABLE_LPP_UP=0 ENABLE_LPPE_CP=3 ENABLE_LPPE_UP=0 +ENABLE_NLP_IN_LPPE=1 +ENABLE_NLP_IN_AGNSS=0 +ENABLE_LPP_HA_GAD_SHAPE=0 +USE_EMER_PDN_FOR_EMER_SUPL=1 # ATT GNSS_CARRIER_ID=1 # TMO GNSS_CARRIER_ID=2 ENABLE_3G_CP_CAPS_MSA=0 ENABLE_4G_CP_CAPS_MSA=0 +ENABLE_NLP_IN_LPPE=0 +ENABLE_NLP_IN_AGNSS=1 +ENABLE_LPP_HA_GAD_SHAPE=1 # VZW GNSS_CARRIER_ID=3 ENABLE_LPP_UP=1 ENABLE_LPPE_UP=3 -# VISIBLE -GNSS_CARRIER_ID=4 -ENABLE_LPP_UP=1 -ENABLE_LPPE_UP=3 +SUPL_UT2_SEC=10 +SUPL_UT3_SEC=30 +SUPL_SSL_METHOD=TLSv1_2 # AIRTEL -GNSS_CARRIER_ID=5 +GNSS_CARRIER_ID=4 # RAKUTEN -GNSS_CARRIER_ID=6 +GNSS_CARRIER_ID=5 ENABLE_LPP_UP=1 ENABLE_LPPE_UP=3 # KDDI -GNSS_CARRIER_ID=7 +GNSS_CARRIER_ID=6 ENABLE_LPP_CP=0 ENABLE_LPP_UP=1 ENABLE_LPPE_CP=0 ENABLE_LPPE_UP=3 # SBM -GNSS_CARRIER_ID=8 +GNSS_CARRIER_ID=7 ENABLE_LPP_CP=0 -ENABLE_LPP_UP=0 ENABLE_LPPE_CP=0 -ENABLE_LPPE_UP=0 ENABLE_5G_CP_CAPS_MSA=0 ENABLE_5G_CP_CAPS_MSB=0 +USE_EMER_PDN_FOR_EMER_SUPL=0 +# DOCOMO +GNSS_CARRIER_ID=8 +# LAB +GNSS_CARRIER_ID=9 +ENABLE_LPP_UP=1 +ENABLE_LPPE_UP=3 GNSS_CARRIER_CONFIG_END - -bdsUsedInUSPolicy=2 -sbasUsedInUSPolicy=2 -qzssUsedInUSPolicy=2 -navicUsedInUSPolicy=2 - -Chip_Configuration_FeatureCfg_ANDRD_MEAS_CORR_ENABLE=1 -GlueLayer_MeasCorrCap=7 - -RfPathLossDb_Ap=3.5 -RfPathLossDb_Cp=3.5 - -Agnss_SuplUseCpNi=1 -PosReq_Supl2Params_SuplNiUdpPort=7275 - -NmeaBitmask=0x010003fff diff --git a/location/gnssd/release/gps_user.cfg b/location/gnssd/release/gps_user.cfg new file mode 100644 index 0000000..70b4f52 --- /dev/null +++ b/location/gnssd/release/gps_user.cfg @@ -0,0 +1,133 @@ +GlueLayer_ToolConfigSelection=3 +debug_console=0 +debug_enable=0 +mem_dump_to_node=0 +GlueLayer_IsGedKeyExist=1 +GlueLayer_EnableGnssCfgInterface=1 +ism_stream_enable=1 +caplay_port_tcp_port=@GNSS_ISM_CAPTURE_PLAYBACK +gnss_device_type=K041 +gnss_device_patch_address=0 +gnss_device_patch_file=/vendor/firmware/kepler.bin +Chip_Configuration_Dynamic_HSI=0 +GlueLayer_IsPlatformRefTimeEnable=1 +chpp_betp_client=1 +chpp_log_level=0 +gnss_device_data_port_chpp_spi_device=/dev/gnss_ipc +gnss_device_data_port_chpp_present=1 +GlueLayer_YearOfHW=2023 +scheduling_enabled=1 +Chip_Configuration_AidingConfiguration=0x00020046 +ChipCfg_VDR_high_end_Distance = 200 +ChipCfg_VDR_low_end_Distance = 200 +ChipCfg_VDR_high_end_Time = 20 +ChipCfg_VDR_low_end_Time = 20 +Chip_Configuration_RefClkControl=0x24 +Chip_Configuration_DCXO_CrystalType=0x11 +spam_dog_ms=0 +Chip_Configuration_WatchdogPeriod = 0 +Chip_Configuration_GNSSConstConstraintDef=0x602F +Chip_Configuration_RfMiscCtrl=0x80008001 +bdsUsedInUSPolicy=2 +sbasUsedInUSPolicy=2 +qzssUsedInUSPolicy=2 +navicUsedInUSPolicy=2 +Chip_Configuration_FeatureCfg_DVS = 1 +Chip_Configuration_FeatureCfg_DFS = 1 +mailboxDisabled=0x8 +gnss_rfic_chip_id=55200001 +UseRtcForAiding=1 +rtc_min_num_of_fixes=10 +additional_rtc_uncertainty_ms=10 +Sif_UseFwXtraInterface=1 +Chip_Configuration_FeatureCfg_ACT = 5 +ChipCfg_DspMemdumpEnable=1 +Agnss_IsGloAidingEnable=0 +Agnss_SuplUseCpNi=1 +SETCaps_IsOtdoa=1 +SETCaps_IsLpp=1 +PosReq_Supl2Params_SuplNiUdpPort=7275 +GlueLayer_LPPCpBitmask=0x17 +GlueLayer_IsCpLteNeighborCellEnable=1 +GlueLayer_isReqDBHFromFwRefLoc=1 +GlueLayer_isReqUBPFromPressureSensor=1 +GlueLayer_IsMemsEnable=1 +GlueLayer_MeasCorrCap=7 +Chip_Configuration_mems_data_Configuration=5 +Chip_Configuration_FeatureCfg_ANDRD_MEAS_CORR_ENABLE=1 +CP_LocTech_PrimaryConst=0 +CP_LocTech_Constraints=1 +CP_LocTech_Requirements=0 +UP_LocTech_PrimaryConst=0 +UP_LocTech_Constraints=1 +UP_LocTech_Requirements=0 +SpotLogger_Allowed=0 +RfPathLossDb_Ap=3500 +RfPathLossDb_Cp=3500 +NmeaBitmask=0x010003fff +IsUseEntireRespTime911=1 +isForceHighAccuracyMode=1 +isUseUncalAccel=1 +GNSS_CARRIER_CONFIG_BEGIN +GNSS_CARRIER_ID=0 +ENABLE_2G_CP_CAPS_MSA=1 +ENABLE_2G_CP_CAPS_MSB=1 +ENABLE_3G_CP_CAPS_MSA=1 +ENABLE_3G_CP_CAPS_MSB=1 +ENABLE_4G_CP_CAPS_MSA=1 +ENABLE_4G_CP_CAPS_MSB=1 +ENABLE_5G_CP_CAPS_MSA=1 +ENABLE_5G_CP_CAPS_MSB=1 +ENABLE_2G_UP_CAPS_MSA=1 +ENABLE_2G_UP_CAPS_MSB=1 +ENABLE_3G_UP_CAPS_MSA=1 +ENABLE_3G_UP_CAPS_MSB=1 +ENABLE_4G_UP_CAPS_MSA=1 +ENABLE_4G_UP_CAPS_MSB=1 +ENABLE_5G_UP_CAPS_MSA=0 +ENABLE_5G_UP_CAPS_MSB=0 +SUPL_SSL_METHOD=TLSv1_1 +SUPL_HMAC_HASH=SHA256 +SUPL_UT2_SEC=20 +SUPL_UT3_SEC=20 +ENABLE_LPP_CP=1 +ENABLE_LPP_UP=0 +ENABLE_LPPE_CP=3 +ENABLE_LPPE_UP=0 +ENABLE_NLP_IN_LPPE=1 +ENABLE_NLP_IN_AGNSS=0 +ENABLE_LPP_HA_GAD_SHAPE=0 +USE_EMER_PDN_FOR_EMER_SUPL=1 +GNSS_CARRIER_ID=1 +GNSS_CARRIER_ID=2 +ENABLE_3G_CP_CAPS_MSA=0 +ENABLE_4G_CP_CAPS_MSA=0 +ENABLE_NLP_IN_LPPE=0 +ENABLE_NLP_IN_AGNSS=1 +ENABLE_LPP_HA_GAD_SHAPE=1 +GNSS_CARRIER_ID=3 +ENABLE_LPP_UP=1 +ENABLE_LPPE_UP=3 +SUPL_UT2_SEC=10 +SUPL_UT3_SEC=30 +SUPL_SSL_METHOD=TLSv1_2 +GNSS_CARRIER_ID=4 +GNSS_CARRIER_ID=5 +ENABLE_LPP_UP=1 +ENABLE_LPPE_UP=3 +GNSS_CARRIER_ID=6 +ENABLE_LPP_CP=0 +ENABLE_LPP_UP=1 +ENABLE_LPPE_CP=0 +ENABLE_LPPE_UP=3 +GNSS_CARRIER_ID=7 +ENABLE_LPP_CP=0 +ENABLE_LPPE_CP=0 +ENABLE_5G_CP_CAPS_MSA=0 +ENABLE_5G_CP_CAPS_MSB=0 +USE_EMER_PDN_FOR_EMER_SUPL=0 +GNSS_CARRIER_ID=8 +GNSS_CARRIER_ID=9 +ENABLE_LPP_UP=1 +ENABLE_LPPE_UP=3 +GNSS_CARRIER_CONFIG_END diff --git a/location/gnssd/release/kepler.bin b/location/gnssd/release/kepler.bin new file mode 100644 index 0000000..971378c Binary files /dev/null and b/location/gnssd/release/kepler.bin differ