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 (though MOXiI made PDFs some six years later, so never say never).
** - As opposed to the main page of the site, which is NotReallyIndex.html...
 

The Source

cddSAC - "Compatibility Definition Documents" - https://source.android.com/compatibility/cdd
ebpgWill Deacon (KVM Forum) - "Virtualization for the Masses: Exposing KVM on Android" - https://www.youtube.com/watch?v=wY-u6n75iXc
ebpgBrendan Gregg - "BPF Performance Tools" (Addison-Wesley Prof Computing Series, 1st Ed)
ebpfSAC - "Extending the Kernel With eBPF" - https://source.android.com/devices/architecture/kernel/bpf
kcSAC - "Kernel Configuration" - https://source.android.com/devices/architecture/kernel/config
modsysSAC - "Modular System" - https://source.android.com/devices/architecture/modular-system/
smSoong Sources - https://ci.android.com/builds/submitted/7289536/linux/latest/view/soong_build.html
soongSoong Sources - https://android.googlesource.com/platform/build/soong/+/master/README.md


Android at the Native Level

aeiDAC - "ApplicationExitInfo" - https://developer.android.com/reference/android/app/ApplicationExitInfo
dtdSAC - "Debugging Native Android Code" - https://source.android.com/devices/tech/debug/
erDAC - "App Process Exit Reasons (Android 11)" - https://developer.android.com/about/versions/11/features#app-process-exit-reasons
gwpaDAC - "GWP-ASAN" - https://developer.android.com/ndk/guides/gwp-asan
lmuAOSP Sources - https://android.googlesource.com/platform/system/memory/libmemunreachable/+/master/README.md
pdPerfetto Documentation - https://perfetto.dev/docs/data-sources/native-heap-profiler
relaMaskRay's Blog - "Relative Relocations and RELR" -
https://maskray.me/blog/2021-10-31-relative-relocations-and-relr
scoSAC - "Scudo" - https://source.android.com/devices/tech/debug/scudo
vndkdSAC - "VNDK" - https://source.android.com/devices/architecture/vndk
vndkpSAC - "VNDK - Design Principles and Practical Migration" - https://source.android.com/devices/architecture/images/VNDK.pdf


Packages & the PackageManagerService

ainDAC - "Intent Filters" - https://developer.android.com/guide/components/intents-filters
amxmlDAC - "Android Manifest" - https://developer.android.com/guide/topics/manifest/manifest-intro
apphDAC - "App Hibernation" - https://developer.android.com/topic/performance/app-hibernation
foaXDA Developers - "Fabricated Overlay .." -
https://www.xda-developers.com/android-12s-fabricated-overlay-api-brings-back-rootless-themes/
qapGoogle Play (Support answers) - https://support.google.com/googleplay/android-developer/answer/10158779
rroSony - "Runtime Resource Overlay" - https://developer.sony.com/posts/
sony-contributes-runtime-resource-overlay-framework-to-android-code-example/
zaoAndroid Developers' Blog - "ZipAlign" -
https://android-developers.googleblog.com/2009/09/zipalign-easy-optimization.html
 

Application Internals & the ActivityManagerService

cafDAC - "Cached App Freezer" - https://source.android.com/devices/tech/perf/cached-apps-freezer
cpbDAC - "Content Provider Basics" - https://developer.android.com/guide/topics/providers/content-provider-basics.html
ltmDAC - "Lock Task Mode" -
https://developer.android.com/work/dpc/dedicated-devices/lock-task-mode
oomaAOSP Sources - "OoM Adjuster" - https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/services/core/
java/com/android/server/am/OomAdjuster.md
sliDAC - "Slices" - https://developer.android.com/guide/slices/getting-started
tasksDAC - "Tasks" - https://developer.android.com/guide/components/activities/tasks-and-back-stack

Application Services

aaDAC - "Search" - https://developer.android.com/guide/topics/search
a11pdDAC - "Compatibility Framework Tools" - https://developer.android.com/guide/app-compatibility/test-debug
asrcDAC - "App Search" - https://developer.android.com/guide/topics/search/appsearch
jobDAC - "Background Optimization" - https://developer.android.com/topic/performance/background-optimization
shcDAC - "Creating Shortcuts" -
https://developer.android.com/guide/topics/ui/shortcuts/creating-shortcuts
shdDAC - "Datasets" - https://developer.android.com/training/data-storage/shared/datasets
smdocDAC - "SearchManager class" - https://developer.android.com/reference/android/app/SearchManager

Dalvik Virtual Machine Internals

dbSAC - Dalvik Bytecode - http://source.android.com/devices/tech/dalvik/dalvik-bytecode.html
dcSAC - Dalvik Constraints - https://source.android.com/devices/tech/dalvik/constraints.html
dff, diiSAC - DEX Format - http://source.android.com/devices/tech/dalvik/dex-format.html
difSAC - Dalvik Instructions - http://source.android.com/devices/tech/dalvik/instruction-formats.html
io2Dan Bornstein (Google I/O '08) - "The Dalvik Virtual Machine" - https://sites.google.com/site/io/dalvik-vm-internals/
r8AOSP - D8/R8 sources - https://r8.googlesource.com/r8/+/refs/heads/main
wsCompanion Website - "Analyzing the WeakSauce Exploit" - http://newandroidbook.com/Articles/HTC.html


The Android RunTime (ART)

art17Google I/O '17 - "ART Garbage Collection" - https://www.youtube.com/watch?v=iFE2Utbv1Oo
art19Google I/O '19 - "ART Garbage Collection" - https://www.youtube.com/watch?v=1uLzSXWWfDg
atiSAC - "ART Tooling Interface" - https://source.android.com/devices/tech/dalvik/art-ti
chaSAC - "Class Hierarchy Analysis" - https://source.android.com/devices/tech/dalvik/improvements#class-hierarchy-analysis
dsUsenix - DroidScraper - https://www.usenix.org/system/files/raid2019-ali-gombe.pdf
gcdSAC - Garbage Collection - https://source.android.com/devices/tech/dalvik/gc-debug
jgcJones, Hosking & Moss - Garbage Collection Handbook (Chapman & Hall/CRC)
jiaOracle - JNI Invocation Specification - JNI Invocation Specification
jvmtiOracle - "JVM Tooling Interface" - https://docs.oracle.com/javase/8/docs/technotes/guides/jvmti/index.htm
sacjSAC - "JIT Compilation" - https://source.android.com/devices/tech/dalvik/jit-compiler
 

Binder

abDAC - "AIDL Backends" - https://source.android.com/devices/architecture/aidl/aidl-backends
bsgSAC - "Binder IPC Scatter/Gather" -
https://source.android.com/devices/architecture/hidl/binder-ipc#scatter
c24Synacktiv - "CVE-2020-0041" - https://www.synacktiv.com/en/publications/binder-analysis-and-exploitation-of-cve-2020-0041.html
cbbChristian Braunder - "BinderFS" - https://brauner.github.io/2019/01/09/android-binderfs.html
dhDianne Hackborn - "OpenBinder Documentation" - http://www.angryredplanet.com/~hackbod/openbinder/
gaiDAC - "AIDL" - https://developer.android.com/guide/components/aidl
lwnsLWN - "Memory Shrinkers" - https://lwn.net/Articles/550463/
saDAC - "Stable AIDL" - https://source.android.com/devices/architecture/aidl/stable-aidl