I want to adjust firmware components, or to have opportunity to test something on an android device. A problem is that usually modern devices prohibit to recover a brick for free.
Theoritically it is possible to program a full device simulator, primary to handle first low level stages (like bootloaders, and possibly boot, recovery, fastboot), not necessary to even program a workable screen and therefore OS, but preferable. A one way i know how to get hardware info is look into /proc using root.
In /proc/iomem there is common device memory map,
In /proc/devtree there is list of hardware components, versions and their base address to interact with,
/proc/devices has list of some unknown devices and /proc/cpuinfo has a list of all cpus with their version. Some additional useful info how that individual device work i think may be found in product documentation.
To find base address of images may be copied a scetter file from firmware and, some additional possibly not needed addresses may be resolved by unpacking boot and recovery.
Also as i assume, it can be used to simulate different devices, not to bind to a single one
I looked that the emulator like Qemu could do it, but for me it would be easer to create own one.
It’s looking not a complex thing to simulate hardware components, usually they do a simple work.
But i feel in practise it wouldn’t be as easy as may seen, what complexities i might meet with when try to implement. Would it even be possible, and if possible may it be portable?
Yuriy is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.