xref: /aosp_15_r20/frameworks/native/cmds/installd/installd_constants.h (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
1*38e8c45fSAndroid Build Coastguard Worker /*
2*38e8c45fSAndroid Build Coastguard Worker **
3*38e8c45fSAndroid Build Coastguard Worker ** Copyright 2008, The Android Open Source Project
4*38e8c45fSAndroid Build Coastguard Worker **
5*38e8c45fSAndroid Build Coastguard Worker ** Licensed under the Apache License, Version 2.0 (the "License");
6*38e8c45fSAndroid Build Coastguard Worker ** you may not use this file except in compliance with the License.
7*38e8c45fSAndroid Build Coastguard Worker ** You may obtain a copy of the License at
8*38e8c45fSAndroid Build Coastguard Worker **
9*38e8c45fSAndroid Build Coastguard Worker **     http://www.apache.org/licenses/LICENSE-2.0
10*38e8c45fSAndroid Build Coastguard Worker **
11*38e8c45fSAndroid Build Coastguard Worker ** Unless required by applicable law or agreed to in writing, software
12*38e8c45fSAndroid Build Coastguard Worker ** distributed under the License is distributed on an "AS IS" BASIS,
13*38e8c45fSAndroid Build Coastguard Worker ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*38e8c45fSAndroid Build Coastguard Worker ** See the License for the specific language governing permissions and
15*38e8c45fSAndroid Build Coastguard Worker ** limitations under the License.
16*38e8c45fSAndroid Build Coastguard Worker */
17*38e8c45fSAndroid Build Coastguard Worker 
18*38e8c45fSAndroid Build Coastguard Worker #ifndef INSTALLD_CONSTANTS_H_
19*38e8c45fSAndroid Build Coastguard Worker #define INSTALLD_CONSTANTS_H_
20*38e8c45fSAndroid Build Coastguard Worker 
21*38e8c45fSAndroid Build Coastguard Worker #include "cutils/multiuser.h"
22*38e8c45fSAndroid Build Coastguard Worker 
23*38e8c45fSAndroid Build Coastguard Worker namespace android {
24*38e8c45fSAndroid Build Coastguard Worker namespace installd {
25*38e8c45fSAndroid Build Coastguard Worker 
26*38e8c45fSAndroid Build Coastguard Worker /* elements combined with a valid package name to form paths */
27*38e8c45fSAndroid Build Coastguard Worker 
28*38e8c45fSAndroid Build Coastguard Worker constexpr const char* PRIMARY_USER_PREFIX = "data/";
29*38e8c45fSAndroid Build Coastguard Worker constexpr const char* SECONDARY_USER_PREFIX = "user/";
30*38e8c45fSAndroid Build Coastguard Worker 
31*38e8c45fSAndroid Build Coastguard Worker // This is used as a string literal, can't be constants. TODO: std::string...
32*38e8c45fSAndroid Build Coastguard Worker #define DALVIK_CACHE "dalvik-cache"
33*38e8c45fSAndroid Build Coastguard Worker constexpr const char* DALVIK_CACHE_POSTFIX = "@classes.dex";
34*38e8c45fSAndroid Build Coastguard Worker 
35*38e8c45fSAndroid Build Coastguard Worker constexpr size_t PKG_NAME_MAX = 128u;   /* largest allowed package name */
36*38e8c45fSAndroid Build Coastguard Worker constexpr size_t PKG_PATH_MAX = 1024u;  /* max size of any path we use */
37*38e8c45fSAndroid Build Coastguard Worker 
38*38e8c45fSAndroid Build Coastguard Worker /****************************************************************************
39*38e8c45fSAndroid Build Coastguard Worker  * IMPORTANT: These values are passed from Java code. Keep them in sync with
40*38e8c45fSAndroid Build Coastguard Worker  * frameworks/base/services/core/java/com/android/server/pm/Installer.java
41*38e8c45fSAndroid Build Coastguard Worker  ***************************************************************************/
42*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_PUBLIC         = 1 << 1;
43*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_DEBUGGABLE     = 1 << 2;
44*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_BOOTCOMPLETE   = 1 << 3;
45*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_PROFILE_GUIDED = 1 << 4;
46*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_SECONDARY_DEX  = 1 << 5;
47*38e8c45fSAndroid Build Coastguard Worker // DEXOPT_FORCE, DEXOPT_STORAGE_CE, DEXOPT_STORAGE_DE are exposed for secondary
48*38e8c45fSAndroid Build Coastguard Worker // dex files only. Primary apks are analyzed in PackageManager and installd
49*38e8c45fSAndroid Build Coastguard Worker // does not need to know if the compilation is forced or on what kind of storage
50*38e8c45fSAndroid Build Coastguard Worker // the dex files are.
51*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_FORCE          = 1 << 6;
52*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_STORAGE_CE     = 1 << 7;
53*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_STORAGE_DE     = 1 << 8;
54*38e8c45fSAndroid Build Coastguard Worker // Tells the compiler that it is invoked from the background service.  This
55*38e8c45fSAndroid Build Coastguard Worker // controls whether extra debugging flags can be used (taking more compile time.)
56*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_IDLE_BACKGROUND_JOB = 1 << 9;
57*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_ENABLE_HIDDEN_API_CHECKS = 1 << 10;
58*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_GENERATE_COMPACT_DEX = 1 << 11;
59*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_GENERATE_APP_IMAGE = 1 << 12;
60*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_FOR_RESTORE = 1 << 13; // TODO(b/135202722): remove
61*38e8c45fSAndroid Build Coastguard Worker 
62*38e8c45fSAndroid Build Coastguard Worker /* all known values for dexopt flags */
63*38e8c45fSAndroid Build Coastguard Worker constexpr int DEXOPT_MASK =
64*38e8c45fSAndroid Build Coastguard Worker     DEXOPT_PUBLIC
65*38e8c45fSAndroid Build Coastguard Worker     | DEXOPT_DEBUGGABLE
66*38e8c45fSAndroid Build Coastguard Worker     | DEXOPT_BOOTCOMPLETE
67*38e8c45fSAndroid Build Coastguard Worker     | DEXOPT_PROFILE_GUIDED
68*38e8c45fSAndroid Build Coastguard Worker     | DEXOPT_SECONDARY_DEX
69*38e8c45fSAndroid Build Coastguard Worker     | DEXOPT_FORCE
70*38e8c45fSAndroid Build Coastguard Worker     | DEXOPT_STORAGE_CE
71*38e8c45fSAndroid Build Coastguard Worker     | DEXOPT_STORAGE_DE
72*38e8c45fSAndroid Build Coastguard Worker     | DEXOPT_IDLE_BACKGROUND_JOB
73*38e8c45fSAndroid Build Coastguard Worker     | DEXOPT_ENABLE_HIDDEN_API_CHECKS
74*38e8c45fSAndroid Build Coastguard Worker     | DEXOPT_GENERATE_COMPACT_DEX
75*38e8c45fSAndroid Build Coastguard Worker     | DEXOPT_GENERATE_APP_IMAGE
76*38e8c45fSAndroid Build Coastguard Worker     | DEXOPT_FOR_RESTORE;
77*38e8c45fSAndroid Build Coastguard Worker 
78*38e8c45fSAndroid Build Coastguard Worker // NOTE: keep in sync with StorageManager
79*38e8c45fSAndroid Build Coastguard Worker constexpr int FLAG_STORAGE_DE = 1 << 0;
80*38e8c45fSAndroid Build Coastguard Worker constexpr int FLAG_STORAGE_CE = 1 << 1;
81*38e8c45fSAndroid Build Coastguard Worker 
82*38e8c45fSAndroid Build Coastguard Worker // TODO: import them from dexoptanalyzer.h
83*38e8c45fSAndroid Build Coastguard Worker // NOTE: keep in sync with Installer.java
84*38e8c45fSAndroid Build Coastguard Worker constexpr int PROFILES_ANALYSIS_OPTIMIZE                     = 1;
85*38e8c45fSAndroid Build Coastguard Worker constexpr int PROFILES_ANALYSIS_DONT_OPTIMIZE_SMALL_DELTA    = 2;
86*38e8c45fSAndroid Build Coastguard Worker constexpr int PROFILES_ANALYSIS_DONT_OPTIMIZE_EMPTY_PROFILES = 3;
87*38e8c45fSAndroid Build Coastguard Worker 
88*38e8c45fSAndroid Build Coastguard Worker // NOTE: keep in sync with Installer.java
89*38e8c45fSAndroid Build Coastguard Worker constexpr int ODEX_NOT_FOUND = 0;
90*38e8c45fSAndroid Build Coastguard Worker constexpr int ODEX_IS_PUBLIC = 1;
91*38e8c45fSAndroid Build Coastguard Worker constexpr int ODEX_IS_PRIVATE = 2;
92*38e8c45fSAndroid Build Coastguard Worker 
93*38e8c45fSAndroid Build Coastguard Worker // NOTE: keep in sync with UserHandle.java
94*38e8c45fSAndroid Build Coastguard Worker constexpr userid_t USER_NULL = -10000;
95*38e8c45fSAndroid Build Coastguard Worker constexpr userid_t USER_SYSTEM = 0;
96*38e8c45fSAndroid Build Coastguard Worker 
97*38e8c45fSAndroid Build Coastguard Worker #define ARRAY_SIZE(a) (sizeof(a) / sizeof(*(a)))
98*38e8c45fSAndroid Build Coastguard Worker 
99*38e8c45fSAndroid Build Coastguard Worker }  // namespace installd
100*38e8c45fSAndroid Build Coastguard Worker }  // namespace android
101*38e8c45fSAndroid Build Coastguard Worker 
102*38e8c45fSAndroid Build Coastguard Worker #endif  // INSTALLD_CONSTANTS_H_
103