From 0fa077a4808110c41d393ab156a708b813a84daf Mon Sep 17 00:00:00 2001 From: Ivan Grinko Date: Mon, 14 Sep 2015 11:30:25 +0300 Subject: [PATCH 01/10] pyramid:audio: Set build flags --- BoardConfig.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/BoardConfig.mk b/BoardConfig.mk index edad6da4..d4d1214a 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -60,6 +60,9 @@ BOARD_USES_QCOM_HARDWARE := true # Audio COMMON_GLOBAL_CFLAGS += -DHTC_ACOUSTIC_AUDIO -DLEGACY_QCOM_VOICE BOARD_USES_LEGACY_ALSA_AUDIO := true +AUDIO_FEATURE_ENABLED_COMPRESS_VOIP := false +AUDIO_FEATURE_ENABLED_PROXY_DEVICE := false +AUDIO_FEATURE_ENABLED_INCALL_MUSIC := true # Camera BOARD_NEEDS_MEMORYHEAPPMEM := true From 18d71efe0c8699d9f61c47506a29d0eae77144a2 Mon Sep 17 00:00:00 2001 From: Ivan Grinko Date: Mon, 14 Sep 2015 14:29:48 +0300 Subject: [PATCH 02/10] Revert "pyramid: Drop audio_policy" This reverts commit c05c2717a127bcb932d74d324aa0b3c93a14e351. --- device_pyramid.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/device_pyramid.mk b/device_pyramid.mk index 898f641e..b187776b 100644 --- a/device_pyramid.mk +++ b/device_pyramid.mk @@ -48,6 +48,7 @@ PRODUCT_PACKAGES += \ audio.a2dp.default \ audio.r_submix.default \ audio.usb.default \ + audio_policy.msm8660 \ audio.primary.msm8660 \ libaudioutils \ libdashplayer \ From 43995e5aaefc9ee37b3f9db2a3a3f8b7a6cd3ce8 Mon Sep 17 00:00:00 2001 From: Ivan Grinko Date: Mon, 14 Sep 2015 20:13:30 +0300 Subject: [PATCH 03/10] pyramid: audio: Use audio_policy.conf from audio repo --- configs/audio_policy.conf | 97 --------------------------------------- device_pyramid.mk | 5 +- 2 files changed, 1 insertion(+), 101 deletions(-) delete mode 100644 configs/audio_policy.conf diff --git a/configs/audio_policy.conf b/configs/audio_policy.conf deleted file mode 100644 index 9078769b..00000000 --- a/configs/audio_policy.conf +++ /dev/null @@ -1,97 +0,0 @@ -# Global configuration section: lists input and output devices always present on the device -# as well as the output device selected by default. -# Devices are designated by a string that corresponds to the enum in audio.h - -global_configuration { - attached_output_devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE - default_output_device AUDIO_DEVICE_OUT_SPEAKER - attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_COMMUNICATION -} - -# audio hardware module section: contains descriptors for all audio hw modules present on the -# device. Each hw module node is named after the corresponding hw module library base name. -# For instance, "primary" corresponds to audio.primary..so. -# The "primary" module is mandatory and must include at least one output with -# AUDIO_OUTPUT_FLAG_PRIMARY flag. -# Each module descriptor contains one or more output profile descriptors and zero or more -# input profile descriptors. Each profile lists all the parameters supported by a given output -# or input stream category. -# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding -# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n". - -audio_hw_modules { - primary { - outputs { - hdmi { - sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000 - channel_masks dynamic - formats AUDIO_FORMAT_PCM_16_BIT - devices AUDIO_DEVICE_OUT_AUX_DIGITAL - flags AUDIO_OUTPUT_FLAG_DIRECT - } - primary { - sampling_rates 44100|48000 - channel_masks AUDIO_CHANNEL_OUT_STEREO - formats AUDIO_FORMAT_PCM_16_BIT - devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_PROXY|AUDIO_DEVICE_OUT_FM|AUDIO_DEVICE_OUT_FM_TX|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_USB_ACCESSORY - flags AUDIO_OUTPUT_FLAG_PRIMARY - } - lpa { - sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000 - channel_masks AUDIO_CHANNEL_OUT_STEREO|AUDIO_CHANNEL_OUT_MONO - formats AUDIO_FORMAT_PCM_16_BIT - devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_PROXY|AUDIO_DEVICE_OUT_FM_TX|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_USB_ACCESSORY - flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_LPA - } - tunnel { - sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000 - channel_masks AUDIO_CHANNEL_OUT_STEREO|AUDIO_CHANNEL_OUT_MONO - formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2|AUDIO_FORMAT_AMR_WB|AUDIO_FORMAT_AMR_WB_PLUS - devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_PROXY|AUDIO_DEVICE_OUT_FM_TX|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_USB_ACCESSORY - flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_TUNNEL - } - } - inputs { - primary { - sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000 - channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO|AUDIO_CHANNEL_IN_VOICE_CALL_MONO|AUDIO_CHANNEL_IN_VOICE_DNLINK_MONO|AUDIO_CHANNEL_IN_VOICE_UPLINK_MONO - formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_AMR_WB - devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_AUX_DIGITAL|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_PROXY|AUDIO_DEVICE_IN_FM_RX|AUDIO_DEVICE_IN_FM_RX_A2DP|AUDIO_DEVICE_IN_USB_DEVICE|AUDIO_DEVICE_IN_COMMUNICATION - } - voip_tx { - sampling_rates 8000|16000 - channel_masks AUDIO_CHANNEL_IN_MONO - formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_AMR_NB|AUDIO_FORMAT_AMR_WB|AUDIO_FORMAT_QCELP|AUDIO_FORMAT_EVRC|AUDIO_FORMAT_EVRCB|AUDIO_FORMAT_EVRCWB - devices AUDIO_DEVICE_IN_COMMUNICATION - } - } - } - a2dp { - outputs { - a2dp { - sampling_rates 44100 - channel_masks AUDIO_CHANNEL_OUT_STEREO - formats AUDIO_FORMAT_PCM_16_BIT - devices AUDIO_DEVICE_OUT_ALL_A2DP - } - } - } - r_submix { - outputs { - submix { - sampling_rates 48000 - channel_masks AUDIO_CHANNEL_OUT_STEREO - formats AUDIO_FORMAT_PCM_16_BIT - devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX - } - } - inputs { - submix { - sampling_rates 48000 - channel_masks AUDIO_CHANNEL_IN_STEREO - formats AUDIO_FORMAT_PCM_16_BIT - devices AUDIO_DEVICE_IN_REMOTE_SUBMIX - } - } - } -} diff --git a/device_pyramid.mk b/device_pyramid.mk index b187776b..51d79328 100644 --- a/device_pyramid.mk +++ b/device_pyramid.mk @@ -50,6 +50,7 @@ PRODUCT_PACKAGES += \ audio.usb.default \ audio_policy.msm8660 \ audio.primary.msm8660 \ + audio_policy.conf \ libaudioutils \ libdashplayer \ libaudio-resampler @@ -124,10 +125,6 @@ PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \ bt_vendor.conf -# Audio policy configuration -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/audio_policy.conf:system/etc/audio_policy.conf - # Media configuration PRODUCT_COPY_FILES += \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \ From 3e3b7bfcb4d05cf411eeddb749780a9f4ac1831d Mon Sep 17 00:00:00 2001 From: Ivan Grinko Date: Fri, 18 Sep 2015 00:23:51 +0300 Subject: [PATCH 04/10] pyramid: Use BFQ --- system_prop.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/system_prop.mk b/system_prop.mk index f658125f..2f60bdb3 100644 --- a/system_prop.mk +++ b/system_prop.mk @@ -46,3 +46,7 @@ PRODUCT_PROPERTY_OVERRIDES += \ # USB-OTG persist.sys.isUsbOtgEnabled=true + +# Scheduler +PRODUCT_PROPERTY_OVERRIDES += \ + sys.io.scheduler=bfq From ea6b2346622b6de651363d6b59181ca39141d549 Mon Sep 17 00:00:00 2001 From: Ivan Grinko Date: Fri, 18 Sep 2015 14:25:27 +0300 Subject: [PATCH 05/10] pyramid: Provide global HTC symbols via libc Parts of this commit originated in: Add HTC Logging functions to support newer HTC props. Richard Ross I70d0a6878dddf0f41d96735febda82c93496d8ec --- BoardConfig.mk | 4 +++- libc_htc_symbols/Android.mk | 25 +++++++++++++++++++++++++ libc_htc_symbols/htc_log.c | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 libc_htc_symbols/Android.mk create mode 100644 libc_htc_symbols/htc_log.c diff --git a/BoardConfig.mk b/BoardConfig.mk index d4d1214a..d6b9417b 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -46,9 +46,11 @@ TARGET_CPU_VARIANT := scorpion ARCH_ARM_HAVE_TLS_REGISTER := true TARGET_NEEDS_NON_PIE_SUPPORT := true +# Libc extensions +BOARD_PROVIDES_ADDITIONAL_BIONIC_STATIC_LIBS += libc_htc_symbols + # Flags COMMON_GLOBAL_CFLAGS += -DQCOM_HARDWARE -COMMON_GLOBAL_CFLAGS += -DHTCLOG COMMON_GLOBAL_CFLAGS += -DQCOM_BSP # Fonts diff --git a/libc_htc_symbols/Android.mk b/libc_htc_symbols/Android.mk new file mode 100644 index 00000000..d12f51ce --- /dev/null +++ b/libc_htc_symbols/Android.mk @@ -0,0 +1,25 @@ +# Copyright (C) 2015 The CyanogenMod 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. + +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := \ + htc_log.c + +LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES) +LOCAL_MODULE := libc_htc_symbols +LOCAL_MODULE_TAGS := optional + +include $(BUILD_STATIC_LIBRARY) diff --git a/libc_htc_symbols/htc_log.c b/libc_htc_symbols/htc_log.c new file mode 100644 index 00000000..e5f46c66 --- /dev/null +++ b/libc_htc_symbols/htc_log.c @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2015 The CyanogenMod 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. + */ + +#ifndef __unused +#define __unused __attribute__((__unused__)) +#endif + +signed int __htclog_read_masks(char *buf __unused, signed int len __unused) +{ + return 0; +} + +int __htclog_init_mask(const char *a1 __unused, unsigned int a2 __unused, int a3 __unused) +{ + return 0; +} + +int __htclog_print_private(int a1 __unused, const char *a2 __unused, const char *fmt __unused, ...) +{ + return 0; +} From 8485455858ace7058d060fd403e1bc87e2494c36 Mon Sep 17 00:00:00 2001 From: Ivan Grinko Date: Sun, 20 Sep 2015 17:00:24 +0300 Subject: [PATCH 06/10] msm8660: build ebtables and ethertypes --- device_pyramid.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/device_pyramid.mk b/device_pyramid.mk index 51d79328..281e0e0b 100644 --- a/device_pyramid.mk +++ b/device_pyramid.mk @@ -108,6 +108,11 @@ PRODUCT_PACKAGES += \ make_ext4fs \ setup_fs +# IPv6 tethering +PRODUCT_PACKAGES += \ + ebtables \ + ethertypes + # Net PRODUCT_PACKAGES += \ libnetcmdiface \ From 3bd45ecd73f899b6bc0a95b3cca8ae5d38b17460 Mon Sep 17 00:00:00 2001 From: Ivan Grinko Date: Mon, 21 Sep 2015 12:23:14 +0300 Subject: [PATCH 07/10] pyramid: Don't set I/O scheduler in this way * Can be set in props via sys.io.scheduler --- rootdir/etc/init.pyramid.rc | 5 ----- 1 file changed, 5 deletions(-) diff --git a/rootdir/etc/init.pyramid.rc b/rootdir/etc/init.pyramid.rc index 64a68273..0f515315 100755 --- a/rootdir/etc/init.pyramid.rc +++ b/rootdir/etc/init.pyramid.rc @@ -2,8 +2,6 @@ import init.pyramid.usb.rc on early-init write /sys/devices/system/cpu/cpu1/online 1 - write /sys/block/mmcblk0/bdi/read_ahead_kb 512 - write /sys/block/mmcblk0/queue/scheduler noop # ZRAM write /sys/block/zram0/comp_algorithm lz4 @@ -328,9 +326,6 @@ on property:sys.boot_completed=1 write /sys/keyboard/vol_wakeup 1 start thermald -on property:init.svc.bootanim=stopped - write /sys/block/mmcblk0/queue/scheduler fiops - on property:sys.radio.shutdown=true exec /system/bin/sh /system/etc/init.qcom.efs.sync.sh From 5b9b4a9cf3807b64b985216c1173117838bfbb31 Mon Sep 17 00:00:00 2001 From: "Eugene San (eugenesan)" Date: Fri, 4 Sep 2015 09:17:59 -0400 Subject: [PATCH 08/10] Switch to nexus style mode completely v1 Use Nexus style data layout, allow data components on external sdcard and some optimizations and cleanups Use internal data as in Nexus devices (sdcard0 is emulated) and external sdcard now called sdcard1. Optional second partition of external sdcard (data1) can be used to store selected data components such as: app, data, media and dalvik-cache. To do so, one must create a folder with a name of the component/s on data1. We register sdcard1 as secondary storage allowing built-in asec mechanism to be used to move apps to it. Also: * Add misc recovery related settings and coresponding changes to TWRP in order to support above. * Modify recovery to backup of emulated internal sdcard and apps in asac container. * Remove duplicated default init.rc code * Optimize storage, use cache as secondary swap and reuse devlog as cache To summarize, this patch allows user to encrypt device including sdcard0, place selected data components on external sdcard and hopefuly provides better performance. Change-Id: Ib52086347eb1f8fc9fd11031428f2c49bdda9afb --- BoardConfig.mk | 15 ++-- device_pyramid.mk | 1 + .../base/core/res/res/xml/storage_list.xml | 45 +++++------ recovery.fstab | 15 ++-- recovery/root/etc/twrp.fstab | 21 +++-- recovery/root/init.recovery.pyramid.rc | 12 --- rootdir/Android.mk | 8 ++ rootdir/etc/fstab.pyramid | 39 ++++----- rootdir/etc/init.pyramid.rc | 81 +++++++++++-------- rootdir/etc/init.pyramid.sh | 38 +++++++++ rootdir/etc/remount.pyramid | 4 +- system_prop.mk | 20 ++--- 12 files changed, 175 insertions(+), 124 deletions(-) mode change 100755 => 100644 rootdir/etc/fstab.pyramid create mode 100755 rootdir/etc/init.pyramid.sh mode change 100755 => 100644 rootdir/etc/remount.pyramid diff --git a/BoardConfig.mk b/BoardConfig.mk index d6b9417b..8d9101fb 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -29,7 +29,6 @@ TARGET_SPECIFIC_HEADER_PATH := $(LOCAL_PATH)/include BOARD_VENDOR := htc - # Bootloader TARGET_NO_BOOTLOADER := true @@ -84,7 +83,6 @@ AUDIO_FEATURE_ENABLED_FM := true TARGET_GPS_HAL_PATH := $(LOCAL_PATH)/gps BOARD_VENDOR_QCOM_GPS_LOC_API_AMSS_VERSION := 50000 - # Graphics USE_OPENGL_RENDERER := true TARGET_DISPLAY_USE_RETIRE_FENCE := true @@ -92,6 +90,7 @@ TARGET_USES_C2D_COMPOSITION := true TARGET_USES_ION := true NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3 TARGET_DISPLAY_INSECURE_MM_HEAP := true +DEVICE_RESOLUTION := 540x960 # Media TARGET_NO_ADAPTIVE_PLAYBACK := true @@ -117,11 +116,14 @@ BOARD_MKBOOTIMG_ARGS := --ramdisk_offset 0x01400000 TARGET_KERNEL_CONFIG := pyramid_defconfig TARGET_KERNEL_SOURCE := kernel/htc/pyramid +# Recovery +TARGET_RECOVERY_DEVICE_MODULES += chargeled TARGET_RECOVERY_FSTAB := device/htc/pyramid/rootdir/etc/fstab.pyramid RECOVERY_FSTAB_VERSION := 2 TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888" RECOVERY_GRAPHICS_USE_LINELENGTH := true TARGET_RECOVERY_DEVICE_DIRS += device/htc/pyramid +RECOVERY_SDCARD_ON_DATA := true # Required for Sensors COMMON_GLOBAL_CFLAGS += -DNEEDS_VECTORIMPL_SYMBOLS @@ -153,9 +155,6 @@ BOARD_SUPPRESS_EMMC_WIPE := true # Use dlmalloc MALLOC_IMPL := dlmalloc -# Recovery -TARGET_RECOVERY_DEVICE_MODULES += chargeled - # SELinux -include device/qcom/sepolicy/sepolicy.mk @@ -178,7 +177,7 @@ BOARD_SYSTEMIMAGE_PARTITION_SIZE := 838859776 BOARD_USERDATAIMAGE_PARTITION_SIZE := 1252770816 BOARD_FLASH_BLOCK_SIZE := 262144 -# Twrp +# TWRP TW_THEME := portrait_mdpi TW_INCLUDE_CRYPTO := true TW_NO_SCREEN_BLANK := true @@ -189,3 +188,7 @@ TW_NEW_ION_HEAP := true TW_INCLUDE_NTFS_3G := true TW_BRIGHTNESS_PATH := "/sys/class/leds/lcd-backlight/brightness" TARGET_USE_CUSTOM_LUN_FILE_PATH := "/sys/devices/platform/msm_hsusb/gadget/lun0/file" +TW_BACKUP_DATA_MEDIA := true +TW_INTERNAL_STORAGE_PATH := /sdcard +TW_EXTERNAL_STORAGE_PATH := /sdcard1 +TW_INCLUDE_L_CRYPTO := true diff --git a/device_pyramid.mk b/device_pyramid.mk index 281e0e0b..319a2445 100644 --- a/device_pyramid.mk +++ b/device_pyramid.mk @@ -156,6 +156,7 @@ DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay # Ramdisk PRODUCT_PACKAGES += \ fstab.pyramid \ + init.pyramid.sh \ init.pyramid.rc \ init.pyramid.usb.rc \ ueventd.pyramid.rc \ diff --git a/overlay/frameworks/base/core/res/res/xml/storage_list.xml b/overlay/frameworks/base/core/res/res/xml/storage_list.xml index 208b2c3f..92249ddf 100644 --- a/overlay/frameworks/base/core/res/res/xml/storage_list.xml +++ b/overlay/frameworks/base/core/res/res/xml/storage_list.xml @@ -1,7 +1,7 @@ - + - - - + + + + + + diff --git a/recovery.fstab b/recovery.fstab index 780f9a78..bf1959e1 100644 --- a/recovery.fstab +++ b/recovery.fstab @@ -1,10 +1,11 @@ -# mount point fstype device [device2] [length=] +# mount point fstype device [device2] [length=] -/recovery emmc /dev/block/mmcblk0p21 -/boot emmc /dev/block/mmcblk0p20 -/cache ext4 /dev/block/mmcblk0p24 -/data ext4 /dev/block/mmcblk0p23 length=-16384 -/sd-ext ext4 /dev/block/mmcblk1p2 -/sdcard vfat /dev/block/mmcblk1p1 +/boot emmc /dev/block/mmcblk0p20 +/recovery emmc /dev/block/mmcblk0p21 /system ext4 /dev/block/mmcblk0p22 +/data f2fs /dev/block/mmcblk0p23 length=-16384 +/cache f2fs /dev/block/mmcblk0p24 /misc emmc /dev/block/mmcblk0p31 +/sdcard1 vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="sdcard1";storage;wipeingui;removable +/data1 f2fs /dev/block/mmcblk1p2 /dev/block/mmcblk1 flags=display="data1";wipeingui;removable +/usbdisk vfat /dev/block/sda1 /dev/block/sda flags=display="usbdisk";storage;wipeingui;removable diff --git a/recovery/root/etc/twrp.fstab b/recovery/root/etc/twrp.fstab index 82a48d70..20614abe 100644 --- a/recovery/root/etc/twrp.fstab +++ b/recovery/root/etc/twrp.fstab @@ -1,12 +1,11 @@ -# mount point fstype device [device2] [length=] - -/boot emmc /dev/block/mmcblk0p20 -/recovery emmc /dev/block/mmcblk0p21 -/system ext4 /dev/block/mmcblk0p22 -/data ext4 /dev/block/mmcblk0p23 length=-16384 -/cache ext4 /dev/block/mmcblk0p24 -/misc emmc /dev/block/mmcblk0p31 -/sdcard vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="MicroSD card";storage;wipeingui;removable -/sd-ext ext4 /dev/block/mmcblk1p2 flags=display="SD-Ext";wipeingui;removable -#/usb-otg vfat /dev/block/sda1 /dev/block/sda flags=display="USB OTG";storage;wipeingui;removable +# mount point fstype device [device2] [length=] +/boot emmc /dev/block/mmcblk0p20 +/recovery emmc /dev/block/mmcblk0p21 +/system ext4 /dev/block/mmcblk0p22 +/data f2fs /dev/block/mmcblk0p23 length=-16384 +/cache f2fs /dev/block/mmcblk0p28 +/misc emmc /dev/block/mmcblk0p31 +/sdcard1 vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="sdcard1";andsec;storage;wipeingui;removable +/data1 f2fs /dev/block/mmcblk1p2 /dev/block/mmcblk1 flags=display="data1";wipeingui;removable +/usb-otg vfat /dev/block/sda1 /dev/block/sda flags=display="usb-otg";storage;wipeingui;removable diff --git a/recovery/root/init.recovery.pyramid.rc b/recovery/root/init.recovery.pyramid.rc index 0424624c..824bd8be 100755 --- a/recovery/root/init.recovery.pyramid.rc +++ b/recovery/root/init.recovery.pyramid.rc @@ -56,15 +56,3 @@ service power_test /sbin/power_test disabled oneshot seclabel u:r:recovery:s0 - -# Always start adbd on userdebug and eng builds -on property:ro.debuggable=1 - #write /sys/class/android_usb/android0/enable 1 - #start adbd - setprop service.adb.root 1 - -# Restart adbd so it can run as root -on property:service.adb.root=1 - write /sys/class/android_usb/android0/enable 0 - restart adbd - write /sys/class/android_usb/android0/enable 1 diff --git a/rootdir/Android.mk b/rootdir/Android.mk index 346808f8..6b6a7c06 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -8,6 +8,14 @@ LOCAL_SRC_FILES := etc/fstab.pyramid LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) include $(BUILD_PREBUILT) +include $(CLEAR_VARS) +LOCAL_MODULE := init.pyramid.sh +LOCAL_MODULE_TAGS := optional eng +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.pyramid.sh +LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) +include $(BUILD_PREBUILT) + include $(CLEAR_VARS) LOCAL_MODULE := init.pyramid.rc LOCAL_MODULE_TAGS := optional eng diff --git a/rootdir/etc/fstab.pyramid b/rootdir/etc/fstab.pyramid old mode 100755 new mode 100644 index dd914230..a955c971 --- a/rootdir/etc/fstab.pyramid +++ b/rootdir/etc/fstab.pyramid @@ -1,25 +1,28 @@ # Android fstab file. -# -#/dev/block/platform/msm_sdcc.1/by-name/dsps /firmware_dsps vfat ro,shortname=lower wait -/dev/block/platform/msm_sdcc.1/by-name/radio /firmware_radio vfat ro,shortname=lower,context=u:object_r:firmware_file:s0 wait -/dev/block/platform/msm_sdcc.1/by-name/adsp /firmware_q6 vfat ro,shortname=lower,context=u:object_r:firmware_file:s0 wait -#/dev/block/platform/msm_sdcc.1/by-name/wcnss /firmware_wcnss vfat ro,shortname=lower wait - -/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults defaults -/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults defaults -/dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults -/dev/block/platform/msm_sdcc.1/by-name/devlog /devlog ext4 noatime,nosuid,nodev,barrier=0 wait -/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 rw,noatime,barrier=0 wait -/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=0 wait -/dev/block/platform/msm_sdcc.1/by-name/cache /cache f2fs rw,discard,nosuid,nodev,noatime,nodiratime,inline_xattr wait,check -/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 noatime,nosuid,nodev,noauto_da_alloc,barrier=0 wait,encryptable=footer,length=-16384 -/dev/block/platform/msm_sdcc.1/by-name/userdata /data f2fs rw,discard,nosuid,nodev,noatime,nodiratime,inline_xattr wait,check,encryptable=footer,length=-16384 +# +#/dev/block/platform/msm_sdcc.1/by-name/dsps /firmware_dsps vfat ro,shortname=lower wait +/dev/block/platform/msm_sdcc.1/by-name/radio /firmware_radio vfat ro,shortname=lower,context=u:object_r:firmware_file:s0 wait +/dev/block/platform/msm_sdcc.1/by-name/adsp /firmware_q6 vfat ro,shortname=lower,context=u:object_r:firmware_file:s0 wait +#/dev/block/platform/msm_sdcc.1/by-name/wcnss /firmware_wcnss vfat ro,shortname=lower wait +/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/devlog /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic wait,check +/dev/block/platform/msm_sdcc.1/by-name/devlog /cache f2fs rw,discard,nosuid,nodev,noatime,nodiratime,inline_xattr wait,check +/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,noatime,barrier=1 wait +/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic wait,check,encryptable=footer,length=-16384 +/dev/block/platform/msm_sdcc.1/by-name/userdata /data f2fs noatime,nodiratime,nosuid,nodev,inline_xattr,discard,rw wait,check,encryptable=footer,length=-16384 +/dev/block/platform/msm_sdcc.3/by-num/p2 /data1 ext4 noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic wait,check +/dev/block/platform/msm_sdcc.3/by-num/p2 /data1 f2fs noatime,nodiratime,nosuid,nodev,inline_xattr,discard,rw wait,check # SD card -/devices/platform/msm_sdcc.3/mmc_host/mmc1* auto vfat defaults voldmanaged=sdcard0:auto,noemulatedsd +/devices/platform/msm_sdcc.3/mmc_host/mmc1* auto vfat defaults voldmanaged=sdcard1:auto,noemulatedsd # USB storage -/devices/platform/msm_hsusb_host.0/usb1* auto auto defaults voldmanaged=usbdisk:auto +d* auto auto defaults voldmanaged=usbdisk:auto,noemulatedsd # ZRAM -/dev/block/zram0 none swap defaults zramsize=268435456 +/dev/block/zram0 none swap defaults zramsize=134217728 + +# Cache as secondary swap +/dev/block/platform/msm_sdcc.1/by-name/cache none swap defaults defaults diff --git a/rootdir/etc/init.pyramid.rc b/rootdir/etc/init.pyramid.rc index 0f515315..82e7a556 100755 --- a/rootdir/etc/init.pyramid.rc +++ b/rootdir/etc/init.pyramid.rc @@ -3,23 +3,34 @@ import init.pyramid.usb.rc on early-init write /sys/devices/system/cpu/cpu1/online 1 - # ZRAM - write /sys/block/zram0/comp_algorithm lz4 - write /sys/block/zram0/max_comp_streams 2 + # ZRAM + write /sys/block/zram0/comp_algorithm lz4 + write /sys/block/zram0/max_comp_streams 2 on init mkdir /devlog 0700 root root - mkdir /mnt/media_rw/sdcard0 0700 media_rw media_rw - mkdir /mnt/media_rw/usbdisk 0700 media_rw media_rw - mkdir /storage/sdcard0 0700 root root - mkdir /storage/usbdisk 0700 root root + # See storage config details at http://source.android.com/tech/storage/ + mkdir /mnt/shell/emulated 0700 shell shell + mkdir /storage/emulated 0555 root root - # for backwards compatibility - symlink /storage/sdcard0 /sdcard - symlink /storage/sdcard0 /mnt/sdcard - symlink /storage/usbdisk /usbdisk - symlink /storage/usbdisk /mnt/usbdisk + export EXTERNAL_STORAGE /storage/emulated/legacy + export EMULATED_STORAGE_SOURCE /mnt/shell/emulated + export EMULATED_STORAGE_TARGET /storage/emulated + + # Secondary storage + mkdir /mnt/media_rw/sdcard1 0700 media_rw media_rw + mkdir /storage/sdcard1 0700 root root + export SECONDARY_STORAGE /storage/sdcard1 + + # Secondary data (optional) + mkdir /data1 0771 root root + + # Support legacy paths + symlink /storage/emulated/legacy /sdcard + symlink /storage/emulated/legacy /mnt/sdcard + symlink /storage/emulated/legacy /storage/sdcard0 + symlink /mnt/shell/emulated/0 /storage/emulated/legacy setprop ro.usb.idproduct.ums 0c86 setprop ro.usb.idproduct.rndis 0c86 @@ -27,17 +38,16 @@ on init setprop ro.usb.idproduct.mtp_adb 0f87 setprop ro.usb.idproduct.ptp 0f87 - export EXTERNAL_STORAGE /storage/sdcard0 - export SECONDARY_STORAGE /storage/usbdisk - on fs - # create firmware mount points mkdir /firmware_radio 0771 system system mkdir /firmware_q6 0771 system system # mount all mmc partitions mount_all /fstab.pyramid + # init and enable swap partitions (zram and cache) + mkswap /dev/block/platform/msm_sdcc.1/by-name/cache swapon_all /fstab.pyramid + write /proc/sys/vm/swappiness 60 mkdir /data/tombstones 0771 system system symlink /data/tombstones /tombstones @@ -49,13 +59,17 @@ on fs chmod 0644 /proc/cmdline setprop ro.crypto.tmpfs_options size=128m,mode=0771,uid=1000,gid=1000 + setprop ro.crypto.fuse_sdcard true # Force loading of modem and Q6 images write /dev/smd_pkt_loopback 1 - # link widevine drm library path + # link widevine drm library path symlink /system/vendor/lib /vendor/lib + # run device's script + exec /init.pyramid.sh + mount_all /remount.pyramid on post-fs-data @@ -63,6 +77,8 @@ on post-fs-data chown root root /devlog chmod 0700 /devlog + mkdir /data/media 0770 media_rw media_rw + # Set indication (checked by vold) that we have finished this action setprop vold.post_fs_data_done 1 @@ -249,29 +265,29 @@ service dhcpcd_wlan0 /system/bin/dhcpcd -ABKL oneshot service dhcpcd_p2p /system/bin/dhcpcd -aABKL - disabled - oneshot + disabled + oneshot service dhcpcd_bt-pan /system/bin/dhcpcd -ABKL - disabled - oneshot + disabled + oneshot service iprenew_bt-pan /system/bin/dhcpcd -n - disabled - oneshot + disabled + oneshot service iprenew_wlan0 /system/bin/dhcpcd -n - disabled - oneshot -# wifi-- + disabled + oneshot -service fuse_sdcard0 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/sdcard0 /storage/sdcard0 - class late_start - disabled +# external sdcard daemon running as media_rw (1023) +service fuse_sdcard1 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/sdcard1 /storage/sdcard1 + class late_start + disabled -service fuse_usbdisk /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/usbdisk /storage/usbdisk - class late_start - disabled +# virtual sdcard daemon running as media_rw (1023) +service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated + class late_start on property:init.svc.bootanim=stopped start qcom-post-boot @@ -328,4 +344,3 @@ on property:sys.boot_completed=1 on property:sys.radio.shutdown=true exec /system/bin/sh /system/etc/init.qcom.efs.sync.sh - diff --git a/rootdir/etc/init.pyramid.sh b/rootdir/etc/init.pyramid.sh new file mode 100755 index 00000000..127ef985 --- /dev/null +++ b/rootdir/etc/init.pyramid.sh @@ -0,0 +1,38 @@ +#!/system/bin/sh + +export PATH=${PATH}:/system/bin/:/system/xbin/ +LOG="/cache/${0}.log" + +log -p i -t userinit "[${0}][Start]" + +# Log related mounts and mount points before +echo "[Start]" >> ${LOG} +mount >> ${LOG} +echo "[/]" >> ${LOG} +ls -la / >> ${LOG} +echo "[/data]" >> ${LOG} +ls -la /data/ >> ${LOG} +echo "[/data1]" >> ${LOG} +ls -la /data1/ >> ${LOG} +du -sch /data1/* >> ${LOG} + +# Attempt to link data components to secondary data (optional) +# If we fail those locations will be used as usual +# Ensure permissions are set correctly +test -d /data1/dalvik-cache && chmod 0771 /data1/dalvik-cache && chown root:root /data1/dalvik-cache && rm -Rf /data/dalvik-cache && ln -s /data1/dalvik-cache /data/dalvik-cache && log -p i -t userinit "[${0}] Linked /data1/dalvik-cache" && echo "[${0}] Linked /data1/dalvik-cache" >> ${LOG} +test -d /data1/app && chmod 0771 /data1/app && chown system:system /data1/app && rm -Rf /data/app && ln -s /data1/app /data/app && log -p i -t userinit "[${0}] Linked /data1/app" && echo "[${0}] Linked /data1/app" >> ${LOG} +test -d /data1/data && chmod 0771 /data1/data && chown system:system /data1/data && rm -Rf /data/data && ln -s /data1/data /data/data && log -p i -t userinit "[${0}] Linked /data1/data" && echo "[${0}] Linked /data1/data" >> ${LOG} +test -d /data1/media && chmod 0770 /data1/media && chown media_rw:media_rw /data1/media && rm -Rf /data/media && ln -s /data1/media /data/media && log -p i -t userinit "[${0}] Linked /data1/media" && echo "[${0}] Linked /data1/media" >> ${LOG} + +# Log related mounts and mount points after +echo "[Stop]" >> ${LOG} +mount >> ${LOG} +echo "[/]" >> ${LOG} +ls -la / >> ${LOG} +echo "[/data]" >> ${LOG} +ls -la /data/ >> ${LOG} +echo "[/data1]" >> ${LOG} +ls -la /data1/ >> ${LOG} +du -sch /data1/* >> ${LOG} + +log -p i -t userinit "[${0}][Stop]" diff --git a/rootdir/etc/remount.pyramid b/rootdir/etc/remount.pyramid old mode 100755 new mode 100644 index 6dfc0ed8..b65a7edd --- a/rootdir/etc/remount.pyramid +++ b/rootdir/etc/remount.pyramid @@ -1,3 +1,3 @@ # Android fstab file. -# -/dev/block/mmcblk0p22 /system ext4 remount,ro,noatime,barrier=0 wait +# +/dev/block/mmcblk0p22 /system ext4 remount,ro,noatime,barrier=0 wait diff --git a/system_prop.mk b/system_prop.mk index 2f60bdb3..cf2f1123 100644 --- a/system_prop.mk +++ b/system_prop.mk @@ -5,27 +5,27 @@ PRODUCT_PROPERTY_OVERRIDES += \ ro.sf.lcd_density=240 -# radio +# Radio PRODUCT_PROPERTY_OVERRIDES += \ mobiledata.interfaces=rmnet0 \ rild.libpath=/system/lib/libhtc_ril.so \ ro.telephony.ril_class=HtcMsm8660RIL -# wifi +# WiFi PRODUCT_PROPERTY_OVERRIDES += \ - wifi.interface=wlan0 + wifi.interface=wlan0 # UMS PRODUCT_PROPERTY_OVERRIDES += \ - persist.sys.usb.config=mtp,adb \ + persist.sys.usb.config=mtp \ ro.vold.umsdirtyratio=20 -# tweaks +# Tweaks PRODUCT_PROPERTY_OVERRIDES += \ - dalvik.vm.dexopt-data-only=1 \ - dalvik.vm.dexopt-flags=m=y \ - windowsmgr.max_events_per_sec=300 \ - pm.sleep_mode=1 + dalvik.vm.dexopt-data-only=1 \ + dalvik.vm.dexopt-flags=m=y \ + windowsmgr.max_events_per_sec=300 \ + pm.sleep_mode=1 # Display PRODUCT_PROPERTY_OVERRIDES += \ @@ -38,7 +38,7 @@ PRODUCT_PROPERTY_OVERRIDES += \ ro.opengles.version=131072 \ debug.egl.recordable.rgba8888=1 -## misc +# Misc PRODUCT_PROPERTY_OVERRIDES += \ ro.setupwizard.enable_bypass=1 \ dalvik.vm.lockprof.threshold=500 \ From fd693a0d5cc1158b01781a2a11d25324701e32fa Mon Sep 17 00:00:00 2001 From: "Eugene San (eugenesan)" Date: Tue, 29 Sep 2015 15:48:58 -0400 Subject: [PATCH 09/10] Switch to nexus style mode completely v2 This is a 2nd iteration of the patch in which we go completely Nexus. We eliminate external sdcard completely and use it as /data that can be fully encrypted. In addition we perform series of storage layout changes, cleanups and optimizations. Now to the details: * Use original "userdata" parititon as /system (60% more space for GAPPS and DEX data). * Reduce size of primary zram swap by half (Add more RAM). * Use original "system" as secondary swap (Provide backup swap for smaller zram swap). * We create pre-odexed build which should allow the following: - Avoid usage of userdata for DEX data of system apps and data duplication - Avoid encryption of system DEX data (which is public) - Allow much faster access from /system partition - Allow much faster boot with encrypted data (when data is encrypted, dalvik-cache is also and need to be re-created on each boot for asking user's password!) - Enable ART-small mode which pre-compiles (into dalvik-cache) only bare minimum of clasees * Add misc recovery related settings and coresponding changes to TWRP in order to support above. * Modify recovery related settings (this device tree can be used for building TWRP image) * Remove duplicated default init.rc code * General cleanups Change-Id: I60b8303fce99a83c162ca11bb1304a551c48404a --- BoardConfig.mk | 17 ++++++--- device_pyramid.mk | 1 - .../base/core/res/res/xml/storage_list.xml | 10 +---- recovery.fstab | 12 +----- recovery/root/etc/twrp.fstab | 10 ++--- rootdir/Android.mk | 8 ---- rootdir/etc/fstab.pyramid | 22 +++++------ rootdir/etc/init.pyramid.rc | 16 -------- rootdir/etc/init.pyramid.sh | 38 ------------------- system_prop.mk | 6 +-- 10 files changed, 30 insertions(+), 110 deletions(-) mode change 100644 => 120000 recovery.fstab delete mode 100755 rootdir/etc/init.pyramid.sh diff --git a/BoardConfig.mk b/BoardConfig.mk index 8d9101fb..fb590971 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -124,6 +124,7 @@ TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888" RECOVERY_GRAPHICS_USE_LINELENGTH := true TARGET_RECOVERY_DEVICE_DIRS += device/htc/pyramid RECOVERY_SDCARD_ON_DATA := true +BOARD_HAS_NO_REAL_SDCARD := true # Required for Sensors COMMON_GLOBAL_CFLAGS += -DNEEDS_VECTORIMPL_SYMBOLS @@ -148,9 +149,13 @@ BOARD_HARDWARE_CLASS := $(LOCAL_PATH)/cmhw # RIL BOARD_RIL_CLASS := ../../../$(LOCAL_PATH)/ril +# USB +TARGET_USE_CUSTOM_LUN_FILE_PATH := "/sys/devices/platform/msm_hsusb/gadget/lun0/file" + # Misc BOARD_USES_LEGACY_MMAP := true BOARD_SUPPRESS_EMMC_WIPE := true +BOARD_SUPPRESS_SECURE_ERASE := true # Use dlmalloc MALLOC_IMPL := dlmalloc @@ -173,7 +178,7 @@ TARGET_USERIMAGES_USE_F2FS := true BOARD_VOLD_MAX_PARTITIONS := 36 BOARD_BOOTIMAGE_PARTITION_SIZE := 16777216 BOARD_RECOVERYIMAGE_PARTITION_SIZE := 16776192 -BOARD_SYSTEMIMAGE_PARTITION_SIZE := 838859776 +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1252770816 BOARD_USERDATAIMAGE_PARTITION_SIZE := 1252770816 BOARD_FLASH_BLOCK_SIZE := 262144 @@ -187,8 +192,10 @@ TW_NO_CPU_TEMP := true TW_NEW_ION_HEAP := true TW_INCLUDE_NTFS_3G := true TW_BRIGHTNESS_PATH := "/sys/class/leds/lcd-backlight/brightness" -TARGET_USE_CUSTOM_LUN_FILE_PATH := "/sys/devices/platform/msm_hsusb/gadget/lun0/file" TW_BACKUP_DATA_MEDIA := true -TW_INTERNAL_STORAGE_PATH := /sdcard -TW_EXTERNAL_STORAGE_PATH := /sdcard1 -TW_INCLUDE_L_CRYPTO := true + +# Dalvik/ART optimizations +WITH_DEXPREOPT := true +WITH_DEXPREOPT_COMP := false +WITH_DEXPREOPT_PIC := true +WITH_ART_SMALL_MODE := true diff --git a/device_pyramid.mk b/device_pyramid.mk index 319a2445..281e0e0b 100644 --- a/device_pyramid.mk +++ b/device_pyramid.mk @@ -156,7 +156,6 @@ DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay # Ramdisk PRODUCT_PACKAGES += \ fstab.pyramid \ - init.pyramid.sh \ init.pyramid.rc \ init.pyramid.usb.rc \ ueventd.pyramid.rc \ diff --git a/overlay/frameworks/base/core/res/res/xml/storage_list.xml b/overlay/frameworks/base/core/res/res/xml/storage_list.xml index 92249ddf..8aeda205 100644 --- a/overlay/frameworks/base/core/res/res/xml/storage_list.xml +++ b/overlay/frameworks/base/core/res/res/xml/storage_list.xml @@ -26,16 +26,8 @@ android:emulated="true" android:primary="true" android:mtpReserve="100" /> - - - diff --git a/recovery.fstab b/recovery.fstab deleted file mode 100644 index bf1959e1..00000000 --- a/recovery.fstab +++ /dev/null @@ -1,11 +0,0 @@ -# mount point fstype device [device2] [length=] - -/boot emmc /dev/block/mmcblk0p20 -/recovery emmc /dev/block/mmcblk0p21 -/system ext4 /dev/block/mmcblk0p22 -/data f2fs /dev/block/mmcblk0p23 length=-16384 -/cache f2fs /dev/block/mmcblk0p24 -/misc emmc /dev/block/mmcblk0p31 -/sdcard1 vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="sdcard1";storage;wipeingui;removable -/data1 f2fs /dev/block/mmcblk1p2 /dev/block/mmcblk1 flags=display="data1";wipeingui;removable -/usbdisk vfat /dev/block/sda1 /dev/block/sda flags=display="usbdisk";storage;wipeingui;removable diff --git a/recovery.fstab b/recovery.fstab new file mode 120000 index 00000000..368a16b4 --- /dev/null +++ b/recovery.fstab @@ -0,0 +1 @@ +recovery/root/etc/twrp.fstab \ No newline at end of file diff --git a/recovery/root/etc/twrp.fstab b/recovery/root/etc/twrp.fstab index 20614abe..26148328 100644 --- a/recovery/root/etc/twrp.fstab +++ b/recovery/root/etc/twrp.fstab @@ -2,10 +2,8 @@ /boot emmc /dev/block/mmcblk0p20 /recovery emmc /dev/block/mmcblk0p21 -/system ext4 /dev/block/mmcblk0p22 -/data f2fs /dev/block/mmcblk0p23 length=-16384 -/cache f2fs /dev/block/mmcblk0p28 +/system ext4 /dev/block/mmcblk0p23 +/data f2fs /dev/block/mmcblk1 length=-16384 +/cache f2fs /dev/block/mmcblk0p24 /misc emmc /dev/block/mmcblk0p31 -/sdcard1 vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="sdcard1";andsec;storage;wipeingui;removable -/data1 f2fs /dev/block/mmcblk1p2 /dev/block/mmcblk1 flags=display="data1";wipeingui;removable -/usb-otg vfat /dev/block/sda1 /dev/block/sda flags=display="usb-otg";storage;wipeingui;removable +/usbdisk vfat /dev/block/sda1 /dev/block/sda flags=display="usbdisk";storage;wipeingui;removable diff --git a/rootdir/Android.mk b/rootdir/Android.mk index 6b6a7c06..346808f8 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -8,14 +8,6 @@ LOCAL_SRC_FILES := etc/fstab.pyramid LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) include $(BUILD_PREBUILT) -include $(CLEAR_VARS) -LOCAL_MODULE := init.pyramid.sh -LOCAL_MODULE_TAGS := optional eng -LOCAL_MODULE_CLASS := ETC -LOCAL_SRC_FILES := etc/init.pyramid.sh -LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) -include $(BUILD_PREBUILT) - include $(CLEAR_VARS) LOCAL_MODULE := init.pyramid.rc LOCAL_MODULE_TAGS := optional eng diff --git a/rootdir/etc/fstab.pyramid b/rootdir/etc/fstab.pyramid index a955c971..a8dc29b3 100644 --- a/rootdir/etc/fstab.pyramid +++ b/rootdir/etc/fstab.pyramid @@ -7,22 +7,18 @@ /dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults defaults /dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults defaults /dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults -/dev/block/platform/msm_sdcc.1/by-name/devlog /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic wait,check -/dev/block/platform/msm_sdcc.1/by-name/devlog /cache f2fs rw,discard,nosuid,nodev,noatime,nodiratime,inline_xattr wait,check -/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,noatime,barrier=1 wait -/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic wait,check,encryptable=footer,length=-16384 -/dev/block/platform/msm_sdcc.1/by-name/userdata /data f2fs noatime,nodiratime,nosuid,nodev,inline_xattr,discard,rw wait,check,encryptable=footer,length=-16384 -/dev/block/platform/msm_sdcc.3/by-num/p2 /data1 ext4 noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic wait,check -/dev/block/platform/msm_sdcc.3/by-num/p2 /data1 f2fs noatime,nodiratime,nosuid,nodev,inline_xattr,discard,rw wait,check - -# SD card -/devices/platform/msm_sdcc.3/mmc_host/mmc1* auto vfat defaults voldmanaged=sdcard1:auto,noemulatedsd +/dev/block/platform/msm_sdcc.1/by-name/devlog /devlog ext4 rw,noatime,nosuid,nodev,barrier=0 wait +/dev/block/platform/msm_sdcc.1/by-name/userdata /system ext4 ro,noatime,barrier=0 wait +/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic wait,check +/dev/block/platform/msm_sdcc.1/by-name/cache /cache f2fs rw,discard,nosuid,nodev,noatime,nodiratime,inline_xattr wait,check +/dev/block/platform/msm_sdcc.3/mmcblk1 /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic wait,check,encryptable=footer,length=-16384 +/dev/block/platform/msm_sdcc.3/mmcblk1 /data f2fs noatime,nodiratime,nosuid,nodev,inline_xattr,discard,rw wait,check,encryptable=footer,length=-16384 # USB storage -d* auto auto defaults voldmanaged=usbdisk:auto,noemulatedsd +/devices/platform/msm_hsusb_host.0/usb1 auto auto defaults voldmanaged=usbdisk:auto,noemulatedsd # ZRAM /dev/block/zram0 none swap defaults zramsize=134217728 -# Cache as secondary swap -/dev/block/platform/msm_sdcc.1/by-name/cache none swap defaults defaults +# System as secondary swap +/dev/block/platform/msm_sdcc.1/by-name/system none swap defaults defaults diff --git a/rootdir/etc/init.pyramid.rc b/rootdir/etc/init.pyramid.rc index 82e7a556..e1a84314 100755 --- a/rootdir/etc/init.pyramid.rc +++ b/rootdir/etc/init.pyramid.rc @@ -18,14 +18,6 @@ on init export EMULATED_STORAGE_SOURCE /mnt/shell/emulated export EMULATED_STORAGE_TARGET /storage/emulated - # Secondary storage - mkdir /mnt/media_rw/sdcard1 0700 media_rw media_rw - mkdir /storage/sdcard1 0700 root root - export SECONDARY_STORAGE /storage/sdcard1 - - # Secondary data (optional) - mkdir /data1 0771 root root - # Support legacy paths symlink /storage/emulated/legacy /sdcard symlink /storage/emulated/legacy /mnt/sdcard @@ -67,9 +59,6 @@ on fs # link widevine drm library path symlink /system/vendor/lib /vendor/lib - # run device's script - exec /init.pyramid.sh - mount_all /remount.pyramid on post-fs-data @@ -280,11 +269,6 @@ service iprenew_wlan0 /system/bin/dhcpcd -n disabled oneshot -# external sdcard daemon running as media_rw (1023) -service fuse_sdcard1 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/sdcard1 /storage/sdcard1 - class late_start - disabled - # virtual sdcard daemon running as media_rw (1023) service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated class late_start diff --git a/rootdir/etc/init.pyramid.sh b/rootdir/etc/init.pyramid.sh deleted file mode 100755 index 127ef985..00000000 --- a/rootdir/etc/init.pyramid.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/system/bin/sh - -export PATH=${PATH}:/system/bin/:/system/xbin/ -LOG="/cache/${0}.log" - -log -p i -t userinit "[${0}][Start]" - -# Log related mounts and mount points before -echo "[Start]" >> ${LOG} -mount >> ${LOG} -echo "[/]" >> ${LOG} -ls -la / >> ${LOG} -echo "[/data]" >> ${LOG} -ls -la /data/ >> ${LOG} -echo "[/data1]" >> ${LOG} -ls -la /data1/ >> ${LOG} -du -sch /data1/* >> ${LOG} - -# Attempt to link data components to secondary data (optional) -# If we fail those locations will be used as usual -# Ensure permissions are set correctly -test -d /data1/dalvik-cache && chmod 0771 /data1/dalvik-cache && chown root:root /data1/dalvik-cache && rm -Rf /data/dalvik-cache && ln -s /data1/dalvik-cache /data/dalvik-cache && log -p i -t userinit "[${0}] Linked /data1/dalvik-cache" && echo "[${0}] Linked /data1/dalvik-cache" >> ${LOG} -test -d /data1/app && chmod 0771 /data1/app && chown system:system /data1/app && rm -Rf /data/app && ln -s /data1/app /data/app && log -p i -t userinit "[${0}] Linked /data1/app" && echo "[${0}] Linked /data1/app" >> ${LOG} -test -d /data1/data && chmod 0771 /data1/data && chown system:system /data1/data && rm -Rf /data/data && ln -s /data1/data /data/data && log -p i -t userinit "[${0}] Linked /data1/data" && echo "[${0}] Linked /data1/data" >> ${LOG} -test -d /data1/media && chmod 0770 /data1/media && chown media_rw:media_rw /data1/media && rm -Rf /data/media && ln -s /data1/media /data/media && log -p i -t userinit "[${0}] Linked /data1/media" && echo "[${0}] Linked /data1/media" >> ${LOG} - -# Log related mounts and mount points after -echo "[Stop]" >> ${LOG} -mount >> ${LOG} -echo "[/]" >> ${LOG} -ls -la / >> ${LOG} -echo "[/data]" >> ${LOG} -ls -la /data/ >> ${LOG} -echo "[/data1]" >> ${LOG} -ls -la /data1/ >> ${LOG} -du -sch /data1/* >> ${LOG} - -log -p i -t userinit "[${0}][Stop]" diff --git a/system_prop.mk b/system_prop.mk index cf2f1123..1b42ad80 100644 --- a/system_prop.mk +++ b/system_prop.mk @@ -22,10 +22,10 @@ PRODUCT_PROPERTY_OVERRIDES += \ # Tweaks PRODUCT_PROPERTY_OVERRIDES += \ - dalvik.vm.dexopt-data-only=1 \ - dalvik.vm.dexopt-flags=m=y \ windowsmgr.max_events_per_sec=300 \ pm.sleep_mode=1 +# dalvik.vm.dexopt-data-only=1 \ +# dalvik.vm.dexopt-flags=m=y \ # Display PRODUCT_PROPERTY_OVERRIDES += \ @@ -41,8 +41,8 @@ PRODUCT_PROPERTY_OVERRIDES += \ # Misc PRODUCT_PROPERTY_OVERRIDES += \ ro.setupwizard.enable_bypass=1 \ - dalvik.vm.lockprof.threshold=500 \ ro.com.google.locationfeatures=1 +# dalvik.vm.lockprof.threshold=500 \ # USB-OTG persist.sys.isUsbOtgEnabled=true From b7fdd495cfaee7e891bfc93e0aaa9a945dbd9827 Mon Sep 17 00:00:00 2001 From: "Eugene San (eugenesan)" Date: Fri, 2 Oct 2015 10:59:16 -0400 Subject: [PATCH 10/10] Switch to nexus style mode completely v3 This is a 3rd iteration of the patch in which we go completely Nexus. We eliminate external sdcard completely and use it as /data that can be fully encrypted. In addition we perform series of storage layout changes, cleanups and optimizations. Now to the details: * Use original "userdata" parititon as /system (60% more space for GApps and ODEX data). * Use original system partiton as /cache. This also allow much faster boot with encrypted data (dalvik-cache is available on boot for asking user's password). * Reduce size of primary zram swap to 96MB since profiling showed this to be sufficient (20% more RAM). * Use original "cache" partition as secondary swap (to provide backup swap for smaller zram swap). * We create pre-odexed build optimized for "small" devices which should allow the following: - Avoid usage of userdata for DEX data of system apps and data duplication - Avoid encryption of ODEX data of system apps - Allow much faster access from /system partition - Enable ART-small mode which pre-compiles ODEX data for system apps and relocaes to dalvik-cache only bare minimum of clasees * Add misc recovery related settings and coresponding changes to TWRP in order to support above (this device tree can be used for building TWRP image) * Remove duplicated default init.rc code * General cleanups Change-Id: Ieb2b58569fcc20bb2d77def3f205fd009386d7bc --- BoardConfig.mk | 4 ++-- device_pyramid.mk | 1 + recovery/root/etc/twrp.fstab | 2 +- rootdir/etc/fstab.pyramid | 8 ++++---- system_prop.mk | 3 --- 5 files changed, 8 insertions(+), 10 deletions(-) diff --git a/BoardConfig.mk b/BoardConfig.mk index fb590971..2426de88 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -192,9 +192,9 @@ TW_NO_CPU_TEMP := true TW_NEW_ION_HEAP := true TW_INCLUDE_NTFS_3G := true TW_BRIGHTNESS_PATH := "/sys/class/leds/lcd-backlight/brightness" -TW_BACKUP_DATA_MEDIA := true +TW_BACKUP_DATA_MEDIA := false -# Dalvik/ART optimizations +# Dalvik/ART WITH_DEXPREOPT := true WITH_DEXPREOPT_COMP := false WITH_DEXPREOPT_PIC := true diff --git a/device_pyramid.mk b/device_pyramid.mk index 281e0e0b..0bdcd02a 100644 --- a/device_pyramid.mk +++ b/device_pyramid.mk @@ -226,6 +226,7 @@ $(call inherit-product, device/htc/pyramid/media_a1026.mk) ## htc audio settings $(call inherit-product, device/htc/pyramid/media_htcaudio.mk) +# setup dalvik vm configs $(call inherit-product, frameworks/native/build/phone-hdpi-512-dalvik-heap.mk) # Discard inherited values and use our own instead. diff --git a/recovery/root/etc/twrp.fstab b/recovery/root/etc/twrp.fstab index 26148328..72461022 100644 --- a/recovery/root/etc/twrp.fstab +++ b/recovery/root/etc/twrp.fstab @@ -4,6 +4,6 @@ /recovery emmc /dev/block/mmcblk0p21 /system ext4 /dev/block/mmcblk0p23 /data f2fs /dev/block/mmcblk1 length=-16384 -/cache f2fs /dev/block/mmcblk0p24 +/cache ext4 /dev/block/mmcblk0p22 /misc emmc /dev/block/mmcblk0p31 /usbdisk vfat /dev/block/sda1 /dev/block/sda flags=display="usbdisk";storage;wipeingui;removable diff --git a/rootdir/etc/fstab.pyramid b/rootdir/etc/fstab.pyramid index a8dc29b3..4af8df65 100644 --- a/rootdir/etc/fstab.pyramid +++ b/rootdir/etc/fstab.pyramid @@ -9,8 +9,8 @@ /dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults /dev/block/platform/msm_sdcc.1/by-name/devlog /devlog ext4 rw,noatime,nosuid,nodev,barrier=0 wait /dev/block/platform/msm_sdcc.1/by-name/userdata /system ext4 ro,noatime,barrier=0 wait -/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic wait,check -/dev/block/platform/msm_sdcc.1/by-name/cache /cache f2fs rw,discard,nosuid,nodev,noatime,nodiratime,inline_xattr wait,check +/dev/block/platform/msm_sdcc.1/by-name/system /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic wait,check +/dev/block/platform/msm_sdcc.1/by-name/system /cache f2fs rw,discard,nosuid,nodev,noatime,nodiratime,inline_xattr wait,check /dev/block/platform/msm_sdcc.3/mmcblk1 /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic wait,check,encryptable=footer,length=-16384 /dev/block/platform/msm_sdcc.3/mmcblk1 /data f2fs noatime,nodiratime,nosuid,nodev,inline_xattr,discard,rw wait,check,encryptable=footer,length=-16384 @@ -18,7 +18,7 @@ /devices/platform/msm_hsusb_host.0/usb1 auto auto defaults voldmanaged=usbdisk:auto,noemulatedsd # ZRAM -/dev/block/zram0 none swap defaults zramsize=134217728 +/dev/block/zram0 none swap defaults zramsize=100663296 # System as secondary swap -/dev/block/platform/msm_sdcc.1/by-name/system none swap defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/cache none swap defaults defaults diff --git a/system_prop.mk b/system_prop.mk index 1b42ad80..7e2c3f28 100644 --- a/system_prop.mk +++ b/system_prop.mk @@ -24,8 +24,6 @@ PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \ windowsmgr.max_events_per_sec=300 \ pm.sleep_mode=1 -# dalvik.vm.dexopt-data-only=1 \ -# dalvik.vm.dexopt-flags=m=y \ # Display PRODUCT_PROPERTY_OVERRIDES += \ @@ -42,7 +40,6 @@ PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \ ro.setupwizard.enable_bypass=1 \ ro.com.google.locationfeatures=1 -# dalvik.vm.lockprof.threshold=500 \ # USB-OTG persist.sys.isUsbOtgEnabled=true