General Android-stack question

Hi, I have a general question about how Android and FP2 is built.
I’m often not sure if my battery is getting charged or what’s happening in Fastboot/Recovery or during boot sequence. So looking at the Android stack:

It seams to me the Battery is handled in the lowest “red” Layer. “Power Management”
So why does the LED not show that it’s getting Charged while i’m in Fastboot/Recovery mode?
Is it actually getting charged? Or is it just powered (while not charging the Battery) over the USB i obviously connect to do the Fastboot/Recovery job?

Regards, Novski

I assume that everything is done “lowlevel” in hardware. The OS/software during the boot can ask for info or even switch it on/off. Your question, if I understand it correctly is:

Why does the phone does not seem to be charging while in Fastboot/Recovery?

I also assume that this is a “security” feature so people do not attempt to flash their phones with nearly empty batteries.

Also keep in mind that more and more companies (Qualcomm, Apple) are messing with the normal charging process (“just add a stable source power and let the hardware to the rest”) without talking much about it, so they can sell it as as feature.

Search for High Voltage Dedicated Charging Port (HVDCP) [Quickcharge, Fastcharge] and in the end, I assume, we will end up with DRM just to ensure better cables.

“'USB is well-established as the favoured choice for connecting and charging devices,’ boasted Brad Saunders, USB 3.0 Promoter Group chair, at the announcement. ‘In support of the growing USB Type-C ecosystem, we anticipated the need for a solution extending the integrity of the USB interface. The new USB Type-C Authentication protocol equips product OEMs with the proper tools to defend against ‘bad’ USB cables, devices and non-compliant USB Chargers.’


Update: I just grep’ed through the code in “bootable/recovery” and was wondering if something gets written to “/sys/class/” but I wasn’t able to verify my idea … yet? So maybe I’m wrong :slight_smile: I found something about a bootloader control block (BCB), not sure if looking into that will help.

Maybe some more reading here will help?

This is Fairphone’s stack image:


1 Like

Verry interessting!
Thanks for those Links.

Im just currious… Does anybody know how the work between the Hardware Company and Fairphone works? Is the base of FP2 some kind of Purchased Development that include the Hardware bindings as package of the Producer or is the Kernel also writen by Fairphone Developers? How does that work?

I had similar questions a while ago, but I never got an answer. Here is what I think: I assume the ODM (the company that builds the phone) gets a special Android version from Qualcomm (Dragonboard with drivers?), so they can integrate the rest of the hardware (GPS, camera, …) and make them work together well. Those builds are more debug friendly than the version that is shipped in the end. Together with Qualcomm and the other companies and their APIs/software/bin blobs they develop a basic version that than gets handed out to other subcontractors, FP, and Google for fine tuning on the real phone hardware. But remember … this is only how I think it could work.

The Fairphone 2 OS is based on the code aurora “LA.BF.1.1.1-03010-8x74.0” tag (Link), so they took a version of qualcomm’s version and build off that.

I can’t follow, what peace of the stack you are referencing to… Is this mentioned driver part of the Hardware abstraction layer or of the Kernel? Can you explane that a bit depper for me?

Seams like code-aurora is a storage of opensource developed drivers. Are they developed by the companys that make parts or reverse enginered by users?

Regards, Novski

Codeaurora belongs to Qualcomm.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.