R

References

This book draws information from numerous resources - primarily developer.android.com (DAC) and source.android.com (SAC), which provide Google's official Android documentation. Additional resources are blogs, presentations and generally high-quality material which helps unravel the many aspects of Android's multitude of features.

If this work ever comes out in PDF*, all references are already hyperlinked, thus obviating the need for a references section, or the much needed Index. Until then, the print version certainly mandates both. I have added the references to print as of v1.0.1, and - to spare the interested reader long URL typing - also posted them online. This also helps correct their omission from v1.0.0 of the book (mea culpa), and enables me to update or correct them, should the need arise. The index will be maintained online, at http://NewAndroidBook.com/index.html**, to be kept in-sync as much as possible, once I get a good way to search PDFs programmatically.

Whereas in my previous books I used numbered references, I have decided to use short strings this time. The rationale is that the Android works are still being maintained by me, and when content is added or revised it might affect references, which would have to be renumbered. Using strings is a bit more cumbersome but is in that sense "future proof", and the references listed here are sorted - by chapter, and alphabetically, rather than in order of appearance.






* - PDFs are immensely superior to print, and you would not have found a greater advocate to this book in PDF than myself. Heck, I use my own HTML and PDF to quickly search. But the sad tale of #Vault7's leak, along with WikiLeaks' criminal disregard for copyrighted material (i.e. filtering out exploit code but not caring about my first edition's high-quality PDF, clearly copyrighted) made me not choose this route for my books. At least for the foreseeable future.
** - As opposed to the main page of the site, which is NotReallyIndex.html...
 

Introduction

aauDAC - Android Auto - http://developer.android.com/training/auto/index.html
abeSAC - Android Build Documentation - https://source.android.com/setup/build/building
abnDAC - Android Build Numbers - https://source.android.com/source/build-numbers.html#platform-code-names-versions-api-levels-and-ndk-releases
afdSAC - Android Framework Details - http://source.android.com/images/android_framework_details.png
amvSAC - Android Automotive - https://source.android.com/devices/automotive
apbAppBrain - Top Android SDK statistics - https://www.appbrain.com/stats/top-android-sdk-version
atDAC - Brillo - http://developers.android.com/things/
atfDAC - Brillo (FAQ) - http://developers.android.com/things/faq
atvSAC - Android TV - http://developer.android.com/tv
avhWikipedia - Android Version History - http://en.wikipedia.org/wiki/Android_version_history
avhdDAC - Android Dashboards (retired) - http://developer.android.com/about/dashboards/index.html
awrDAC - Building Wearables - http://developer.android.com/training/building-wearables.html
bioGoogle Groups - Bionic Overview - hhttp://android-platform.googlegroups.com/attach/0f8eba5ecb95c6f4/OVERVIEW.TXT?view=1&part=4
ggsiDAC - Generic System Images - https://developer.android.com/topic/generic-system-image/releases
gkiSAC - Generic Kernel Images - https://source.android.com/devices/architecture/kernel/generic-kernel-image
grmodSAC - Loadable Kernel Modules - https://source.android.com/devices/architecture/kernel/loadable-kernel-modules
jemJason Evans - JEMalloc - http://jemalloc.net
knKernel Newbies - A Human Readable ChangeLog - https://kernelnewbies.org/LinuxChanges
ndkDAC - The Android Native Development Kit - http://developer.android.com/tools/sdk/ndk/index.html
nsojemNSO - A Tale of Two Allocators (JEMalloc) - https://blog.nsogroup.com/a-tale-of-two-mallocs-on-android-libc-allocators-part-2-jemalloc/
pmADB - Project MainLine - https://android-developers.googleblog.com/2019/05/fresher-os-with-projects-treble-and-mainline.html
sackSAC - Kernel - https://source.android.com/devices/tech/kernel.html
scSAC - Scudo - https://source.android.com/devices/tech/debug/scudo
smpDAC - SMP - http://developer.android.com/training/articles/smp.html


Android Harware

abLARM - big.LITTLE - http://www.arm.com/files/downloads/big_LITTLE_Final_Final.pdf
armARM - ARM Architecture Reference Manual
av85Google Security Blog - Adopting ARM MTE - https://security.googleblog.com/2019/08/adopting-arm-memory-tagging-extension.html
cpCounterPoint - Global Smartphone AP Market Share, 2018 & 2019 - https://www.counterpointresearch.com/growth-smartphone-ap-market-return-2020/
dtorThe DeviceTree Org - Device Tree Standard - https://www.devicetree.org
dtoSAC - Device Tree Overlays - https://source.android.com/devices/architecture/dto
dtofSAC - DTO Partitions - https://source.android.com/devices/architecture/dto/partitions
dtcdocAOSP sources - DTC sources - https://android.googlesource.com/platform/external/dtc/+/refs/heads/master/Documentation
exySamsung - Exynos SoC List - https://www.samsung.com/semiconductor/minisite/exynos/products/all-processors/
gcpufGitHub (Google) - CPU Features Library - https://github.com/google/cpu_features
 


intmobPCWorld - Intel on verge of exiting smartphone/tablet market - https://www.pcworld.com/article/3063508/intel-is-on-the-verge-of-exiting-the-smartphone-and-tablet-markets-after-cutting-atom-chips.html
jedecJEDEC - UFS specification - https://www.jedec.org/standards-documents/focus/flash/universal-flash-storage-ufs
kplHuawei - Kirin SoC List - http://www.hisilicon.com/en/Products/ProductList/Kirin
mtksocMediaTek - MTK SoC List - https://www.mediatek.com/products/smartphones
nnapiSAC - Neural Networks API - https://source.android.com/devices/neural-networks
p4uartOptiv - Buildig Nexus 4 UART Debug Cable - https://www.optiv.com/explore-optiv-insights/blog/building-nexus-4-uart-debug-cable
puartGitHub (Peter Easton) - Android Debug Cable HowTo - https://github.com/Peter-Easton/android-debug-cable-howto
wpqcWikiPedia - Qualcomm SoC List - https://en.wikipedia.org/wiki/List_of_Qualcomm_Snapdragon_systems-on-chip
xomDAC - eXecute Only Memory - https://source.android.com/devices/tech/debug/execute-only-memory


Partitions & Filesystems

acgSAC - Cgroups - https://source.android.com/devices/tech/perf/cgroups
cgLinux Kernel Documentation - CGroups - https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt
dpLinux Plumbers Conference - Dynamic Partitions - https://www.linuxplumbersconf.org/event/2/contributions/
225/attachments/49/56/06._Dynamic_Partitions_-_LPC_Android_MC_v2.pdf
dpgSAC - Dynamic Partitions - https://source.android.com/devices/tech/ota/dynamic_partitions/implement
dplSAC - A/B Legacy - https://source.android.com/devices/tech/ota/dynamic_partitions/ab_legacy
erogUSENIX '19 (Gao) - EROFS - https://www.usenix.org/system/files/atc19-gao.pdf
erokLinux Kernel Documentation - EROFS - https://www.kernel.org/doc/Documentation/filesystems/erofs.txt
f2bmXDA - F2FS Benchmarks - http://forum.xda-developers.com/showthread.php?t=2697069
f2hwSamsung - F2FS - http://elinux.org/images/1/12/Elc2013_Hwang.pdf
f2lwLWN - F2FS - http://lwn.net/Articles/518988/
fusedocsLinux Kernel Documentation - FUSE - https://www.kernel.org/doc/html/latest/filesystems/fuse.html
lpcLinux Plumbers Conference - IncrementalFS - https://linuxplumbersconf.org/event/7/contributions/784/
attachments/522/934/Incremental_FS_for_LPC2020.pdf
odmpSAC - ODM Partitions - https://source.android.com/devices/bootloader/odm-partitions
sabSAC - A/B - https://source.android.com/devices/tech/ota/ab
sacoSAC - Vendor Overlay -
https://source.android.com/devices/bootloader/partitions/system-as-root#using-vendor-overlay
saebpfSAC - eBPF - https://source.android.com/devices/architecture/kernel/bpf
sdcdSAC - SDCardFS Deprecation - https://source.android.com/devices/storage/sdcardfs-deprecate
vbmAOSP sources - AVB/VBMeta - https://android.googlesource.com/platform/external/avb/#The-VBMeta-struct
xdasdXDA - FUSE/SDCardFS - https://www.xda-developers.com/diving-into-sdcardfs-how-googles-fuse-replacement-will-reduce-io-overhead/


Files & Directories

(No references)
 

Storage Management

aebNikolay Elenkov - Decrypting Android M Adopted Storage - https://nelenkov.blogspot.com/2015/06/decrypting-android-m-adopted-storage.html
apexdaXDA - Android Q APEX - https://www.xda-developers.com/android-q-apex-biggest-thing-since-project-treble/
apexsadSAC - APEX - https://source.android.com/devices/tech/ota/apex
asadSAC - Adoptable Storage - https://source.android.com/devices/storage/adoptable
assAndroid Central - What is Scoped Storage - https://www.androidcentral.com/what-scoped-storage
stdSAC - Storaged - https://source.android.com/devices/tech/debug/storaged


Android System Images & Updates

ablCompanion Website - Reversing ABoot - http://NewAndroidBook.com/articles/abl.html
adsAndroid Dev Summit '18 - GSI - https://www.youtube.com/watch?v=Y-HmCIHD63w
biSAC - Boot Image Header - https://source.android.com/devices/bootloader/boot-image-header
bruAOSP sources - bootable/recovery - https://android.googlesource.com/platform/
bootable/recovery/+/refs/heads/master/updater/blockimg.cpp
ciAndroid Continuous Integration - https://ci.android.com/builds/branches/aosp-master/grid
crauChromium Sources - update_engine - https://chromium.googlesource.com/aosp/platform/system/update_engine/#update-payload-file-specification
gbrOpenSource Google Blog - Introducing Brotli - https://opensource.googleblog.com/2015/09/introducing-brotli-new-compression.html
hdGitLab (Benjamin Dobell) - Heimdall - https://gitlab.com/BenjaminDobell/Heimdall
kfsCompanion Website - Reconstructing the FireOS file system - http://newandroidbook.com/Articles/KindleFS.html
lzmaTukaani - LZMA (XZ) Compression - https://tukaani.org/xz/format.html
lzoOberHumer - LZO Compression - http://www.oberhumer.com/opensource/lzo/
lz4GitHub - LZ4 Compression - https://lz4.github.io/lz4
sgsiSAC - GSI - https://source.android.com/setup/build/gsi
slGitHub (nlscc) - SAMLoader - https://github.com/nlscc/samloader
twrpTeamWin - TWRP (awesome work, guys!) - http://twrp.me


The Android Boot Process

3aQualcomm CodeAurora - LK Aboot sources - https://www.codeaurora.org/cgit/quic/la/kernel/lk/tree/app/aboot
3bAOSP Sources - LK sources (old!) - https://android.googlesource.com/kernel/lk/+/a9b07bbae16a0b1b6de07ec3a3e2005c99043757/
caQualcomm CodeAurora - Linux Loader sources - https://source.codeaurora.org/quic/la/abl/tianocore/edk2/tree/
QcomModulePkg/Application/LinuxLoader/LinuxLoader.c?h=LA.UM.8.1.r1-16200-sm8150.0
oghOmaha Consulting - Google/Omaha Tutorial Chrome Updater - https://omaha-consulting.com/google-omaha-tutorial-chrome-updater
plProgrammerSought - MTK Bootloader reversing - https://www.programmersought.com/article/26251032337/
qgGitLab (Qualcomm) - ABL sources - https://gitlab.com/quic_la/abl
 

User Mode Startup - init & Zygote

viSAC - Vendor init - https://source.android.com/security/selinux/vendor-init


The Framework Service Architecture

1Dianne Hackborne - OpenBinder - http://www.angryredplanet.com/~hackbod/openbinder/docs/html/
2OSNews (Dianne Hackborne) - http://www.osnews.com/story/13674/Introduction_to_OpenBinder_and_Interview_with_Dianne_Hackborn


Device Configuration & Management

(No references)

Android Through a Linux Lens

lasSAC - Low Memory Killer Daemon - https://source.android.com/devices/tech/perf/lmkd
llkdSAC - Live Lock Daemon - https://source.android.com/devices/architecture/kernel/llkd


Logging, Statistics & Tracing

adftSAC - ftrace - https://source.android.com/devices/tech/debug/ftrace
gioGoogle I/O '17 - Systrace - https://www.youtube.com/watch?v=Qfo5fdoXrTU


Power Management

asppSAC - Android Power Profiles - https://source.android.com/devices/tech/power/values
govdoc Linux Kernel Documentation - CPUFreq Governors - https://www.kernel.org/doc/html/latest/admin-guide/pm/cpufreq.html
linthLinaro - Thermal Management for ARM SoCs - https://elinux.org/images/2/2b/A_New_Simplified_Thermal_Framework_For_ARM_Platforms.pdf
pmkdLinux Kernel Documentation - Power Mgmt /sys entries - https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-power
pshSAC - The Power Stats HAL -
https://source.android.com/devices/tech/power/power-stats-hal
pspAOSP - The Pixel Power Stats service -
https://android.googlesource.com/device/google/coral/+/refs/heads/master/powerstats/service.cpp
suspSAC - System Suspend - https://source.android.com/devices/architecture/systemsuspend
tmSAC - Thermal Mitigation -
https://source.android.com/devices/architecture/hidl/thermal-mitigation