diff --git a/chapter-02/README.md b/chapter-02/README.md
index 3d0ff2b..5b77299 100644
--- a/chapter-02/README.md
+++ b/chapter-02/README.md
@@ -2,7 +2,7 @@
## 2.1 重新看待系统定制
- 经过第一章的学习,对AOSP定制进行简略的了解后,相信这时,在读者的心中已经对系统定制开发有了大致的理解。简单来说,所谓的系统定制,相当于在一款成熟的产品上进行二次开发。和我们二次开发其他软件项目的学习步骤不会有太大的出入,细节的区别就在于Android源码相比其他软件项目要更加庞大。
+ 经过第一章的学习,对AOSP定制进行简略的了解后,相信这时,在读者的心中已经对系统定制开发有了大致的理解。简单来说,所谓的系统定制,相当于在一款成熟的产品上进行二次开发。和我们二次开发其他软件项目的学习步骤不会有太大的出入,细节的区别就在于Android源码相比其他软件项目要更加庞大。
尽管Android源码非常庞大,但对于初学者,并不需要完整的吃透所有代码。重要的是学会分析的思路,学会看代码,了解Android的部分运行原理,然后思考如何达到自己的目的,最后自已去尝试实现。
@@ -539,7 +539,7 @@ make dist DIST_DIR=dist_output
接下来是如何刷入卡刷包,有两种刷入方式,一种是使用`adb sideload`命令刷入,另一种方式是使用twrp刷入。下面演示两种不同方式的刷机流程。
- 1、adb sideload(这里没写完,你补充一下,我这边环境没跑通)
+ 1、adb sideload(TODO这里没写完,你补充一下,我这边环境没跑通)
首先进入fastbootd
@@ -556,6 +556,86 @@ fastboot reboot fastboot

-
- 2、twrp(这里没写完,你补充一下,我这边环境没跑通)
+
+ 2、twrp(TODO这里没写完,你补充一下,我这边环境没跑通)
+
+### 2.8 源码的开发环境搭建
+
+ Android系统是一个非常庞大的项目,所以我们需要采用合适的编辑器或者是`ide`来修改代码,如果你的改动不多,那么我们简单的使用`VsCode`导入工作区即可开始修改代码。但是`VsCode`的智能提示和跳转较为简陋,所以如果想要更加友好的开发体验,我们可以选择将源码导入`Android Studio`中编辑java部分代码,导入`Clion`中编辑`native`部分代码。下面简单介绍如何将源码导入Android Studio。
+
+~~~
+cd ~/aosp12
+source build/envsetup.sh
+lunch aosp_blueline-userdebug
+
+// 编译生成idegen.jar
+make idegen
+
+// 在源码根目录生成android.ipr和android.iml
+development/tools/idegen/idegen.sh
+
+// 编辑iml文件,找到excludeFolder的属性位置,新增排除掉一些基本不怎么修改或者是native代码相关的部分
+vim ./android.iml
+
+// 例如新增下面这些部分
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+~~~
+
+ 修改好配置后,最后使用Android studio打开`android.ipr`文件即可。接下来简单介绍将代码导入Clion。
+
+~~~
+// 设置环境变量,在编译时生成CMakeLists.txt文件
+export SOONG_GEN_CMAKEFILES=1
+export SOONG_GEN_CMAKEFILES_DEBUG=1
+
+// 正常编译一次
+cd ~/aosp12
+source build/envsetup.sh
+lunch aosp_blueline-userdebug
+make -j$(nproc --all)
+
+// 查看clion目录下面生成了大量的CMakeLists.txt
+tree out/development/ide/clion/
+
+// 在clion目录下创建一个CMakeLists.txt来合并导入我们需要使用的各个模块
+touch out/development/ide/clion/CMakeLists.txt
+
+// 配置CMakeLists.txt导入模块
+vim out/development/ide/clion/CMakeLists.txt
+
+// CMakeLists.txt文件添加下面的内容,单独导入一个先
+cmake_minimum_required(VERSION 3.6)
+project(AOSP-Native)
+// 添加子模块,导入了部分工程。工程很多,我是用到了再导入
+add_subdirectory(frameworks/native)
+~~~
+
+ 配置好cmake文件后,使用clion打开项目,选择刚刚配置好的`CMakeLists.txt`文件的目录`out/development/ide/clion/`。导入成功后,我们需要修改工程的根目录,`Tools->Cmake->Change Project Root`,然后选择源码根目录即可。
+
+## 2.9 小结
+
+TODO
+
diff --git a/chapter-03/README.md b/chapter-03/README.md
new file mode 100644
index 0000000..945d6ae
--- /dev/null
+++ b/chapter-03/README.md
@@ -0,0 +1,6 @@
+# 第三章 认识系统组件 #
+
+## 3.1 源码结构介绍
+
+ 通过前面的学习,我们成功编译了Android12以及对应的内核,并且通过多种方式刷入手机。接下来我们需要先对源码的结构有一定的了解,
+
diff --git a/目录.md b/目录.md
index 81647ea..e03e7a0 100644
--- a/目录.md
+++ b/目录.md
@@ -17,14 +17,16 @@
2.2 环境准备
2.2.1 Windows环境
2.2.2 Linux环境
-2.2.3 macOS环境
-2.3 选择对应编译的目标系统与版本
-2.3.1 编译
-2.4 系统编译
+2.3 如何选择源码版本
+2.4 编译
2.5 模块编译
2.6 内核编译
2.7 刷机
+2.8 源码的开发环境搭建
+
+
+
第3章 认识系统组件
3.1 源码结构介绍
3.2 init进程