[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-03-26 UTC。"],[],[],null,["# Why AVF?\n\nMobile computing devices are handling increasingly larger amounts of personally\nsensitive data. The presence of such sensitive data, aided by the constant\nconnection to the outside world, has resulted in increased investments from\nmalicious actors interested in exploiting vulnerabilities to further their goals.\n\nOperating systems, with the help of hardware memory management units (MMUs),\nprovide abstractions that isolate unrelated processes from each other. Only\ncomponents that are part of the Trusted Computing Base (TCB) are allowed to\ndirectly program these MMUs.\n\nThis model has been the foundation of how privacy and security have been\nimplemented since the introduction of Unix-like operating systems. However, this\nrequirement has become problematic in that today's TCB is too large: it includes\nmost device and bus drivers, complex schedulers, file systems, network stack and\nprotocols, caches, executable parsers and loaders, and sockets. It has become\nvery difficult to ensure every corner of this complicated system is safe.\n\nThe Linux kernel has over 20 million lines of code and the rate of changes and\nrewrites is astonishing. This growth is an immense help to Android and our\necosystem. However its large TCB makes it difficult to ensure the absence of\nexploitable vulnerabilities.\n\nHardware vendors have developed solutions, such as Arm's TrustZone, which allow\nprocessors to run in Secure mode and tag memory transactions as \"secure\" or\n\"nonsecure.\" In such systems, sensitive data is stored in and only directly\navailable to the secure world, which provides services to the nonsecure world\non demand.\n\nThe main limitation of these kind of solutions is that the domains are too\ncoarse-grained: only secure and nonsecure. As more use cases that require\nisolation from the operating system are introduced, the attack surface increases\nand vulnerabilities are likely to lead to compromise of the entire device.\n\nAnother limitation of today's solutions is that they're designed for a\nrelatively static world in which all use case resources are accounted for and\nallocated ahead of time. These solutions aren't good enough for dynamic use\ncases in which resources are allocated on demand.\n\nIn addition, the APIs used outside of the Android operating system are\nfragmented and restrict our ability to deploy use cases at the Android scale,\nincluding fundamentals like Keymint and Gatekeeper.\n\nTo address these limitations and enable Android to provide a robust foundation\nfor next generation use cases, Android 13 introduces\nsecure virtualization as the Android Virtualization Framework (AVF).\n\nThe main goal of AVF is to provide a secure and private execution environment\nfor next-generation use cases.\n| **Note:** AVF doesn't fully replace TrustZone. Today, Android SoCs can't function without TrustZone as key devices assume secure access only."]]