Skip to content

Commit 8c60ecb

Browse files
committed
Optimize storage and use cache as secondary swap
Change-Id: I15cf136cf180f0e6686cd37641cc4170867adecd
1 parent 32a3347 commit 8c60ecb

6 files changed

Lines changed: 75 additions & 53 deletions

File tree

overlay/frameworks/base/core/res/res/xml/storage_list.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
android:allowMassStorage="false"
3636
android:maxFileSize="4096" />
3737
<!-- external USB OTG storage -->
38-
<storage android:mountPoint="/storage/usbdisk"
38+
<storage android:mountPoint="/storage/usb-otg"
3939
android:storageDescription="@string/storage_usb"
4040
android:removable="true" />
4141
</StorageList>

recovery/root/etc/twrp.fstab

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
/recovery emmc /dev/block/mmcblk0p21
55
/system ext4 /dev/block/mmcblk0p22
66
/data f2fs /dev/block/mmcblk0p23 length=-16384
7-
/cache f2fs /dev/block/mmcblk0p24
87
/misc emmc /dev/block/mmcblk0p31
98
/sdcard1 vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="sdcard1";andsec;storage;wipeingui;removable
109
/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
10+
/usb-otg vfat /dev/block/sda1 /dev/block/sda flags=display="usb-otg";storage;wipeingui;removable

rootdir/etc/fstab.pyramid

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
/dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults
1010
/dev/block/platform/msm_sdcc.1/by-name/devlog /devlog ext4 noatime,nosuid,nodev,barrier=0 wait
1111
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,noatime,barrier=1 wait
12-
/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
13-
/dev/block/platform/msm_sdcc.1/by-name/cache /cache f2fs rw,discard,nosuid,nodev,noatime,nodiratime,inline_xattr wait,check
1412
/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
1513
/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
1614
/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
@@ -23,4 +21,7 @@
2321
d* auto auto defaults voldmanaged=usbdisk:auto,noemulatedsd
2422

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

rootdir/etc/init.pyramid.rc

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
import init.pyramid.usb.rc
22

33
on early-init
4-
write /sys/devices/system/cpu/cpu1/online 1
5-
write /sys/block/mmcblk0/bdi/read_ahead_kb 512
6-
write /sys/block/mmcblk0/queue/scheduler noop
4+
write /sys/devices/system/cpu/cpu1/online 1
5+
write /sys/block/mmcblk0/bdi/read_ahead_kb 512
6+
write /sys/block/mmcblk0/queue/scheduler noop
7+
write /sys/block/mmcblk1/bdi/read_ahead_kb 4096
8+
write /sys/block/mmcblk1/queue/scheduler noop
79

8-
# ZRAM
9-
write /sys/block/zram0/comp_algorithm lz4
10-
write /sys/block/zram0/max_comp_streams 2
10+
# ZRAM
11+
write /sys/block/zram0/comp_algorithm lz4
12+
write /sys/block/zram0/max_comp_streams 2
13+
14+
# UKMS
15+
write /sys/kernel/mm/uksm/run 1
16+
write /sys/kernel/mm/uksm/cpu_governor medium
17+
write /sys/kernel/mm/uksm/sleep_millisecs 500
1118

1219
on init
1320
mkdir /devlog 0700 root root
@@ -46,7 +53,10 @@ on fs
4653
mkdir /firmware_q6 0771 system system
4754
# mount all mmc partitions
4855
mount_all /fstab.pyramid
56+
# init and enable swap partitions (zram and cache)
57+
mkswap /dev/block/platform/msm_sdcc.1/by-name/cache
4958
swapon_all /fstab.pyramid
59+
write /proc/sys/vm/swappiness 60
5060

5161
mkdir /data/tombstones 0771 system system
5262
symlink /data/tombstones /tombstones
@@ -259,21 +269,20 @@ service dhcpcd_wlan0 /system/bin/dhcpcd -ABKL
259269
oneshot
260270

261271
service dhcpcd_p2p /system/bin/dhcpcd -aABKL
262-
disabled
263-
oneshot
272+
disabled
273+
oneshot
264274

265275
service dhcpcd_bt-pan /system/bin/dhcpcd -ABKL
266-
disabled
267-
oneshot
276+
disabled
277+
oneshot
268278

269279
service iprenew_bt-pan /system/bin/dhcpcd -n
270-
disabled
271-
oneshot
280+
disabled
281+
oneshot
272282

273283
service iprenew_wlan0 /system/bin/dhcpcd -n
274-
disabled
275-
oneshot
276-
# wifi--
284+
disabled
285+
oneshot
277286

278287
# external sdcard daemon running as media_rw (1023)
279288
service fuse_sdcard1 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/sdcard1 /storage/sdcard1
@@ -286,6 +295,11 @@ service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emul
286295

287296
on property:init.svc.bootanim=stopped
288297
start qcom-post-boot
298+
# config storage access
299+
write /sys/block/mmcblk0/bdi/read_ahead_kb 128
300+
write /sys/block/mmcblk0/queue/scheduler fiops
301+
write /sys/block/mmcblk1/bdi/read_ahead_kb 1024
302+
write /sys/block/mmcblk1/queue/scheduler row
289303

290304
on property:ro.hdmi.enable=true
291305
start hdmid
@@ -336,9 +350,5 @@ on property:sys.boot_completed=1
336350
# Wake on volume
337351
write /sys/keyboard/vol_wakeup 1
338352

339-
on property:init.svc.bootanim=stopped
340-
write /sys/block/mmcblk0/queue/scheduler fiops
341-
342353
on property:sys.radio.shutdown=true
343354
exec /system/bin/sh /system/etc/init.qcom.efs.sync.sh
344-

rootdir/etc/init.pyramid.sh

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,40 @@
22

33
export PATH=${PATH}:/system/bin/:/system/xbin/
44

5+
log -p i -t userinit "[${0}][Start]"
6+
57
# Log related mounts and mount points before
6-
log -p i -t userinit "[${0}] Before"
7-
echo "[${0}] Before" >> /cache/${0}.log
8-
mount >> /cache/${0}.log
9-
ls -la /data/ >> /cache/${0}.log
10-
ls -la /data1/ >> /cache/${0}.log
8+
echo "[Start]" >> /cache/${0}.log
9+
mount >> /cache/${0}.log
10+
echo "[/]" >> /cache/${0}.log
11+
ls -la / >> /cache/${0}.log
12+
echo "[/data]" >> /cache/${0}.log
13+
ls -la /data/ >> /cache/${0}.log
14+
echo "[/data1]" >> /cache/${0}.log
15+
ls -la /data1/ >> /cache/${0}.log
16+
du -sch /data1/* >> /cache/${0}.log
1117

12-
# Attempt to link data content to secondary data (optional)
18+
# Attempt to link data/cache content to secondary data (optional)
1319
# If we fail those locations will be used as usual
14-
# Ensure permissions are set correctly
15-
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" >> /cache/${0}.log
16-
#test -d /data1/app-asec && chmod 0700 /data1/app-asec && chown root:root /data1/app-asec && rm -Rf /data/app-asec && ln -s /data1/app-asec /data/app-asec && log -p i -t userinit "[${0}] Linked /data1/app-asec" && echo "[${0}] Linked /data1/app-asec" >> /cache/${0}.log
17-
#test -d /data1/app-lib && chmod 0771 /data1/app-lib && chown system:system /data1/app-lib && rm -Rf /data/app-lib && ln -s /data1/app-lib /data/app-lib && log -p i -t userinit "[${0}] Linked /data1/app-lib" && echo "[${0}] Linked /data1/app-lib" >> /cache/${0}.log
18-
#test -d /data1/app-private && chmod 0771 /data1/app-private && chown system:system /data1/app-private && rm -Rf /data/app-private && ln -s /data1/app-private /data/app-private && log -p i -t userinit "[${0}] Linked /data1/app-private" && echo "[${0}] Linked /data1/app-private" >> /cache/${0}.log
19-
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" >> /cache/${0}.log
20-
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" >> /cache/${0}.log
21-
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" >> /cache/${0}.log
20+
# Ensure permissions are set correctly and sync cache content
21+
test -d /data1/cache && chmod 0770 /data1/cache && chown system:cache /data1/cache && sync && cp -rpf /cache/* /data1/cache/ && rm -Rf /cache && ln -s /data1/cache /cache && log -p i -t userinit "[${0}] Linked /data1/cache" && echo "[${0}] Linked /data1/cache" >> /cache/${0}.log
22+
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" >> /cache/${0}.log
23+
test -d /data1/app-asec && chmod 0700 /data1/app-asec && chown root:root /data1/app-asec && rm -Rf /data/app-asec && ln -s /data1/app-asec /data/app-asec && log -p i -t userinit "[${0}] Linked /data1/app-asec" && echo "[${0}] Linked /data1/app-asec" >> /cache/${0}.log
24+
test -d /data1/app-lib && chmod 0771 /data1/app-lib && chown system:system /data1/app-lib && rm -Rf /data/app-lib && ln -s /data1/app-lib /data/app-lib && log -p i -t userinit "[${0}] Linked /data1/app-lib" && echo "[${0}] Linked /data1/app-lib" >> /cache/${0}.log
25+
test -d /data1/app-private && chmod 0771 /data1/app-private && chown system:system /data1/app-private && rm -Rf /data/app-private && ln -s /data1/app-private /data/app-private && log -p i -t userinit "[${0}] Linked /data1/app-private" && echo "[${0}] Linked /data1/app-private" >> /cache/${0}.log
26+
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" >> /cache/${0}.log
27+
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" >> /cache/${0}.log
28+
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" >> /cache/${0}.log
2229

2330
# Log related mounts and mount points after
24-
log -p i -t userinit "[${0}] After"
25-
echo "[${0}] After" >> /cache/${0}.log
26-
mount >> /cache/${0}.log
27-
ls -la /data/ >> /cache/${0}.log
28-
ls -la /data1/ >> /cache/${0}.log
31+
echo "[Stop]" >> /cache/${0}.log
32+
mount >> /cache/${0}.log
33+
echo "[/]" >> /cache/${0}.log
34+
ls -la / >> /cache/${0}.log
35+
echo "[/data]" >> /cache/${0}.log
36+
ls -la /data/ >> /cache/${0}.log
37+
echo "[/data1]" >> /cache/${0}.log
38+
ls -la /data1/ >> /cache/${0}.log
39+
du -sch /data1/* >> /cache/${0}.log
40+
41+
log -p i -t userinit "[${0}][Stop]"

system_prop.mk

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,26 @@
55
PRODUCT_PROPERTY_OVERRIDES += \
66
ro.sf.lcd_density=240
77

8-
# radio
8+
# Radio
99
PRODUCT_PROPERTY_OVERRIDES += \
1010
mobiledata.interfaces=rmnet0 \
1111
rild.libpath=/system/lib/libhtc_ril.so \
1212
ro.telephony.ril_class=HtcMsm8660RIL
1313

14-
# wifi
14+
# WiFi
1515
PRODUCT_PROPERTY_OVERRIDES += \
16-
wifi.interface=wlan0
16+
wifi.interface=wlan0
1717

1818
# UMS
1919
PRODUCT_PROPERTY_OVERRIDES += \
20-
persist.sys.usb.config=mtp,adb \
2120
ro.vold.umsdirtyratio=20
2221

23-
# tweaks
22+
# Tweaks
2423
PRODUCT_PROPERTY_OVERRIDES += \
25-
dalvik.vm.dexopt-data-only=1 \
26-
dalvik.vm.dexopt-flags=m=y \
27-
windowsmgr.max_events_per_sec=300 \
28-
pm.sleep_mode=1
24+
dalvik.vm.dexopt-data-only=1 \
25+
dalvik.vm.dexopt-flags=m=y \
26+
windowsmgr.max_events_per_sec=300 \
27+
pm.sleep_mode=1
2928

3029
# Display
3130
PRODUCT_PROPERTY_OVERRIDES += \

0 commit comments

Comments
 (0)