<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>安卓系统 on Luoj`s Markdown</title>
    <link>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/</link>
    <description>Recent content in 安卓系统 on Luoj`s Markdown</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Tue, 09 Jun 2026 18:04:00 +0800</lastBuildDate>
    <atom:link href="https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>04-vendor/giec/厂商定制层分析</title>
      <link>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/04-%E5%8E%82%E5%95%86%E5%AE%9A%E5%88%B6%E5%B1%82/</link>
      <pubDate>Tue, 09 Jun 2026 18:04:00 +0800</pubDate>
      <guid>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/04-%E5%8E%82%E5%95%86%E5%AE%9A%E5%88%B6%E5%B1%82/</guid>
      <description>&lt;h1 id=&#34;vendorgiec-厂商定制层分析&#34;&gt;vendor/giec/ 厂商定制层分析&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;基于 &lt;code&gt;device-giec.mk&lt;/code&gt; 逐行追踪，理解&amp;quot;厂商如何改系统&amp;quot;
参考代码库：&lt;code&gt;vendor/giec/&lt;/code&gt;，Android 14 + Amlogic S905X5M&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;目录&#34;&gt;目录&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;#1-device-giecmk-%E6%80%BB%E8%A7%88&#34;&gt;device-giec.mk 总览&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#2-gapps-%E9%9B%86%E6%88%90%E6%9D%A1%E4%BB%B6%E7%BC%96%E8%AF%91&#34;&gt;GApps 集成（条件编译）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#3-selinux-%E7%AD%96%E7%95%A5&#34;&gt;SELinux 策略&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#4-hidl-%E6%9C%8D%E5%8A%A1%E5%A3%B0%E6%98%8Emanifest--matrix&#34;&gt;HIDL 服务声明（manifest + matrix）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#5-hidl-%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%B8%8E%E6%9C%8D%E5%8A%A1%E7%AB%AFhwstbcmdservice&#34;&gt;HIDL 客户端与服务端（hwstbcmdservice）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#6-%E9%A2%84%E7%BD%AE-apk&#34;&gt;预置 APK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#7-%E9%A2%84%E7%BD%AE%E4%BA%8C%E8%BF%9B%E5%88%B6%E4%B8%8E-shell-%E8%84%9A%E6%9C%AC&#34;&gt;预置二进制与 Shell 脚本&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#8-%E8%AE%BE%E5%A4%87%E9%85%8D%E7%BD%AE%E4%B8%8E%E6%9D%A1%E4%BB%B6%E7%BC%96%E8%AF%91&#34;&gt;设备配置与条件编译&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#9-adb-%E4%B8%8E%E8%B0%83%E8%AF%95%E9%85%8D%E7%BD%AE&#34;&gt;ADB 与调试配置&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#10-%E7%AD%BE%E5%90%8D%E9%85%8D%E7%BD%AE&#34;&gt;签名配置&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-device-giecmk-总览&#34;&gt;1. device-giec.mk 总览&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;vendor/giec/
├── Android.mk                     # 入口：遍历所有 subdir
├── device-giec.mk                 # ★ 核心 Makefile，被 device 层 include
├── common/
│   ├── Android.mk                 # 编译 apps/ 和 libraries/ 下的模块
│   ├── Android.bp
│   ├── sepolicy/                  # SELinux 规则（.te 文件）
│   ├── manifest.xml               # HIDL 服务声明（设备提供什么服务）
│   ├── compatibility_matrix.xml   # HIDL 需求声明（设备需要什么服务）
│   ├── keys/
│   │   └── adbkey.pub             # ADB 预置公钥
│   ├── libraries/hwstbcmdapi/     # ★ 核心 HIDL 服务完整实现
│   └── files/Privacy_Policy.txt   # 隐私政策
├── apps/                          # 预置 APK
│   ├── OTAClient/
│   ├── BazeportLauncher/
│   ├── BazeportSystem/
│   ├── LeanKeyboard/
│   ├── Glauncher/
│   ├── STB-TEST/
│   ├── remove_unused_module/
│   └── busybox/
├── hardware/interfaces/           # HIDL .hal 定义
│   └── hwstbcmdservice/
│       └── 1.0/
└── executable/                    # Shell 脚本工具集
    ├── get_display_id.sh
    └── network/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;device-giec.mk&lt;/code&gt; 在构建系统中被 &lt;code&gt;device/amlogic/ross/device.mk&lt;/code&gt;（或类似设备配置）通过 &lt;code&gt;$(call inherit-product, vendor/giec/device-giec.mk)&lt;/code&gt; 包含。它的作用是&lt;strong&gt;把厂商所有的定制内容注入到构建产物中&lt;/strong&gt;。&lt;/p&gt;</description>
    </item>
    <item>
      <title>03-JavaforAndroid速查表</title>
      <link>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/03-java-%E9%80%9F%E6%9F%A5%E8%A1%A8/</link>
      <pubDate>Tue, 09 Jun 2026 18:03:00 +0800</pubDate>
      <guid>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/03-java-%E9%80%9F%E6%9F%A5%E8%A1%A8/</guid>
      <description>&lt;h1 id=&#34;java-for-android-速查表&#34;&gt;Java for Android 速查表&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;目标读者：有 C/C++ 嵌入式背景，需要读懂 Android Framework 和 APK 源码
原则：&lt;strong&gt;遇到再查&lt;/strong&gt;，不用从头啃 Java 教程。本文档只覆盖读代码必须理解的部分。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-java-与-cc-的核心差异&#34;&gt;1. Java 与 C/C++ 的核心差异&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;C/C++&lt;/th&gt;
          &lt;th&gt;Java&lt;/th&gt;
          &lt;th&gt;说明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;.h&lt;/code&gt; + &lt;code&gt;.c&lt;/code&gt; / &lt;code&gt;.cpp&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;.java&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;一个文件一个 public 类，文件名必须和类名一致&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;#include&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;import&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;import 只是告诉编译器去哪找类，不复制代码&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;指针 &lt;code&gt;*&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;无指针&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;所有对象都通过引用访问，没有 &lt;code&gt;*&lt;/code&gt; 和 &lt;code&gt;-&amp;gt;&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;手动 &lt;code&gt;malloc/free&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;GC 自动回收&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;new&lt;/code&gt; 分配，JVM 自动回收，不用 free&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;struct&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;用 &lt;code&gt;class&lt;/code&gt; 代替&lt;/td&gt;
          &lt;td&gt;Java 没有 struct，纯数据用 POJO&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;全局函数&lt;/td&gt;
          &lt;td&gt;所有函数必须在类里&lt;/td&gt;
          &lt;td&gt;没有全局函数，static 方法近似&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;#define&lt;/code&gt; / &lt;code&gt;const&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;static final&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;public static final int MAX = 100;&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;注意拼写不一样&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;NULL&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;null&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;全小写&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;2-类继承接口--重点&#34;&gt;2. 类、继承、接口 —— 重点&lt;/h2&gt;
&lt;h3 id=&#34;21-类-class&#34;&gt;2.1 类 (Class)&lt;/h3&gt;
&lt;p&gt;定义方式和 C++ 类似，但区别：&lt;strong&gt;所有方法默认是虚函数&lt;/strong&gt;（可被重写）。&lt;/p&gt;</description>
    </item>
    <item>
      <title>02-Android构建系统入门</title>
      <link>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/02-android-%E6%9E%84%E5%BB%BA%E7%B3%BB%E7%BB%9F/</link>
      <pubDate>Tue, 09 Jun 2026 18:02:00 +0800</pubDate>
      <guid>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/02-android-%E6%9E%84%E5%BB%BA%E7%B3%BB%E7%BB%9F/</guid>
      <description>&lt;h1 id=&#34;android-构建系统入门&#34;&gt;Android 构建系统入门&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;学习日期: 2026-04-28
参考项目: Amlogic S905X5M (ross) Android 14 TV
前置知识: 了解 Makefile 基本语法&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-android-构建系统的演进&#34;&gt;1. Android 构建系统的演进&lt;/h2&gt;
&lt;p&gt;Android 构建系统经历了三个阶段：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Before 2014: Android.mk (纯 Makefile)
     ↓
2014-2019:   Android.mk + Android.bp (Soong) 混用
     ↓
2019+:       Android.bp (Soong) 为主，逐步淘汰 Android.mk
     ↓
Future:      Bazel 构建 (Google 正在推进)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;当前项目的状态：&lt;strong&gt;两者混用&lt;/strong&gt;。参考代码库中 vendor/giec 既有 24 个 Android.mk，也有 8 个 Android.bp。Google 推荐新代码用 Android.bp。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;2-androidbp-soong-语法详解&#34;&gt;2. Android.bp (Soong) 语法详解&lt;/h2&gt;
&lt;h3 id=&#34;21-基本结构&#34;&gt;2.1 基本结构&lt;/h3&gt;
&lt;p&gt;Android.bp 使用 &lt;strong&gt;Blueprint&lt;/strong&gt; 格式（类似 JSON 的 DSL），每个代码模块定义为 &lt;strong&gt;一个模块类型 + 属性块&lt;/strong&gt;：&lt;/p&gt;</description>
    </item>
    <item>
      <title>01-Android系统架构总览</title>
      <link>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/01-android-%E6%9E%B6%E6%9E%84%E6%A6%82%E8%A7%88/</link>
      <pubDate>Tue, 09 Jun 2026 18:01:00 +0800</pubDate>
      <guid>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/01-android-%E6%9E%B6%E6%9E%84%E6%A6%82%E8%A7%88/</guid>
      <description>&lt;h1 id=&#34;android-系统架构总览&#34;&gt;Android 系统架构总览&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;学习日期: 2026-04-28
参考项目: Amlogic S905X5M (ross) Android 14 TV
前置知识: Linux embedded C/C++ 基础&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-android-分层架构&#34;&gt;1. Android 分层架构&lt;/h2&gt;
&lt;p&gt;Android 系统从上到下分为 5 层，每一层都依赖下一层提供的服务：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt; ┌─────────────────────────────────────────────────┐
 │                  Applications                   │  ← 系统应用 + 第三方应用
 │   Launcher, Settings, Browser, OTA Client...    │
 ├─────────────────────────────────────────────────┤
 │              Application Framework              │  ← 应用框架（Java）
 │   ActivityManager, WindowManager, PackageManager│
 ├─────────────────────────────────────────────────┤
 │              Android System Services            │  ← 系统服务（Native + Java）
 │   System Server, SurfaceFlinger, MediaServer... │
 ├─────────────────────────────────────────────────┤
 │         Hardware Abstraction Layer (HAL)        │  ← 硬件抽象层（C/C++）
 │   Camera HAL, Audio HAL, Graphics HAL...        │
 ├─────────────────────────────────────────────────┤
 │              Linux Kernel                       │  ← Linux 内核 + 驱动
 │   Display Driver, WiFi, BT, Audio, DMA-BUF...   │
 └─────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;与传统-linux-embedded-的对比&#34;&gt;与传统 Linux embedded 的对比&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;概念&lt;/th&gt;
          &lt;th&gt;传统 Linux&lt;/th&gt;
          &lt;th&gt;Android&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;内核&lt;/td&gt;
          &lt;td&gt;Linux kernel&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;同一内核&lt;/strong&gt; + Android 特有驱动 (ashmem/binder/ion)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;init 系统&lt;/td&gt;
          &lt;td&gt;systemd/busybox init&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;init&lt;/strong&gt;（专属，解析 .rc 文件）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;IPC&lt;/td&gt;
          &lt;td&gt;D-Bus/socket&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Binder&lt;/strong&gt;（Android 核心 IPC 机制）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;设备访问&lt;/td&gt;
          &lt;td&gt;直接 open /dev/xxx&lt;/td&gt;
          &lt;td&gt;通过 &lt;strong&gt;HAL&lt;/strong&gt; + HIDL 接口&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;应用格式&lt;/td&gt;
          &lt;td&gt;ELF 可执行文件&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;APK&lt;/strong&gt;（Java + Native libs）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;权限控制&lt;/td&gt;
          &lt;td&gt;DAC (user/group)&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;DAC + SELinux&lt;/strong&gt;（强制）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;构建系统&lt;/td&gt;
          &lt;td&gt;Makefile/CMake&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Soong (Android.bp)&lt;/strong&gt; + Makefile&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;2-各层详解结合参考代码库&#34;&gt;2. 各层详解（结合参考代码库）&lt;/h2&gt;
&lt;h3 id=&#34;21-layer-1-linux-kernel&#34;&gt;2.1 Layer 1: Linux Kernel&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;位置&lt;/strong&gt;: kernel 源码 + 设备树 DTS&lt;/p&gt;</description>
    </item>
    <item>
      <title>00-Android嵌入式全栈学习计划</title>
      <link>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/00-learning-plan/</link>
      <pubDate>Tue, 09 Jun 2026 18:00:00 +0800</pubDate>
      <guid>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/00-learning-plan/</guid>
      <description>&lt;h1 id=&#34;android-嵌入式全栈学习计划&#34;&gt;Android 嵌入式全栈学习计划&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;背景&lt;/strong&gt;: 有 Linux embedded C/C++ 基础（浅层），接触过 BSP API 适配
&lt;strong&gt;目标&lt;/strong&gt;: 掌握 Android 嵌入式全栈开发，能独立完成从底层到应用层的系统定制
&lt;strong&gt;参考代码库&lt;/strong&gt;: &lt;code&gt;~/android/aml/s905x5/aml-s905x5-androidu-v2/&lt;/code&gt;（Android 14 + Amlogic S905X5M ATV）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;总览&#34;&gt;总览&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Phase 1 ─ 筑基 ──────────────────────────────── 2-3 周
  构建系统入门 + AOSP 架构 + 基本 Java

Phase 2 ─ 厂商定制层 ──────────────────────────── 3-4 周
  从 vendor/giec/ 读懂&amp;#34;厂商如何改系统&amp;#34;

Phase 3 ─ 深入底层 ───────────────────────────── 4-6 周
  Bootloader → Kernel → HAL → SELinux

Phase 4 ─ Framework 与应用 ────────────────────── 4-6 周
  系统服务 → 应用开发 → OTA
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id=&#34;phase-1筑基预计-2-3-周&#34;&gt;Phase 1：筑基（预计 2-3 周）&lt;/h2&gt;
&lt;h3 id=&#34;11-理解-android-系统架构&#34;&gt;1.1 理解 Android 系统架构&lt;/h3&gt;
&lt;p&gt;目标：搞懂 Android 系统的分层结构，建立整体地图。&lt;/p&gt;</description>
    </item>
    <item>
      <title>AndroidFrameworkConsole命令速查</title>
      <link>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/android-console%E5%91%BD%E4%BB%A4/</link>
      <pubDate>Tue, 09 Jun 2026 17:04:00 +0800</pubDate>
      <guid>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/android-console%E5%91%BD%E4%BB%A4/</guid>
      <description>&lt;h1 id=&#34;android-framework-console-命令速查&#34;&gt;Android Framework Console 命令速查&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;适用场景：&lt;code&gt;adb shell&lt;/code&gt; 下执行的 Android framework 层调试命令
覆盖工具：am / pm / dumpsys / settings / wm / input / service / cmd / appops / content / ime / monkey / svc / media&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;目录&#34;&gt;目录&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#1-am--activity-manager&#34;&gt;am — Activity Manager&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#2-pm--package-manager&#34;&gt;pm — Package Manager&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#3-dumpsys--%E7%B3%BB%E7%BB%9F%E6%9C%8D%E5%8A%A1%E8%AF%8A%E6%96%AD&#34;&gt;dumpsys — 系统服务诊断&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#4-settings--%E7%B3%BB%E7%BB%9F%E8%AE%BE%E7%BD%AE&#34;&gt;settings — 系统设置&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#5-wm--window-manager&#34;&gt;wm — Window Manager&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#6-input--%E8%BE%93%E5%85%A5%E4%BA%8B%E4%BB%B6%E6%A8%A1%E6%8B%9F&#34;&gt;input — 输入事件模拟&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#7-service--service-%E8%B0%83%E7%94%A8&#34;&gt;service — Service 调用&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#8-cmd--%E6%9C%8D%E5%8A%A1%E5%91%BD%E4%BB%A4%E6%8E%A5%E5%8F%A3&#34;&gt;cmd — 服务命令接口&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#9-appops--%E5%BA%94%E7%94%A8%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86&#34;&gt;appops — 应用权限管理&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#10-content--contentprovider-%E6%93%8D%E4%BD%9C&#34;&gt;content — ContentProvider 操作&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#11-ime--%E8%BE%93%E5%85%A5%E6%B3%95%E7%AE%A1%E7%90%86&#34;&gt;ime — 输入法管理&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#12-monkey--ui-%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95&#34;&gt;monkey — UI 压力测试&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#13-svc--%E7%BD%91%E7%BB%9C%E7%94%B5%E6%BA%90%E6%9C%8D%E5%8A%A1%E6%8E%A7%E5%88%B6&#34;&gt;svc — 网络/电源服务控制&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#14-media--%E5%A4%9A%E5%AA%92%E4%BD%93%E6%8E%A7%E5%88%B6&#34;&gt;media — 多媒体控制&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#15-%E5%85%B6%E4%BB%96%E5%AE%9E%E7%94%A8%E5%91%BD%E4%BB%A4&#34;&gt;其他实用命令&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-am--activity-manager&#34;&gt;1. am — Activity Manager&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;管理 Activity、Service、Broadcast、Intent 的启动与调试。&lt;/p&gt;</description>
    </item>
    <item>
      <title>08-3.2Kernel构建与设备树</title>
      <link>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/08-kernel-%E8%AE%BE%E5%A4%87%E6%A0%91/</link>
      <pubDate>Tue, 09 Jun 2026 17:03:00 +0800</pubDate>
      <guid>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/08-kernel-%E8%AE%BE%E5%A4%87%E6%A0%91/</guid>
      <description>&lt;h1 id=&#34;32-kernel-构建与设备树&#34;&gt;3.2 Kernel 构建与设备树&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;学习日期: 2026-04-30
参考项目: Amlogic S905X5M (ross) Android 14 TV
前置知识: Linux 内核基础概念、C 语言、ARM64 架构&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-引言kernel-在-android-中的角色&#34;&gt;1. 引言：Kernel 在 Android 中的角色&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;概念解释&lt;/strong&gt;：Linux Kernel（内核）是操作系统的最底层核心，负责管理硬件资源（CPU、内存、外设）、提供进程调度、内存管理、网络协议栈、设备驱动等基础服务。在 Android 系统中，内核是&lt;strong&gt;唯一直接与硬件交互&lt;/strong&gt;的软件层，Android 框架和应用程序的所有硬件的操作最终都要通过内核完成。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码体现&lt;/strong&gt;：参考代码库使用内核版本 &lt;strong&gt;common14-5.15&lt;/strong&gt;，即基于 Linux 5.15 主线内核的 Android Common Kernel。构建命令为：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./mk ross -v common14-5.15
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;实际价值&lt;/strong&gt;：没有内核，操作系统无法管理硬件资源。在嵌入式 Android 中，内核裁剪和驱动适配是 BSP（Board Support Package）的核心工作，直接影响系统的稳定性、性能和功能完整性。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;2-gkigeneric-kernel-image&#34;&gt;2. GKI（Generic Kernel Image）&lt;/h2&gt;
&lt;h3 id=&#34;21-概念解释&#34;&gt;2.1 概念解释&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;概念解释&lt;/strong&gt;：GKI（通用内核映像）是 Google 在 Android 11/12 引入的架构，将内核分为两部分：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GKI 内核（通用内核）&lt;/strong&gt;：由 Google 维护，包含核心内核代码和与 SoC 无关的驱动。所有设备使用相同的内核二进制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GKI 模块（厂商模块）&lt;/strong&gt;：由 SoC 厂商（如 Amlogic）提供，以可加载内核模块（.ko）的形式存在，包含 SoC 特定的驱动。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GKI 的核心目标是实现&lt;strong&gt;内核与厂商驱动的解耦&lt;/strong&gt;——SoC 厂商不需要 fork 内核源码，只需要提供与 GKI 接口兼容的模块。&lt;/p&gt;</description>
    </item>
    <item>
      <title>07-3.1Bootloader：U-Boot&#43;安全启动</title>
      <link>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/07-bootloader-uboot-%E5%AE%89%E5%85%A8%E5%90%AF%E5%8A%A8/</link>
      <pubDate>Tue, 09 Jun 2026 17:02:00 +0800</pubDate>
      <guid>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/07-bootloader-uboot-%E5%AE%89%E5%85%A8%E5%90%AF%E5%8A%A8/</guid>
      <description>&lt;h1 id=&#34;31-bootloaderu-boot--安全启动&#34;&gt;3.1 Bootloader：U-Boot + 安全启动&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;学习日期: 2026-04-30
参考项目: Amlogic S905X5M (ross) Android 14 TV
前置知识: 嵌入式系统启动流程、ARM TrustZone 基本概念&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-引言bootloader-是什么&#34;&gt;1. 引言：Bootloader 是什么？&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;概念解释&lt;/strong&gt;：Bootloader（启动加载器）是设备上电后第一个执行的软件。它的职责是初始化硬件（时钟、DDR 内存、存储控制器）、从存储介质（eMMC/NAND）加载操作系统映像到内存，然后跳转执行。在 Android 嵌入式系统中，bootloader 不仅要&amp;quot;启动系统&amp;quot;，还要&lt;strong&gt;验证启动链的完整性&lt;/strong&gt;，防止被篡改的系统运行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码体现&lt;/strong&gt;：参考代码库中，bootloader 源码位于 &lt;code&gt;bootloader/uboot-repo/&lt;/code&gt;，构建命令为：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./mk s7d_bm201 --avb2 --vab
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 或针对 ross 设备：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd bootloader/uboot-repo &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; ./mk s7d_bm201 --update-bl2 --update-bl2e --update-bl2x --update-bl31 --update-bl32 --avb2 --vab
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;实际价值&lt;/strong&gt;：没有 bootloader，芯片上电后 CPU 不知道从哪里取指令、内存没有初始化、没有任何代码可以执行。在 Android 安全模型中，bootloader 是第一道防线——如果 bootloader 不可信，后续整个系统都不可信。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;2-arm-处理器启动流程基础&#34;&gt;2. ARM 处理器启动流程基础&lt;/h2&gt;
&lt;p&gt;在深入 Amlogic U-Boot 之前，需要理解 ARM 处理器的启动模式：&lt;/p&gt;
&lt;h3 id=&#34;21-arm-trustzone&#34;&gt;2.1 ARM TrustZone&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;概念解释&lt;/strong&gt;：TrustZone 是 ARM 架构的硬件安全扩展，将 SoC 内部资源划分为两个世界：&lt;/p&gt;</description>
    </item>
    <item>
      <title>06-device/amlogic/ross/设备配置</title>
      <link>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/06-%E8%AE%BE%E5%A4%87%E9%85%8D%E7%BD%AE/</link>
      <pubDate>Tue, 09 Jun 2026 17:01:00 +0800</pubDate>
      <guid>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/06-%E8%AE%BE%E5%A4%87%E9%85%8D%E7%BD%AE/</guid>
      <description>&lt;h1 id=&#34;deviceamlogicross-设备配置&#34;&gt;device/amlogic/ross/ 设备配置&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;分析 ross (S905X5M) 设备的完整构建配置，理解一个 Android 嵌入式设备是如何定义的
参考代码库：&lt;code&gt;device/amlogic/ross/&lt;/code&gt;，Android 14 + Amlogic S905X5M ATV&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-总览&#34;&gt;1. 总览&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;device/amlogic/ross/&lt;/code&gt; 是 Android 构建系统中&lt;strong&gt;设备配置目录&lt;/strong&gt;。它定义了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;选择什么 &lt;strong&gt;SoC&lt;/strong&gt;（S905X5M）和平台（s7d）&lt;/li&gt;
&lt;li&gt;选择什么 &lt;strong&gt;kernel&lt;/strong&gt;（common14-5.15，GKI 方式）&lt;/li&gt;
&lt;li&gt;选择什么 &lt;strong&gt;bootloader&lt;/strong&gt;（U-Boot，支持 AVB2 + VAB）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分区布局&lt;/strong&gt; 和文件系统类型&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;硬件特性&lt;/strong&gt;（显示、音频、编解码、WiFi/BT、摄像头等）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;打包哪些模块&lt;/strong&gt;（继承 vendor/giec/ 的定制）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;文件布局&#34;&gt;文件布局&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;device/amlogic/ross/
├── BoardConfig.mk                  # ★ 板级配置（硬件、分区、AVB）
├── device.mk                       # ★ 设备配置（媒体、音频、GPU、显示）
├── ross.mk                         # ★ 产品配置主入口
├── AndroidProducts.mk              # 注册所有产品变体（lunch 选项）
├── AndroidBoard.mk                 # 板级构建（kernel、factory）
├── Android.mk / Android.bp
│
├── ross_atv.mk                     # ATV 变体
├── ross_dongle.mk                  # 加密狗/电视棒变体
├── ross_soundbar.mk                # 条形音箱变体
├── ross_hybrid.mk                  # Hybrid 变体
├── ross_hybrid_atf.mk              # Hybrid ATF 变体
├── ross_cbs.mk                     # CBS 广播变体
├── ross_mxl258c.mk                 # MXL258C 调谐器变体
│
├── part_table_5_15.txt             # ★ 分区表（AB 系统，动态分区）
├── part_table_U_8G_emmc.txt        # 8G eMMC 备选分区表
├── fstab.ab_oem.amlogic            # ★ 文件系统挂载表
│
├── vendor_prop.mk                  # 供应商属性
├── product_property.mk             # 产品属性（oem key）
├── kernel_config_build.mk          # Kernel 构建配置
├── wifibt.build.config.trunk.mk    # WiFi/BT 模块选择
├── AVSync.mk                       # 音视频同步配置
│
├── init.amlogic.board.rc           # 板级 init 脚本
├── init.amlogic.board.ext.rc       # 板级扩展 init 脚本
├── ueventd.parallel.rc             # ueventd 并行恢复上下文
├── board-info.txt                  # bootloader 版本约束
│
├── files/                          # ★ 硬件配置文件（编解码、音频、显示）
│   ├── media_codecs*.xml           #   媒体编解码配置
│   ├── mixer_paths.xml             #   音频通路配置
│   ├── mesondisplay.cfg            #   显示配置
│   ├── mali_platform.config        #   GPU/Mali 配置
│   ├── audio_effects.conf          #   音效配置
│   └── speaker_*.dat/xml           #   音箱调优数据
├── permissions/                    # 权限配置文件
├── overlay/                        # 资源覆盖
├── oem/                            # OEM 分区预置内容
├── prebuilt/                       # 预编译二进制
├── recovery/                       # Recovery 相关配置
├── logo_img_files/                 # 开机 logo
├── upgrade/                        # 升级相关
└── tools/                          # 签名工具
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id=&#34;2-android-构建系统的设备配置层级&#34;&gt;2. Android 构建系统的设备配置层级&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;理解 Android 构建系统的层次结构&lt;/strong&gt; 是嵌入式开发的基础。一个产品配置（&lt;code&gt;ross.mk&lt;/code&gt;）通过 &lt;code&gt;$(call inherit-product, ...)&lt;/code&gt; 逐层继承，最终形成完整的构建配置。&lt;/p&gt;</description>
    </item>
    <item>
      <title>05-预置APK分析</title>
      <link>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/05-%E9%A2%84%E7%BD%AEapk%E5%88%86%E6%9E%90/</link>
      <pubDate>Tue, 09 Jun 2026 17:00:00 +0800</pubDate>
      <guid>https://luojmarkdown.pages.dev/posts/%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F/05-%E9%A2%84%E7%BD%AEapk%E5%88%86%E6%9E%90/</guid>
      <description>&lt;h1 id=&#34;预置-apk-分析&#34;&gt;预置 APK 分析&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;分析 &lt;code&gt;vendor/giec/apps/&lt;/code&gt; 下所有预置 APK 的构建方式、权限模型和功能架构
参考代码库：&lt;code&gt;vendor/giec/apps/&lt;/code&gt;，Android 14 + Amlogic S905X5M ATV&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-总览&#34;&gt;1. 总览&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;device-giec.mk&lt;/code&gt; 中声明的预置 APK：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-makefile&#34; data-lang=&#34;makefile&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PRODUCT_PACKAGES &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    LeanKeyboard &lt;span style=&#34;color:#ae81ff&#34;&gt;\ &lt;/span&gt;      &lt;span style=&#34;color:#75715e&#34;&gt;# ATV 定制键盘&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    OTAClient &lt;span style=&#34;color:#ae81ff&#34;&gt;\ &lt;/span&gt;         &lt;span style=&#34;color:#75715e&#34;&gt;# OTA 升级客户端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    BazeportLauncher &lt;span style=&#34;color:#ae81ff&#34;&gt;\ &lt;/span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;# 定制 Launcher（桌面）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    BazeportSystem &lt;span style=&#34;color:#ae81ff&#34;&gt;\ &lt;/span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;# 系统设置/工具&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    luojHello            &lt;span style=&#34;color:#75715e&#34;&gt;# 测试程序（C 程序，非 APK）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;加上条件编译的：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-makefile&#34; data-lang=&#34;makefile&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 当 NEED_GLAUNCHER=true 时
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PRODUCT_PACKAGES &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; Glauncher
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 当 NEED_FACTORY_TEST=true 时
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PRODUCT_PACKAGES &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; STB_TEST
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;所有 APK 的公共特征：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;都是&lt;strong&gt;预编译的（prebuilt）&lt;/strong&gt; &lt;code&gt;.apk&lt;/code&gt; 文件，不带 Java 源码&lt;/li&gt;
&lt;li&gt;全部使用 &lt;code&gt;LOCAL_CERTIFICATE := platform&lt;/code&gt; —— 平台密钥签名，获得 system 级 UID&lt;/li&gt;
&lt;li&gt;通过 &lt;code&gt;Android.mk&lt;/code&gt; + &lt;code&gt;$(BUILD_PREBUILT)&lt;/code&gt; 集成到构建系统&lt;/li&gt;
&lt;li&gt;安装路径取决于 &lt;code&gt;LOCAL_PRIVILEGED_MODULE&lt;/code&gt; 和 &lt;code&gt;LOCAL_SYSTEM_EXT_MODULE&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;2-android-预置-apk-的构建模式&#34;&gt;2. Android 预置 APK 的构建模式&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;APK 预置&lt;/strong&gt;：Android 构建系统中，厂商可以将预编译的 &lt;code&gt;.apk&lt;/code&gt; 文件直接打包进系统镜像，而不需要从源码编译。这是厂商定制的标准做法，尤其当 APK 是闭源或由第三方提供时。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
