Skip to content

Commit c12a1b2

Browse files
committed
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
1 parent ba57da1 commit c12a1b2

File tree

12 files changed

+176
-125
lines changed

12 files changed

+176
-125
lines changed

BoardConfig.mk

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ TARGET_SPECIFIC_HEADER_PATH := $(LOCAL_PATH)/include
2929

3030
BOARD_VENDOR := htc
3131

32-
3332
# Bootloader
3433
TARGET_NO_BOOTLOADER := true
3534

@@ -84,14 +83,14 @@ AUDIO_FEATURE_ENABLED_FM := true
8483
TARGET_GPS_HAL_PATH := $(LOCAL_PATH)/gps
8584
BOARD_VENDOR_QCOM_GPS_LOC_API_AMSS_VERSION := 50000
8685

87-
8886
# Graphics
8987
USE_OPENGL_RENDERER := true
9088
TARGET_DISPLAY_USE_RETIRE_FENCE := true
9189
TARGET_USES_C2D_COMPOSITION := true
9290
TARGET_USES_ION := true
9391
NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
9492
TARGET_DISPLAY_INSECURE_MM_HEAP := true
93+
DEVICE_RESOLUTION := 540x960
9594

9695
# Media
9796
TARGET_NO_ADAPTIVE_PLAYBACK := true
@@ -117,11 +116,14 @@ BOARD_MKBOOTIMG_ARGS := --ramdisk_offset 0x01400000
117116
TARGET_KERNEL_CONFIG := pyramid_defconfig
118117
TARGET_KERNEL_SOURCE := kernel/htc/pyramid
119118

119+
# Recovery
120+
TARGET_RECOVERY_DEVICE_MODULES += chargeled
120121
TARGET_RECOVERY_FSTAB := device/htc/pyramid/rootdir/etc/fstab.pyramid
121122
RECOVERY_FSTAB_VERSION := 2
122123
TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888"
123124
RECOVERY_GRAPHICS_USE_LINELENGTH := true
124125
TARGET_RECOVERY_DEVICE_DIRS += device/htc/pyramid
126+
RECOVERY_SDCARD_ON_DATA := true
125127

126128
# Required for Sensors
127129
COMMON_GLOBAL_CFLAGS += -DNEEDS_VECTORIMPL_SYMBOLS
@@ -153,9 +155,6 @@ BOARD_SUPPRESS_EMMC_WIPE := true
153155
# Use dlmalloc
154156
MALLOC_IMPL := dlmalloc
155157

156-
# Recovery
157-
TARGET_RECOVERY_DEVICE_MODULES += chargeled
158-
159158
# SELinux
160159
-include device/qcom/sepolicy/sepolicy.mk
161160

@@ -178,7 +177,7 @@ BOARD_SYSTEMIMAGE_PARTITION_SIZE := 838859776
178177
BOARD_USERDATAIMAGE_PARTITION_SIZE := 1252770816
179178
BOARD_FLASH_BLOCK_SIZE := 262144
180179

181-
# Twrp
180+
# TWRP
182181
TW_THEME := portrait_mdpi
183182
TW_INCLUDE_CRYPTO := true
184183
TW_NO_SCREEN_BLANK := true
@@ -188,3 +187,7 @@ TW_NEW_ION_HEAP := true
188187
TW_INCLUDE_NTFS_3G := true
189188
TW_BRIGHTNESS_PATH := "/sys/class/leds/lcd-backlight/brightness"
190189
TARGET_USE_CUSTOM_LUN_FILE_PATH := "/sys/devices/platform/msm_hsusb/gadget/lun0/file"
190+
TW_BACKUP_DATA_MEDIA := true
191+
TW_INTERNAL_STORAGE_PATH := /sdcard
192+
TW_EXTERNAL_STORAGE_PATH := /sdcard1
193+
TW_INCLUDE_L_CRYPTO := true

device_pyramid.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay
152152
# Ramdisk
153153
PRODUCT_PACKAGES += \
154154
fstab.pyramid \
155+
init.pyramid.sh \
155156
init.pyramid.rc \
156157
init.pyramid.usb.rc \
157158
ueventd.pyramid.rc \
Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<!--
33
**
4-
** Copyright 2011, The Android Open Source Project
4+
** Copyright 2013, The Android Open Source Project
55
**
66
** Licensed under the Apache License, Version 2.0 (the "License")
77
** you may not use this file except in compliance with the License.
@@ -17,30 +17,25 @@
1717
*/
1818
-->
1919

20-
<!-- The <device> element should contain one or more <storage> elements.
21-
Exactly one of these should have the attribute primary="true".
22-
This storage will be the primary external storage and should have path="/mnt/sdcard".
23-
Each storage should have both a path and description attribute set.
24-
The following boolean attributes are optional:
25-
26-
primary: this storage is the primary external storage
27-
removable: this is removable storage (for example, a real SD card)
28-
emulated: the storage is emulated via the FUSE sdcard daemon
29-
mtp-reserve: number of megabytes of storage MTP should reserve for free storage
30-
(used for emulated storage that is shared with system's data partition)
31-
32-
A storage should not have both emulated and removable set to true
33-
-->
20+
<!-- See storage config details at http://source.android.com/tech/storage/ -->
3421

3522
<StorageList xmlns:android="http://schemas.android.com/apk/res/android">
36-
<!-- removable is not set in nosdcard product -->
37-
<storage android:mountPoint="/storage/sdcard0"
38-
android:storageDescription="@string/storage_sd_card"
39-
android:primary="true"
40-
android:removable="true"
41-
android:allowMassStorage="true"
42-
android:maxFileSize="4096" />
43-
<storage android:mountPoint="/storage/usbdisk"
44-
android:storageDescription="@string/storage_usb"
45-
android:removable="true" />
23+
<!-- internal emulated storage -->
24+
<storage
25+
android:storageDescription="@string/storage_internal"
26+
android:emulated="true"
27+
android:primary="true"
28+
android:mtpReserve="100" />
29+
<!-- external sdcard (non-removable due to optional usage of second partition for data) -->
30+
<storage android:mountPoint="/storage/sdcard1"
31+
android:storageDescription="@string/storage_sd_card"
32+
android:primary="false"
33+
android:emulated="false"
34+
android:removable="false"
35+
android:allowMassStorage="false"
36+
android:maxFileSize="4096" />
37+
<!-- external USB OTG storage -->
38+
<storage android:mountPoint="/storage/usb-otg"
39+
android:storageDescription="@string/storage_usb"
40+
android:removable="true" />
4641
</StorageList>

recovery.fstab

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
# mount point fstype device [device2] [length=]
1+
# mount point fstype device [device2] [length=]
22

3-
/recovery emmc /dev/block/mmcblk0p21
4-
/boot emmc /dev/block/mmcblk0p20
5-
/cache ext4 /dev/block/mmcblk0p24
6-
/data ext4 /dev/block/mmcblk0p23 length=-16384
7-
/sd-ext ext4 /dev/block/mmcblk1p2
8-
/sdcard vfat /dev/block/mmcblk1p1
3+
/boot emmc /dev/block/mmcblk0p20
4+
/recovery emmc /dev/block/mmcblk0p21
95
/system ext4 /dev/block/mmcblk0p22
6+
/data f2fs /dev/block/mmcblk0p23 length=-16384
7+
/cache f2fs /dev/block/mmcblk0p24
108
/misc emmc /dev/block/mmcblk0p31
9+
/sdcard1 vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="sdcard1";storage;wipeingui;removable
10+
/data1 f2fs /dev/block/mmcblk1p2 /dev/block/mmcblk1 flags=display="data1";wipeingui;removable
11+
/usbdisk vfat /dev/block/sda1 /dev/block/sda flags=display="usbdisk";storage;wipeingui;removable

recovery/root/etc/twrp.fstab

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
# mount point fstype device [device2] [length=]
2-
3-
/boot emmc /dev/block/mmcblk0p20
4-
/recovery emmc /dev/block/mmcblk0p21
5-
/system ext4 /dev/block/mmcblk0p22
6-
/data ext4 /dev/block/mmcblk0p23 length=-16384
7-
/cache ext4 /dev/block/mmcblk0p24
8-
/misc emmc /dev/block/mmcblk0p31
9-
/sdcard vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="MicroSD card";storage;wipeingui;removable
10-
/sd-ext ext4 /dev/block/mmcblk1p2 flags=display="SD-Ext";wipeingui;removable
11-
#/usb-otg vfat /dev/block/sda1 /dev/block/sda flags=display="USB OTG";storage;wipeingui;removable
1+
# mount point fstype device [device2] [length=]
122

3+
/boot emmc /dev/block/mmcblk0p20
4+
/recovery emmc /dev/block/mmcblk0p21
5+
/system ext4 /dev/block/mmcblk0p22
6+
/data f2fs /dev/block/mmcblk0p23 length=-16384
7+
/cache f2fs /dev/block/mmcblk0p28
8+
/misc emmc /dev/block/mmcblk0p31
9+
/sdcard1 vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="sdcard1";andsec;storage;wipeingui;removable
10+
/data1 f2fs /dev/block/mmcblk1p2 /dev/block/mmcblk1 flags=display="data1";wipeingui;removable
11+
/usb-otg vfat /dev/block/sda1 /dev/block/sda flags=display="usb-otg";storage;wipeingui;removable

recovery/root/init.recovery.pyramid.rc

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,3 @@ service power_test /sbin/power_test
5656
disabled
5757
oneshot
5858
seclabel u:r:recovery:s0
59-
60-
# Always start adbd on userdebug and eng builds
61-
on property:ro.debuggable=1
62-
#write /sys/class/android_usb/android0/enable 1
63-
#start adbd
64-
setprop service.adb.root 1
65-
66-
# Restart adbd so it can run as root
67-
on property:service.adb.root=1
68-
write /sys/class/android_usb/android0/enable 0
69-
restart adbd
70-
write /sys/class/android_usb/android0/enable 1

rootdir/Android.mk

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ LOCAL_SRC_FILES := etc/fstab.pyramid
88
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
99
include $(BUILD_PREBUILT)
1010

11+
include $(CLEAR_VARS)
12+
LOCAL_MODULE := init.pyramid.sh
13+
LOCAL_MODULE_TAGS := optional eng
14+
LOCAL_MODULE_CLASS := ETC
15+
LOCAL_SRC_FILES := etc/init.pyramid.sh
16+
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
17+
include $(BUILD_PREBUILT)
18+
1119
include $(CLEAR_VARS)
1220
LOCAL_MODULE := init.pyramid.rc
1321
LOCAL_MODULE_TAGS := optional eng

rootdir/etc/fstab.pyramid

100755100644
Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,28 @@
11
# Android fstab file.
2-
#<src> <mnt_point> <type> <mnt_flags> <fs_mgr_flags>
3-
#/dev/block/platform/msm_sdcc.1/by-name/dsps /firmware_dsps vfat ro,shortname=lower wait
4-
/dev/block/platform/msm_sdcc.1/by-name/radio /firmware_radio vfat ro,shortname=lower,context=u:object_r:firmware_file:s0 wait
5-
/dev/block/platform/msm_sdcc.1/by-name/adsp /firmware_q6 vfat ro,shortname=lower,context=u:object_r:firmware_file:s0 wait
6-
#/dev/block/platform/msm_sdcc.1/by-name/wcnss /firmware_wcnss vfat ro,shortname=lower wait
7-
8-
/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults defaults
9-
/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults defaults
10-
/dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults
11-
/dev/block/platform/msm_sdcc.1/by-name/devlog /devlog ext4 noatime,nosuid,nodev,barrier=0 wait
12-
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 rw,noatime,barrier=0 wait
13-
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=0 wait
14-
/dev/block/platform/msm_sdcc.1/by-name/cache /cache f2fs rw,discard,nosuid,nodev,noatime,nodiratime,inline_xattr wait,check
15-
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 noatime,nosuid,nodev,noauto_da_alloc,barrier=0 wait,encryptable=footer,length=-16384
16-
/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
2+
#<src> <mnt_point> <type> <mnt_flags> <fs_mgr_flags>
3+
#/dev/block/platform/msm_sdcc.1/by-name/dsps /firmware_dsps vfat ro,shortname=lower wait
4+
/dev/block/platform/msm_sdcc.1/by-name/radio /firmware_radio vfat ro,shortname=lower,context=u:object_r:firmware_file:s0 wait
5+
/dev/block/platform/msm_sdcc.1/by-name/adsp /firmware_q6 vfat ro,shortname=lower,context=u:object_r:firmware_file:s0 wait
6+
#/dev/block/platform/msm_sdcc.1/by-name/wcnss /firmware_wcnss vfat ro,shortname=lower wait
7+
/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults defaults
8+
/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults defaults
9+
/dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults
10+
/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
11+
/dev/block/platform/msm_sdcc.1/by-name/devlog /cache f2fs rw,discard,nosuid,nodev,noatime,nodiratime,inline_xattr wait,check
12+
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,noatime,barrier=1 wait
13+
/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
14+
/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
15+
/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
16+
/dev/block/platform/msm_sdcc.3/by-num/p2 /data1 f2fs noatime,nodiratime,nosuid,nodev,inline_xattr,discard,rw wait,check
1717

1818
# SD card
19-
/devices/platform/msm_sdcc.3/mmc_host/mmc1* auto vfat defaults voldmanaged=sdcard0:auto,noemulatedsd
19+
/devices/platform/msm_sdcc.3/mmc_host/mmc1* auto vfat defaults voldmanaged=sdcard1:auto,noemulatedsd
2020

2121
# USB storage
22-
/devices/platform/msm_hsusb_host.0/usb1* auto auto defaults voldmanaged=usbdisk:auto
22+
d* auto auto defaults voldmanaged=usbdisk:auto,noemulatedsd
2323

2424
# ZRAM
25-
/dev/block/zram0 none swap defaults zramsize=268435456
25+
/dev/block/zram0 none swap defaults zramsize=134217728
26+
27+
# Cache as secondary swap
28+
/dev/block/platform/msm_sdcc.1/by-name/cache none swap defaults defaults

0 commit comments

Comments
 (0)