Android build system supports SANITIZE_TARGET environment variable to choose sanitizer option for all modules at once. However, some of Rust library is not considered to work with this global sanitizer option because Rust library is not following ASAN automatic path modification. In addition, EGL Loader is also not automatically following ASAN path modification. This article memorize manual modification for fixing it.
LinuxのSystem Call番号一覧をunistd.hから抽出した。名称はwww.man7.orgへのリンクとなっている。
As noted on my previous post, tinyalsa code is not capable to playback/capture stream from designated subdevice. Fortunately, tinyalsa source code is easy to extend so that implementing subdevice option is straight forward.
Virtio Sound is a paravirtualized sound device to access sound device from virtual machine. Unlike other virtual sound device among QEMU implementations, Virtio Sound doesn't assume any physical sound device to derive the virtual device behavior. Instead, Virtio Sound relays on VIRTIO specification to define device behavior so that virtual machine can exchange sound data without any restriction coming from physical device in general. One such example is the number of streams per single sound device. This article demonstrate how the number of streams is configured on QEMU and how it is tested from virtual machie side.
SurfaceFlinger uses RenderEngine to compose client buffers. RenderEngine abstracts several drawing libraries and provides interface function drawLayers(). There are four types of RenderEngine defined on AOSP.
THREADEDSKIA_GLSKIA_GL_THREADEDGLES