Hacker News new | past | comments | ask | show | jobs | submit login

If you own a device, you're entitled to a copy of all GPL software that came with it, including some build tools. However, if the diminished battery performance comes from some kind of firmware update for an embedded microcontroller, you're probably out of luck there, unless that controller also runs GPL software.

It's possible the changes you're looking for are already listed on one of these repos: https://android.googlesource.com/device/google/sunfish-sepol... https://android.googlesource.com/device/google/sunfish-kerne... https://android.googlesource.com/device/google/sunfish/

(sunfish is the codename for the Pixel 4a)




I looked through all the sunfish repos first, which is how I found this: https://android.googlesource.com/device/google/sunfish-kerne...

But apparently sunfish-kernel only contains binaries.

Given there's an update to Image.lz4, that seems there's an update to the kernel. I also compared the binary to the previous version and found some new strings possibly related to battery charging profile.

Next I checked out the source using Google's documentation but the latest commit is here: https://android.googlesource.com/kernel/msm/+/refs/heads/and...

But maybe I'm looking in the wrong place.


If those pre-compiled binaries aren't based on GPL software, I don't think you'll have much luck getting their sources.

Android's source code is a maze of branches and tags, unfortunately. The change can have been made in the generic cross-device kernel tree, or it could've been a separate module, or it could've been a binary.

One thing you could consider is checking out the kernel for a project like LineageOS: https://github.com/LineageOS/android_device_xiaomi_sm6150-co... They usually pull+filter changes from upstream. For instance, these changes may be of interest: https://review.lineageos.org/c/LineageOS/android_device_xiao... https://review.lineageos.org/c/LineageOS/android_device_xiao... These kernels are used for a variety of devices with similar hardware, so not all changes have anything to do with the Pixel 4a, but it could prove useful in your search.


Image.lz4 is definitely a Linux kernel, and it's definitely changed: https://android.googlesource.com/device/google/sunfish-kerne...

Would changes to external closed-source binary files change the kernel image itself? There are kernel modules in that commit but it looks to me like they all come directly from here: https://developers.google.com/android/drivers

Google does provide detailed instructions for downloading all sources for the kernel, and I didn't see any changes since 2023 to any source files: https://source.android.com/docs/setup/

Thanks for the extra places to look. I'll check them out.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: