xref: /aosp_15_r20/tools/treble/build/README.md (revision 105f628577ac4ba0e277a494fbb614ed8c12a994)
1*105f6285SAndroid Build Coastguard Worker# Treble build tools
2*105f6285SAndroid Build Coastguard Worker
3*105f6285SAndroid Build Coastguard WorkerTools for building the Android Platform.
4*105f6285SAndroid Build Coastguard Worker
5*105f6285SAndroid Build Coastguard Worker[TOC]
6*105f6285SAndroid Build Coastguard Worker
7*105f6285SAndroid Build Coastguard Worker## Testing
8*105f6285SAndroid Build Coastguard Worker
9*105f6285SAndroid Build Coastguard WorkerTo run all project tests:
10*105f6285SAndroid Build Coastguard Worker
11*105f6285SAndroid Build Coastguard Worker```
12*105f6285SAndroid Build Coastguard Worker./test.sh
13*105f6285SAndroid Build Coastguard Worker```
14*105f6285SAndroid Build Coastguard Worker
15*105f6285SAndroid Build Coastguard Worker## Filesystem overlays
16*105f6285SAndroid Build Coastguard Worker
17*105f6285SAndroid Build Coastguard WorkerDownstream consumers of the Android platform often create independent Android
18*105f6285SAndroid Build Coastguard Workerbranches for each device.
19*105f6285SAndroid Build Coastguard Worker
20*105f6285SAndroid Build Coastguard WorkerWe can unify the development of all devices on the same Android Platform dessert
21*105f6285SAndroid Build Coastguard Workerwith the help of filesystem overlays.
22*105f6285SAndroid Build Coastguard Worker
23*105f6285SAndroid Build Coastguard WorkerFor example, let's say we had two devices: Device A and Device B.
24*105f6285SAndroid Build Coastguard WorkerThe filesystem overlays would create the following build time views.
25*105f6285SAndroid Build Coastguard Worker
26*105f6285SAndroid Build Coastguard Worker```
27*105f6285SAndroid Build Coastguard Worker+-------------------------------+ +--------------------------------------------+
28*105f6285SAndroid Build Coastguard Worker|         Android repo          | |                Android repo                |
29*105f6285SAndroid Build Coastguard Worker|          workspace            | |                 workspace                  |
30*105f6285SAndroid Build Coastguard Worker|                               | |                                            |
31*105f6285SAndroid Build Coastguard Worker| +--------------+              | | +----------------------------------------+ |
32*105f6285SAndroid Build Coastguard Worker| | +----------+ | +----------+ | | | +----------+  +----------+             | |
33*105f6285SAndroid Build Coastguard Worker| | | Platform | | | Device B | | | | | Platform |  | Device B |   Device B  | |
34*105f6285SAndroid Build Coastguard Worker| | | projects | | | projects | | | | | projects |  | projects |  build view | |
35*105f6285SAndroid Build Coastguard Worker| | +----------+ | +----------+ | | | +----------+  +----------+             | |
36*105f6285SAndroid Build Coastguard Worker| |              |              | | +----------------------------------------+ |
37*105f6285SAndroid Build Coastguard Worker| | +----------+ |              | |   +----------+                             |
38*105f6285SAndroid Build Coastguard Worker| | | Device A | |              | |   | Device A |                             |
39*105f6285SAndroid Build Coastguard Worker| | | projects | |              | |   | projects |                             |
40*105f6285SAndroid Build Coastguard Worker| | +----------+ |              | |   +----------+                             |
41*105f6285SAndroid Build Coastguard Worker| |              |              | +--------------------------------------------+
42*105f6285SAndroid Build Coastguard Worker| |   Device A   |              |
43*105f6285SAndroid Build Coastguard Worker| |  build view  |              |
44*105f6285SAndroid Build Coastguard Worker| |              |              |
45*105f6285SAndroid Build Coastguard Worker| +--------------+              |
46*105f6285SAndroid Build Coastguard Worker+-------------------------------+
47*105f6285SAndroid Build Coastguard Worker```
48*105f6285SAndroid Build Coastguard Worker
49*105f6285SAndroid Build Coastguard WorkerTo support filesystem overlays the Android repo workspace is required to the
50*105f6285SAndroid Build Coastguard Workerfollowing structure.
51*105f6285SAndroid Build Coastguard Worker
52*105f6285SAndroid Build Coastguard Worker### Root directory
53*105f6285SAndroid Build Coastguard Worker
54*105f6285SAndroid Build Coastguard WorkerLocation: `${ANDROID_BUILD_TOP}`
55*105f6285SAndroid Build Coastguard Worker
56*105f6285SAndroid Build Coastguard WorkerAll projects in the root directory that are not in the overlays
57*105f6285SAndroid Build Coastguard Workerdirectory are shared among all Android targets.
58*105f6285SAndroid Build Coastguard Worker
59*105f6285SAndroid Build Coastguard Worker### Overlays directory
60*105f6285SAndroid Build Coastguard Worker
61*105f6285SAndroid Build Coastguard WorkerLocation: `${ANDROID_BUILD_TOP}/overlays`
62*105f6285SAndroid Build Coastguard Worker
63*105f6285SAndroid Build Coastguard WorkerContains target specific projects. Each subdirectory under the overlays
64*105f6285SAndroid Build Coastguard Workerdirectory can be mounted at the root directory to support different targets.
65*105f6285SAndroid Build Coastguard Worker
66*105f6285SAndroid Build Coastguard Worker### Build out directory
67*105f6285SAndroid Build Coastguard Worker
68*105f6285SAndroid Build Coastguard WorkerLocation: `${ANDROID_BUILD_TOP}/out`
69*105f6285SAndroid Build Coastguard Worker
70*105f6285SAndroid Build Coastguard WorkerContains all files generated during a build. This includes target files
71*105f6285SAndroid Build Coastguard Workerlike system.img and host tools like adb.
72