Bläddra i källkod

fixup! e3q: Initial commit

David Wronek 4 månader sedan
förälder
incheckning
33a7b3d115

+ 18 - 10
BoardConfig.mk

@@ -21,13 +21,18 @@ TARGET_CPU_VARIANT_RUNTIME := kryo300
 # Board
 TARGET_BOARD_INFO_FILE := $(DEVICE_PATH)/board-info.txt
 
+# Boot
+BOARD_BOOT_HEADER_VERSION := 4
+BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
+BOARD_RAMDISK_USE_LZ4 := true
+
 # Bootloader
 TARGET_BOOTLOADER_BOARD_NAME := pineapple
 TARGET_NO_BOOTLOADER := true
 
 # Display
 TARGET_SCREEN_DENSITY := 450
-TARGET_USES_VULKAN := true
+TARGET_GRALLOC_HANDLE_HAS_UBWCP_FORMAT = true
 
 # DTB / DTBO
 BOARD_INCLUDE_DTB_IN_BOOTIMG := true
@@ -72,16 +77,16 @@ TARGET_KERNEL_CONFIG := \
     oem/e3q-lego.config
 
 # Kernel modules
-BOARD_SYSTEM_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load.system_dlkm))
-BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(DEVICE_PATH)/modules/modules.blocklist
-BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load))
+BOARD_SYSTEM_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load.system_dlkm))
+BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(DEVICE_PATH)/modules.blocklist
+BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load))
 BOARD_VENDOR_RAMDISK_KERNEL_MODULES_BLOCKLIST_FILE := $(BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE)
-BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load.vendor_boot))
-BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load.recovery))
-BOOT_KERNEL_MODULES := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load.recovery $(DEVICE_PATH)/modules/modules.include.vendor_ramdisk))
-SYSTEM_KERNEL_MODULES := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.include.system_dlkm))
-BOARD_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load.recovery))
-BOARD_RECOVERY_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules/modules.load.recovery))
+BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load.vendor_boot))
+BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load.recovery))
+BOOT_KERNEL_MODULES := $(strip $(shell cat $(DEVICE_PATH)/modules.load.recovery $(DEVICE_PATH)/modules.include.vendor_ramdisk))
+SYSTEM_KERNEL_MODULES := $(strip $(shell cat $(DEVICE_PATH)/modules.include.system_dlkm))
+BOARD_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load.recovery))
+BOARD_RECOVERY_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load.recovery))
 RECOVERY_KERNEL_MODULES := $(BOARD_RECOVERY_RAMDISK_KERNEL_MODULES_LOAD)
 
 TARGET_KERNEL_EXT_MODULE_ROOT := kernel/samsung/sm8650-modules
@@ -183,6 +188,9 @@ BOARD_RECOVERY_MKBOOTIMG_ARGS := --header_version 2
 TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888
 TARGET_USERIMAGES_USE_F2FS := true
 
+# Releasetools
+TARGET_RELEASETOOLS_EXTENSIONS := $(DEVICE_PATH)
+
 # Security patch level
 VENDOR_SECURITY_PATCH := 2024-10-01
 

+ 16 - 7
configs/vintf/compatibility_matrix.device.xml

@@ -31,6 +31,7 @@ Changes from Qualcomm Innovation Center are provided under the following license
 Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
 SPDX-License-Identifier: BSD-3-Clause-Clear.
 -->
+
 <compatibility-matrix version="7.0" type="framework">
     <hal format="hidl" optional="true">
         <name>vendor.qti.hardware.scve.panorama</name>
@@ -479,7 +480,7 @@ SPDX-License-Identifier: BSD-3-Clause-Clear.
     </hal>
     <hal format="aidl" optional="true">
         <name>vendor.qti.hardware.radio.ims</name>
-        <version>1-15</version>
+        <version>1-16</version>
         <interface>
             <name>IImsRadio</name>
             <instance>imsradio0</instance>
@@ -559,7 +560,7 @@ SPDX-License-Identifier: BSD-3-Clause-Clear.
     </hal>
     <hal format="aidl" optional="true">
         <name>vendor.qti.hardware.radio.qtiradioconfig</name>
-        <version>1-4</version>
+        <version>1-6</version>
         <interface>
             <name>IQtiRadioConfig</name>
             <instance>default</instance>
@@ -980,7 +981,7 @@ SPDX-License-Identifier: BSD-3-Clause-Clear.
         </interface>
     </hal>
     <!-- Codec2 HAl service -->
-    <!--hal format="hidl" optional="true">
+    <hal format="hidl" optional="true">
         <name>android.hardware.media.c2</name>
         <version>1.0</version>
         <version>1.2</version>
@@ -989,7 +990,7 @@ SPDX-License-Identifier: BSD-3-Clause-Clear.
             <instance>default</instance>
             <instance>software</instance>
         </interface>
-    </hal-->
+    </hal>
     <hal format="hidl" optional="true">
         <name>vendor.qti.hardware.display.allocator</name>
         <version>1.0</version>
@@ -1000,6 +1001,14 @@ SPDX-License-Identifier: BSD-3-Clause-Clear.
             <instance>default</instance>
         </interface>
     </hal>
+    <hal format="aidl" optional="true">
+        <name>android.hardware.graphics.allocator</name>
+        <version>1</version>
+        <interface>
+            <name>IAllocator</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
     <hal format="hidl" optional="true">
         <name>vendor.qti.hardware.display.mapper</name>
         <version>2.0</version>
@@ -1022,14 +1031,14 @@ SPDX-License-Identifier: BSD-3-Clause-Clear.
         </interface>
     </hal>
     <!-- QSPM-HAL hidl service-->
-    <!--<hal format="hidl" optional="true">
+    <hal format="hidl" optional="true">
         <name>vendor.qti.qspmhal</name>
         <version>1.0</version>
         <interface>
             <name>IQspmhal</name>
             <instance>default</instance>
         </interface>
-    </hal>-->
+    </hal>
     <!-- QSPM-HAL aidl service-->
     <hal format="aidl" optional="true">
         <name>vendor.qti.qspmhal</name>
@@ -1359,7 +1368,7 @@ SPDX-License-Identifier: BSD-3-Clause-Clear.
     <hal format="hidl" optional="true">
         <name>vendor.qti.hardware.ListenSoundModel</name>
         <transport>hwbinder</transport>
-        <version>1.0</version>
+        <version>1.0-2</version>
         <interface>
             <name>IListenSoundModel</name>
             <instance>default</instance>

+ 8 - 0
configs/vintf/compatibility_matrix.samsung.xml

@@ -279,4 +279,12 @@ SPDX-License-Identifier: Apache-2.0
             <instance>default</instance>
         </interface>
     </hal>
+    <!--hal format="hidl" optional="true">
+        <name>android.hardware.health</name>
+        <version>2.0-1</version>
+        <interface>
+            <name>IHealth</name>
+            <instance>default</instance>
+        </interface>
+    </hal-->
 </compatibility-matrix>

+ 8 - 0
configs/vintf/compatibility_matrix.xml

@@ -34,6 +34,14 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
             <instance>default</instance>
         </interface>
     </hal>
+    <hal format="hidl" optional="false">
+        <name>android.hidl.allocator</name>
+        <version>1.0</version>
+        <interface>
+            <name>IAllocator</name>
+            <instance>ashmem</instance>
+        </interface>
+    </hal>
     <hal format="hidl" optional="false">
         <name>android.hidl.manager</name>
         <version>1.0</version>

+ 25 - 4
configs/vintf/manifest_pineapple.xml

@@ -78,11 +78,32 @@ SPDX-License-Identifier: BSD-3-Clause-Clear
             <instance>default</instance>
         </interface>
     </hal>
-    <!--    <hal format="aidl">
+    <!-- NFC HAL service -->
+    <!--hal format="aidl">
+        <name>android.hardware.nfc</name>
+        <version>1</version>
+        <fqname>INfc/default</fqname>
+    </hal-->
+    <!--hal format="aidl">
+        <name>vendor.nxp.nxpnfc_aidl</name>
+        <version>1</version>
+        <fqname>INxpNfc/default</fqname>
+    </hal-->
+    <!--hal format="aidl">
         <name>android.hardware.secure_element</name>
         <version>1</version>
         <fqname>ISecureElement/eSE1</fqname>
-    </hal>-->
+    </hal-->
+    <!-- dpm QMI hal service -->
+    <hal format="hidl">
+        <name>com.qualcomm.qti.dpm.api</name>
+        <transport>hwbinder</transport>
+        <version>1.0</version>
+        <interface>
+            <name>IdpmQmi</name>
+            <instance>dpmQmiService</instance>
+        </interface>
+    </hal>
 
     <!-- IMS UCE Service -->
     <hal format="hidl">
@@ -249,7 +270,7 @@ SPDX-License-Identifier: BSD-3-Clause-Clear
             <instance>default</instance>
         </interface>
     </hal>
-    <!--<hal format="aidl" optional="true">
+    <hal format="aidl" optional="true">
         <name>android.hardware.security.keymint</name>
         <version>3</version>
         <fqname>IKeyMintDevice/strongbox</fqname>
@@ -258,5 +279,5 @@ SPDX-License-Identifier: BSD-3-Clause-Clear
         <name>android.hardware.security.keymint</name>
         <version>3</version>
         <fqname>IRemotelyProvisionedComponent/strongbox</fqname>
-    </hal>-->
+    </hal>
 </manifest>

+ 20 - 8
device.mk

@@ -4,23 +4,32 @@
 # SPDX-License-Identifier: Apache-2.0
 #
 
+# Enable project quotas and casefolding for emulated storage without sdcardfs
+$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
+
+# Enforce generic ramdisk allow list
+$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_ramdisk.mk)
+
+# Dalvik
+$(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
+
 # Enable updating of APEXes
 $(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk)
 
+# Add common definitions for Qualcomm
+$(call inherit-product, hardware/qcom-caf/common/common.mk)
+
 # API levels
 PRODUCT_SHIPPING_API_LEVEL := 34
 
+# DebugFS
+PRODUCT_SET_DEBUGFS_RESTRICTIONS := true
+
 # fastbootd
 PRODUCT_PACKAGES += \
     [email protected] \
     fastbootd
 
-# Health
-PRODUCT_PACKAGES += \
-    [email protected] \
-    [email protected] \
-    [email protected]
-
 # Overlays
 PRODUCT_ENFORCE_RRO_TARGETS := *
 
@@ -88,11 +97,14 @@ PRODUCT_PACKAGES += \
     init.recovery.samsung.rc \
 
 PRODUCT_COPY_FILES += \
-    $(LOCAL_PATH)/rootdir/etc/fstab.qcom:$(TARGET_COPY_OUT_RAMDISK)/fstab.qcom
+    $(LOCAL_PATH)/rootdir/etc/fstab.qcom:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.qcom
 
 # Soong namespaces
 PRODUCT_SOONG_NAMESPACES += \
-    $(LOCAL_PATH)
+    $(LOCAL_PATH) \
+    hardware/samsung \
+    kernel/samsung/sm8650 \
+    kernel/samsung/sm8650-modules
 
 # Inherit the proprietary files
 $(call inherit-product, vendor/samsung/e3q/e3q-vendor.mk)

+ 0 - 0
modules/modules.blocklist → modules.blocklist


+ 0 - 0
modules/modules.include.system_dlkm → modules.include.system_dlkm


+ 0 - 0
modules/modules.include.vendor_ramdisk → modules.include.vendor_ramdisk


+ 0 - 0
modules/modules.load → modules.load


+ 0 - 0
modules/modules.load.recovery → modules.load.recovery


+ 0 - 0
modules/modules.load.system_dlkm → modules.load.system_dlkm


+ 0 - 0
modules/modules.load.vendor_boot → modules.load.vendor_boot


+ 1 - 15
proprietary-files.txt

@@ -759,7 +759,6 @@ vendor/lib64/[email protected]
 vendor/lib64/[email protected]
 
 # DRM
-vendor/apex/com.google.android.widevine.nonupdatable.apex
 vendor/bin/hw/android.hardware.drm-service.clearkey
 vendor/etc/init/android.hardware.drm-service.clearkey.rc
 vendor/lib64/mediacas/libclearkeycasplugin.so
@@ -1170,7 +1169,7 @@ vendor/bin/hw/android.hardware.security.keymint-service
 vendor/bin/hw/android.hardware.security.keymint-service-spu-qti
 vendor/etc/init/android.hardware.security.keymint-service-spu-qti.rc
 vendor/etc/init/android.hardware.security.keymint-service.rc
-vendor/etc/vintf/manifest/android.hardware.security.keymint-service-spu-qti.xml
+#vendor/etc/vintf/manifest/android.hardware.security.keymint-service-spu-qti.xml
 vendor/lib64/libcppbor_external.so
 vendor/lib64/libhermes_cred.so
 vendor/lib64/libkeymaster4_1support.so
@@ -1312,9 +1311,6 @@ vendor/bin/hostapd_cli
 vendor/bin/wpa_cli
 vendor/etc/init/android.hardware.wifi-service.rc
 vendor/etc/init/android.hardware.wifi.supplicant-service.rc
-vendor/etc/vintf/manifest/android.hardware.wifi-service.xml
-vendor/etc/vintf/manifest/android.hardware.wifi.hostapd.xml
-vendor/etc/vintf/manifest/android.hardware.wifi.supplicant.xml
 vendor/lib64/libkeystore-engine-wifi-hidl.so
 vendor/lib64/libkeystore-wifi-hidl.so
 vendor/lib64/libpasn.so
@@ -1600,7 +1596,6 @@ vendor/etc/init/init.audio.samsung.rc
 vendor/etc/init/init.embmssl_server.rc
 vendor/etc/init/init.fingerprint.rc
 vendor/etc/init/init.nfc.samsung.rc
-vendor/etc/init/init.qccvendor.rc
 vendor/etc/init/init.qlm-service.rc
 vendor/etc/init/init.qti.fm.rc
 vendor/etc/init/init.qti.media.rc
@@ -1846,17 +1841,13 @@ vendor/etc/vintf/manifest/face-default-sec.xml
 vendor/etc/vintf/manifest/hyper-default-sec.xml
 vendor/etc/vintf/manifest/iweaver_aidl_v2_manifest.xml
 vendor/etc/vintf/manifest/khdm-default-sec.xml
-vendor/etc/vintf/manifest/lights-default-sec.xml
 vendor/etc/vintf/manifest/manifest_non_qmaa.xml
 vendor/etc/vintf/manifest/manifest_non_qmaa_extn.xml
 vendor/etc/vintf/manifest/memtrack_qti.xml
 vendor/etc/vintf/manifest/mpos-default-sec.xml
-vendor/etc/vintf/manifest/mppserver.xml
-vendor/etc/vintf/manifest/nfc-service-nxp.xml
 vendor/etc/vintf/manifest/power-samsung.xml
 vendor/etc/vintf/manifest/qms-saidl.xml
 vendor/etc/vintf/manifest/sec_c2_manifest_default0_1_2.xml
-vendor/etc/vintf/manifest/secure_element-service-nxp.xml
 vendor/etc/vintf/manifest/vendor.qti.camera.aon-impl.xml
 vendor/etc/vintf/manifest/vendor.qti.camera.offlinecamera-impl.xml
 vendor/etc/vintf/manifest/vendor.qti.camera.postproc-impl.xml
@@ -1867,13 +1858,11 @@ vendor/etc/vintf/manifest/vendor.samsung.hardware.authfw-manifest.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.biometrics.fingerprint-service.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.camera.provider-service.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.frcmc-service.xml
-vendor/etc/vintf/manifest/vendor.samsung.hardware.health-service.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.radio.exclude.qcom.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.radio_manifest_2_34.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.security.engmode-manifest.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.security.fkeymaster-service.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.security.hdcp.keyprovisioning-default.xml
-vendor/etc/vintf/manifest/vendor.samsung.hardware.security.hdcp.wifidisplay-default.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.security.hermes.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.security.rtts-manifest.xml
 vendor/etc/vintf/manifest/[email protected]
@@ -1882,8 +1871,6 @@ vendor/etc/vintf/manifest/vendor.samsung.hardware.security.vaultkeeper-manifest.
 vendor/etc/vintf/manifest/vendor.samsung.hardware.security.widevine.keyprov-service.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.security.wsm.service-manifest.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.sehradio_manifest_2_34.xml
-vendor/etc/vintf/manifest/vendor.samsung.hardware.snap-default.xml
-vendor/etc/vintf/manifest/vendor.samsung.hardware.sysinput-default.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.thermal-default.xml
 vendor/etc/vintf/manifest/vendor.samsung.hardware.tlc.ddar-default.xml
 vendor/etc/vintf/manifest/[email protected]
@@ -1927,7 +1914,6 @@ vendor/etc/libuwb-countrycode.conf
 vendor/etc/libuwb-feature.conf
 vendor/etc/libuwb-nxp.conf
 vendor/etc/libuwb-uci.conf
-vendor/etc/linker.config.pb
 vendor/etc/mem_logger_config.xml
 vendor/etc/mercury.json
 vendor/etc/mercury_hv.json

+ 44 - 0
releasetools.py

@@ -0,0 +1,44 @@
+# Copyright (C) 2009 The Android Open Source Project
+# Copyright (c) 2011, The Linux Foundation. All rights reserved.
+# Copyright (C) 2017-2018 The LineageOS Project
+#
+# 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.
+
+import common
+import re
+
+def FullOTA_InstallEnd(info):
+  OTA_InstallEnd(info)
+  return
+
+def IncrementalOTA_InstallEnd(info):
+  OTA_InstallEnd(info)
+  return
+
+def AddImage(info, basename, dest):
+  path = "IMAGES/" + basename
+  if path not in info.input_zip.namelist():
+    return
+
+  data = info.input_zip.read(path)
+  common.ZipWriteStr(info.output_zip, basename, data)
+  info.script.AppendExtra('package_extract_file("%s", "%s");' % (basename, dest))
+
+def OTA_InstallEnd(info):
+  info.script.Print("Patching firmware images...")
+  AddImage(info, "dtbo.img", "/dev/block/bootdevice/by-name/dtbo")
+  AddImage(info, "init_boot.img", "/dev/block/bootdevice/by-name/init_boot")
+  AddImage(info, "vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta")
+  AddImage(info, "vbmeta_system.img", "/dev/block/bootdevice/by-name/vbmeta_system")
+  AddImage(info, "vendor_boot.img", "/dev/block/bootdevice/by-name/vendor_boot")
+  return

+ 2 - 0
rootdir/etc/fstab.qcom

@@ -52,6 +52,8 @@ odm                                                     /odm                   e
 /dev/block/bootdevice/by-name/efs                       /mnt/vendor/efs        ext4    noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic      wait,check
 /dev/block/bootdevice/by-name/sec_efs                   /efs                   ext4    noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic      wait,check
 /dev/block/bootdevice/by-name/dsp                       /vendor/dsp            ext4    ro,nosuid,nodev,barrier=1                          wait
+/dev/block/bootdevice/by-name/recovery                  /recovery              emmc    defaults                                           defaults,first_stage_mount
+/dev/block/bootdevice/by-name/boot                      /boot                  emmc    defaults                                           defaults,first_stage_mount
 /dev/block/bootdevice/by-name/vendor_boot               /vendor_boot           emmc    defaults                                           defaults,first_stage_mount
 /dev/block/bootdevice/by-name/init_boot                 /init_boot             emmc    defaults                                           defaults,first_stage_mount
 /dev/block/bootdevice/by-name/vm-bootsys                /product/vm-system     ext4    ro,nosuid,nodev,barrier=1                          defaults

+ 0 - 7
rootdir/etc/init.e3q.rc

@@ -38,13 +38,6 @@ on post-fs
 on late-fs
 
 on post-fs-data
-# Samsung Pay
-    mkdir /efs/pfw_data 0760 vendor_spay vendor_spay
-
-# MST/NFC Switch
-    chown vendor_spay system /dev/mst_ctrl
-    chmod 0660 /dev/mst_ctrl
-    
 #mAFPC
     mkdir /efs/afc 0760 system system
     exec - system system -- /system/bin/mafpc_write

+ 0 - 8
rootdir/etc/init.samsung.rc

@@ -114,11 +114,3 @@ service factory_ssc /vendor/bin/factory.ssc
 
 on property:sys.boot_completed=1
     setprop ro.factory.sensor.delay.init 1
-
-on property:sys.dexopt.ctrl=true
-    setprop dalvik.vm.dex2oat-cpu-set "0,1,5,6"
-    setprop dalvik.vm.dex2oat-threads 4
-
-on property:sys.dexopt.ctrl=false
-    setprop dalvik.vm.dex2oat-cpu-set ""
-    set_dex2oat_threads ctrl