From 8acb37b2afedfdc15d1f0b3632c4ef90320930e6 Mon Sep 17 00:00:00 2001
From: Tad <tad@spotco.us>
Date: Wed, 30 Dec 2015 12:26:18 -0500
Subject: [PATCH 1/3] Add TWRP

Change-Id: I5d5d9f7c9eabcbc934afbd626d864f106e3d84ca
---
 BoardConfig.mk                                  |  13 ++++++
 recovery/root/etc/twrp.fstab                    |  29 ++++++++++++
 recovery/root/init.recovery.bacon.rc            |  58 ++++++++++++++++++++++++
 recovery/root/sbin/libQSEEComAPI.so             | Bin 0 -> 17496 bytes
 recovery/root/sbin/libdiag.so                   | Bin 0 -> 60360 bytes
 recovery/root/sbin/libdrmfs.so                  | Bin 0 -> 13488 bytes
 recovery/root/sbin/libdrmtime.so                | Bin 0 -> 5300 bytes
 recovery/root/sbin/librpmb.so                   | Bin 0 -> 9912 bytes
 recovery/root/sbin/libssd.so                    | Bin 0 -> 5296 bytes
 recovery/root/sbin/qseecomd                     | Bin 0 -> 9644 bytes
 recovery/root/vendor/lib/hw/keystore.msm8974.so | Bin 0 -> 13532 bytes
 11 files changed, 100 insertions(+)
 create mode 100644 recovery/root/etc/twrp.fstab
 create mode 100644 recovery/root/init.recovery.bacon.rc
 create mode 100755 recovery/root/sbin/libQSEEComAPI.so
 create mode 100755 recovery/root/sbin/libdiag.so
 create mode 100755 recovery/root/sbin/libdrmfs.so
 create mode 100755 recovery/root/sbin/libdrmtime.so
 create mode 100755 recovery/root/sbin/librpmb.so
 create mode 100755 recovery/root/sbin/libssd.so
 create mode 100755 recovery/root/sbin/qseecomd
 create mode 100755 recovery/root/vendor/lib/hw/keystore.msm8974.so

diff --git a/BoardConfig.mk b/BoardConfig.mk
index fa3feee..6bfb764 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -210,3 +210,16 @@ endif
 endif
 
 -include vendor/oneplus/bacon/BoardConfigVendor.mk
+
+# TWRP
+DEVICE_RESOLUTION := 1080x1920
+TW_TARGET_USES_QCOM_BSP := true
+TARGET_RECOVERY_PIXEL_FORMAT := "RGB_565"
+RECOVERY_GRAPHICS_USE_LINELENGTH := true
+TW_NO_USB_STORAGE := true
+TW_INCLUDE_CRYPTO := true
+BOARD_SUPPRESS_SECURE_ERASE := true
+RECOVERY_SDCARD_ON_DATA := true
+BOARD_HAS_NO_REAL_SDCARD := true
+RECOVERY_VARIANT := twrp
+TW_UNMOUNT_FIRMWARE_ON_BOOT := true
diff --git a/recovery/root/etc/twrp.fstab b/recovery/root/etc/twrp.fstab
new file mode 100644
index 0000000..af4036b
--- /dev/null
+++ b/recovery/root/etc/twrp.fstab
@@ -0,0 +1,29 @@
+# mount point    fstype  device             [device2]
+
+# firmware
+/aboot           emmc    /dev/block/platform/msm_sdcc.1/by-name/aboot          flags=backup=1;subpartitionof=/firmware
+/rpm             emmc    /dev/block/platform/msm_sdcc.1/by-name/rpm            flags=backup=1;subpartitionof=/firmware
+/logo            emmc    /dev/block/platform/msm_sdcc.1/by-name/LOGO           flags=backup=1;subpartitionof=/firmware
+/dbi             emmc    /dev/block/platform/msm_sdcc.1/by-name/dbi            flags=backup=1;subpartitionof=/firmware
+/tz              emmc    /dev/block/platform/msm_sdcc.1/by-name/tz             flags=backup=1;subpartitionof=/firmware
+/firmware        vfat    /dev/block/platform/msm_sdcc.1/by-name/modem          flags=mounttodecrypt;backup=1;display=Firmware
+/static_nv_bk    emmc    /dev/block/platform/msm_sdcc.1/by-name/oppostanvbk    flags=backup=1;subpartitionof=/firmware
+/sbl1            emmc    /dev/block/platform/msm_sdcc.1/by-name/sbl1           flags=backup=1;subpartitionof=/firmware
+
+# efs
+/modem_st1       emmc    /dev/block/platform/msm_sdcc.1/by-name/modemst1       flags=backup=1;display=EFS
+/modem_st2       emmc    /dev/block/platform/msm_sdcc.1/by-name/modemst2       flags=backup=1;subpartitionof=/modem_st1
+
+/oppodycnvbk     emmc    /dev/block/platform/msm_sdcc.1/by-name/oppodycnvbk
+/reserve4        emmc    /dev/block/platform/msm_sdcc.1/by-name/reserve4
+
+/system          ext4    /dev/block/platform/msm_sdcc.1/by-name/system         flags=fsflags="barrier=1"
+/data            ext4    /dev/block/platform/msm_sdcc.1/by-name/userdata       flags=encryptable=/dev/block/platform/msm_sdcc.1/by-name/reserve4;fsflags="noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc"
+/cache           ext4    /dev/block/platform/msm_sdcc.1/by-name/cache          flags=fsflags="noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc"
+/persist         ext4    /dev/block/platform/msm_sdcc.1/by-name/persist        flags=backup=1;display=Persist;fsflags="nosuid,nodev,barrier=1,data=ordered,nodelalloc,nomblk_io_submit"
+/boot            emmc    /dev/block/platform/msm_sdcc.1/by-name/boot
+/recovery        emmc    /dev/block/platform/msm_sdcc.1/by-name/recovery
+/misc            emmc    /dev/block/platform/msm_sdcc.1/by-name/misc
+
+/usb_otg         vfat    /dev/block/sda1    /dev/block/sda                     flags=display="USB-OTG";storage;wipeingui;removable
+
diff --git a/recovery/root/init.recovery.bacon.rc b/recovery/root/init.recovery.bacon.rc
new file mode 100644
index 0000000..6bc9217
--- /dev/null
+++ b/recovery/root/init.recovery.bacon.rc
@@ -0,0 +1,58 @@
+on load_all_props_action
+    load_all_props
+
+on firmware_mounts_complete
+    rm /dev/.booting
+
+on fs
+    #mount_all ./fstab.bacon
+    mkdir /firmware 0771 system system
+    wait /dev/block/platform/msm_sdcc.1/by-name/modem
+    mount vfat /dev/block/platform/msm_sdcc.1/by-name/modem /firmware ro shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0
+
+on late-init
+    #export LD_PRELOAD libsigchain.so
+    trigger fs
+    trigger load_all_props_action
+
+    # Remove a file to wake up anything waiting for firmware.
+    trigger firmware_mounts_complete
+
+    trigger early-boot
+    trigger boot
+
+on boot
+    # Enable Power modes and set the CPU Freq Sampling rates
+    write /sys/module/lpm_levels/enable_low_power/l2 4
+    write /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled 1
+    write /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled 1
+    write /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled 1
+    write /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled 1
+    write /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled 1
+    write /sys/module/msm_thermal/core_control/enabled 0
+    write /sys/devices/system/cpu/cpu1/online 1
+    write /sys/devices/system/cpu/cpu2/online 1
+    write /sys/devices/system/cpu/cpu3/online 1
+    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "ondemand"
+    write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "ondemand"
+    write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "ondemand"
+    write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor "ondemand"
+    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 300000
+    write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 300000
+    write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 300000
+    write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 300000
+    write /sys/module/msm_thermal/core_control/enabled 1
+    setprop recovery.perf.mode 0
+
+service qseecomd /sbin/qseecomd
+
+on property:recovery.perf.mode=1
+    write /sys/devices/system/cpu/cpu1/online 1
+    write /sys/devices/system/cpu/cpu2/online 1
+    write /sys/devices/system/cpu/cpu3/online 1
+
+on property:recovery.perf.mode=0
+    write /sys/devices/system/cpu/cpu1/online 0
+    write /sys/devices/system/cpu/cpu2/online 0
+    write /sys/devices/system/cpu/cpu3/online 0
+
diff --git a/recovery/root/sbin/libQSEEComAPI.so b/recovery/root/sbin/libQSEEComAPI.so
new file mode 100755
index 0000000000000000000000000000000000000000..cf3f8d8560000503aea3491bfd8d6c164a232e86
GIT binary patch
literal 17496
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
Lv6mGDP-*uct(f?F

literal 0
HcmV?d00001

diff --git a/recovery/root/sbin/libdiag.so b/recovery/root/sbin/libdiag.so
new file mode 100755
index 0000000000000000000000000000000000000000..7019083452f6320c12a42ecf30a5ffce1d489613
GIT binary patch
literal 60360
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

literal 0
HcmV?d00001

diff --git a/recovery/root/sbin/libdrmfs.so b/recovery/root/sbin/libdrmfs.so
new file mode 100755
index 0000000000000000000000000000000000000000..cd643db7b697032e3b0d8d9ad3de2be88285fc22
GIT binary patch
literal 13488
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

literal 0
HcmV?d00001

diff --git a/recovery/root/sbin/libdrmtime.so b/recovery/root/sbin/libdrmtime.so
new file mode 100755
index 0000000000000000000000000000000000000000..fb3888ef2b964e9eafeb8da7ea237fae68e49a72
GIT binary patch
literal 5300
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

literal 0
HcmV?d00001

diff --git a/recovery/root/sbin/librpmb.so b/recovery/root/sbin/librpmb.so
new file mode 100755
index 0000000000000000000000000000000000000000..78c8367816b9a9b9abd9983cf521d14cc086eede
GIT binary patch
literal 9912
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
O?}Xehh|rpD<9`6ZVsx4S

literal 0
HcmV?d00001

diff --git a/recovery/root/sbin/libssd.so b/recovery/root/sbin/libssd.so
new file mode 100755
index 0000000000000000000000000000000000000000..ee9dce6892d9aef23e47dff8dc3e1760ca01bff9
GIT binary patch
literal 5296
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
A>Hq)$

literal 0
HcmV?d00001

diff --git a/recovery/root/sbin/qseecomd b/recovery/root/sbin/qseecomd
new file mode 100755
index 0000000000000000000000000000000000000000..1301c69b95f826f55ec5a2fa83847175f88e1628
GIT binary patch
literal 9644
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
UNl!M^1}ha*Fm~D!fR>Mc1H|$E`v3p{

literal 0
HcmV?d00001

diff --git a/recovery/root/vendor/lib/hw/keystore.msm8974.so b/recovery/root/vendor/lib/hw/keystore.msm8974.so
new file mode 100755
index 0000000000000000000000000000000000000000..33fbf58f1e94373d6a95203a25ae8c7fbe7a382e
GIT binary patch
literal 13532
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
T*AdcO^^}32@T$%Lb-DirT-=_v

literal 0
HcmV?d00001

-- 
2.6.4


From dbf5fe10fdeb2c12bd7223a3bf25875deae17565 Mon Sep 17 00:00:00 2001
From: Tad <tad@spotco.us>
Date: Wed, 30 Dec 2015 12:47:00 -0500
Subject: [PATCH 2/3] Fix TWRP

Change-Id: I1ee4bf2b3d74e6eb5fb4c64929c7ce61cc57a370
---
 BoardConfig.mk         |  1 -
 rootdir/etc/twrp.fstab | 29 +++++++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 1 deletion(-)
 create mode 100644 rootdir/etc/twrp.fstab

diff --git a/BoardConfig.mk b/BoardConfig.mk
index 6bfb764..48a2d67 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -221,5 +221,4 @@ TW_INCLUDE_CRYPTO := true
 BOARD_SUPPRESS_SECURE_ERASE := true
 RECOVERY_SDCARD_ON_DATA := true
 BOARD_HAS_NO_REAL_SDCARD := true
-RECOVERY_VARIANT := twrp
 TW_UNMOUNT_FIRMWARE_ON_BOOT := true
diff --git a/rootdir/etc/twrp.fstab b/rootdir/etc/twrp.fstab
new file mode 100644
index 0000000..af4036b
--- /dev/null
+++ b/rootdir/etc/twrp.fstab
@@ -0,0 +1,29 @@
+# mount point    fstype  device             [device2]
+
+# firmware
+/aboot           emmc    /dev/block/platform/msm_sdcc.1/by-name/aboot          flags=backup=1;subpartitionof=/firmware
+/rpm             emmc    /dev/block/platform/msm_sdcc.1/by-name/rpm            flags=backup=1;subpartitionof=/firmware
+/logo            emmc    /dev/block/platform/msm_sdcc.1/by-name/LOGO           flags=backup=1;subpartitionof=/firmware
+/dbi             emmc    /dev/block/platform/msm_sdcc.1/by-name/dbi            flags=backup=1;subpartitionof=/firmware
+/tz              emmc    /dev/block/platform/msm_sdcc.1/by-name/tz             flags=backup=1;subpartitionof=/firmware
+/firmware        vfat    /dev/block/platform/msm_sdcc.1/by-name/modem          flags=mounttodecrypt;backup=1;display=Firmware
+/static_nv_bk    emmc    /dev/block/platform/msm_sdcc.1/by-name/oppostanvbk    flags=backup=1;subpartitionof=/firmware
+/sbl1            emmc    /dev/block/platform/msm_sdcc.1/by-name/sbl1           flags=backup=1;subpartitionof=/firmware
+
+# efs
+/modem_st1       emmc    /dev/block/platform/msm_sdcc.1/by-name/modemst1       flags=backup=1;display=EFS
+/modem_st2       emmc    /dev/block/platform/msm_sdcc.1/by-name/modemst2       flags=backup=1;subpartitionof=/modem_st1
+
+/oppodycnvbk     emmc    /dev/block/platform/msm_sdcc.1/by-name/oppodycnvbk
+/reserve4        emmc    /dev/block/platform/msm_sdcc.1/by-name/reserve4
+
+/system          ext4    /dev/block/platform/msm_sdcc.1/by-name/system         flags=fsflags="barrier=1"
+/data            ext4    /dev/block/platform/msm_sdcc.1/by-name/userdata       flags=encryptable=/dev/block/platform/msm_sdcc.1/by-name/reserve4;fsflags="noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc"
+/cache           ext4    /dev/block/platform/msm_sdcc.1/by-name/cache          flags=fsflags="noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc"
+/persist         ext4    /dev/block/platform/msm_sdcc.1/by-name/persist        flags=backup=1;display=Persist;fsflags="nosuid,nodev,barrier=1,data=ordered,nodelalloc,nomblk_io_submit"
+/boot            emmc    /dev/block/platform/msm_sdcc.1/by-name/boot
+/recovery        emmc    /dev/block/platform/msm_sdcc.1/by-name/recovery
+/misc            emmc    /dev/block/platform/msm_sdcc.1/by-name/misc
+
+/usb_otg         vfat    /dev/block/sda1    /dev/block/sda                     flags=display="USB-OTG";storage;wipeingui;removable
+
-- 
2.6.4


From c746b729a2092715fd5c6c5b24f455ea4eceae65 Mon Sep 17 00:00:00 2001
From: Tad <tad@spotco.us>
Date: Wed, 30 Dec 2015 14:19:08 -0500
Subject: [PATCH 3/3] Enable ZIP file signature verification by default

Change-Id: I9a62794b299b63dc5c010205cbfe5afcbc2a632b
---
 BoardConfig.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/BoardConfig.mk b/BoardConfig.mk
index 48a2d67..8624c93 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -222,3 +222,4 @@ BOARD_SUPPRESS_SECURE_ERASE := true
 RECOVERY_SDCARD_ON_DATA := true
 BOARD_HAS_NO_REAL_SDCARD := true
 TW_UNMOUNT_FIRMWARE_ON_BOOT := true
+TW_SIGNED_ZIP_VERIFY := true
-- 
2.6.4

