--- This shouldn't be specially dangerous, but as usual: ---
WARNING: THIS METHOD CAN BE DANGEROUS. DON’T DO ANYTHING IF YOU DO NOT KNOW WHAT YOU DO.
I AM NOT RESPONSIBLE IF YOU TRANSFORM YOUR SPICA INTO A BRICK
I've made a specially prepared kernel to allow testing new kernels without flashing, using kexec.
- kexec inside the initramfs
- no recovery utility, just kernel output on the screen (ADB still available)
- always boots to recovery
- screen is kept enabled on kernel shutdown (kexec shuts the old kernel down first)
Bugs: (will be probably tracked down and fixed in some near future)
- CPU frequency has to be changed to 400 MHz or less before running kexec.(ie. echo 400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq)
- Flash the development kernel
- Upload new kernel to your phone (preferably with adb push and to /tmp)
- Limit CPU frequency (echo 400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq)
- Load the kernel with kexec -l kernel_image
- Boot the kernel with kexec -e
- Kernel can be flashed to the phone by issuing the following command in adb shell:
where kernel_image is the path to the kernel located somewhere on the phone (in /tmp preferably)
bml_flash boot kernel_image
- If you want to make your own kernel supporting kexec, gunzip the attached kexec.gz file, put it in /sbin of your initramfs source tree, enable "kexec system call" support in your kernel configuration and rebuild it.
- utils.tar.gz contains physical memory manipulation utilities to allow dumping and modification of RAM contents, for example android ram console data.