commit | 112b996ff2cd29c05c09f38ae37cdf6000ae66fc | [log] [tgz] |
---|---|---|
author | Amit Pundir <amit.pundir@linaro.org> | Thu Jun 11 22:02:24 2020 +0530 |
committer | Amit Pundir <amit.pundir@linaro.org> | Wed Jun 17 16:55:33 2020 +0530 |
tree | adacfa93778eaf832ae9e22099808aa5539c4b7e | |
parent | f6a643c6583f0d3f83abfe3ff04541b6e2914fb2 [diff] |
init.qcom.rc: Add a custom shutdown trigger to kill rmtfs cherry-picked from upstream device/linaro/dragonboard project. There is a kernel bug uncovered in db845c modem shutdown path in v5.7-rc1, where "reboot" or "reboot bootloader" commands do not work as expected when the device is connected to a WiFi AP. The db845c hard crashes on reboot, resulting in the device getting stuck in the usb crash debug mode and not coming back up without a hard power off. There is no reboot regression when the board is not connected to any AP. This kernel issue is already reported upstream: https://lists.infradead.org/pipermail/ath10k/2020-April/014970.html https://lists.infradead.org/pipermail/ath10k/2020-June/015206.html For now here is a userspace workaround where we do not wait for modem to shutdown gracefully (SIGTERM during reboot), instead we stop the rmtfs service explicitly using the "on shutdown" init trigger, thereby sending a SIGKILL signal. Signed-off-by: Amit Pundir <amit.pundir@linaro.org> Change-Id: Ieb8b65ceb979b1f698ddf7ae48ce49652b99a9dc
IMPORTANT NOTICE --> UNLOCKING AND ROOTING MAY VOID YOUR PHONE WARRANTY AND MAY BRICK YOUR DEVICE AS WELL. I'M NOT RESPONSIBLE FOR EITHER OF THAT.
Here is a reasonable guide to get you started on unlocking and rooting Poco F1 --> https://forum.xda-developers.com/poco-f1/how-to/xiaomi-poco-f1-unlock-bootloader-custom-t3839405
Just for the records I downloaded and installed following external packages to unlock and root my device-->
Also Dont forget to take a backup of your images from TWRP and copy them to your Host machine. It will come very handy. Believe me :)
mkdir aosp-repo cd aosp-repo repo init -u https://android.googlesource.com/platform/manifest -b master git clone git@github.com:pundiramit/android-local-manifests.git .repo/local_manifests -b master repo sync -j$nproc source build/envsetup.sh lunch aosp_beryllium-userdebug make -j$nproc
NOTE: To get display working on PocoF1, we need supported Adreno firmware binaries, otherwise PocoF1 will not boot to UI.
Adreno binaries are shipped with non-distributable license, hence I'm not shipping them in my build setup. You can extract Adreno a630_* firmware binaries from a working device build. I extracted mine from lineage-16.0-20190612-nightly-beryllium-signed.zip ;) Then copy the binaries to out vendor directory i.e. out/target/product/aosp_beryllium/vendor/firmware, and run "make -j$nproc" to create vendor.img again.
fastboot flash system system.img fastboot flash vendor vendor.img fastboot flash userdata userdata.img fastboot flash boot boot.img fastboot reboot
input swipe 20 2000 20 0 input tap 300 600 input tap 200 600 input tap 200 600 # Scanning for devices here. So wait till your BT mouse appears. input tap 400 600 input keyevent 22 input keyevent 22 input keyevent 66
mkdir kernel-repo cd kernel-repo repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline git clone git@github.com:pundiramit/android-local-manifests.git .repo/local_manifests -b kernel repo sync -j$nproc BUILD_CONFIG=beryllium/build.config.beryllium ./build/build.sh
Delete all objects in aosp-repo/device/xiaomi/beryllium/prebuilt-kernel/android-mainline/ then copy build artifacts from kernel-repo/out/android-mainline/dist/ to aosp-repo/device/xiaomi/beryllium/prebuilt-kernel/android-mainline/ build AOSP images again.
cd aosp-repo source build/envsetup.sh lunch aosp_beryllium-userdebug make TARGET_KERNEL_USE=mainline -j$nproc
Now flash and boot AOSP images again with your custom kernel.
ToDo -->