init.rc: disable creation of bootreceiver tracing instance for kernels >=4.9 and <= 5.4

The tracing instance takes extra RAM and is not needed on devices running older kernels.

Bug: 194156700
Test: manual on a Pixel device

Signed-off-by: Alexander Potapenko <glider@google.com>
Merged-In: I794062741688ebea0e4bc500723a966f8f646ee1
Change-Id: Ie8614e67a89cea67bed88427820fefdf110713c9
(cherry picked from commit 17b1c428d493da1bfc4beffd90b0ac2d0401fc06)
Merged-In:Ie8614e67a89cea67bed88427820fefdf110713c9
diff --git a/rootdir/init.rc b/rootdir/init.rc
index d10689a..4515950 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -590,7 +590,20 @@
     # Load trusted keys from dm-verity protected partitions
     exec -- /system/bin/fsverity_init --load-verified-keys
 
-on late-fs && property:ro.product.cpu.abilist64=*
+# Only enable the bootreceiver tracing instance for kernels 5.10 and above.
+on late-fs && property:ro.kernel.version=4.9
+    setprop bootreceiver.enable 0
+on late-fs && property:ro.kernel.version=4.14
+    setprop bootreceiver.enable 0
+on late-fs && property:ro.kernel.version=4.19
+    setprop bootreceiver.enable 0
+on late-fs && property:ro.kernel.version=5.4
+    setprop bootreceiver.enable 0
+on late-fs
+    # Bootreceiver tracing instance is enabled by default.
+    setprop bootreceiver.enable ${bootreceiver.enable:-1}
+
+on property:ro.product.cpu.abilist64=* && property:bootreceiver.enable=1
     # Set up a tracing instance for system_server to monitor error_report_end events.
     # These are sent by kernel tools like KASAN and KFENCE when a memory corruption
     # is detected. This is only needed for 64-bit systems.