1 /* 2 ** 3 ** Copyright 2008, The Android Open Source Project 4 ** 5 ** Licensed under the Apache License, Version 2.0 (the "License"); 6 ** you may not use this file except in compliance with the License. 7 ** You may obtain a copy of the License at 8 ** 9 ** http://www.apache.org/licenses/LICENSE-2.0 10 ** 11 ** Unless required by applicable law or agreed to in writing, software 12 ** distributed under the License is distributed on an "AS IS" BASIS, 13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 ** See the License for the specific language governing permissions and 15 ** limitations under the License. 16 */ 17 18 #ifndef INSTALLD_DEPS_H_ 19 #define INSTALLD_DEPS_H_ 20 21 #include <inttypes.h> 22 23 #include <installd_constants.h> 24 25 namespace android { 26 namespace installd { 27 28 // Dependencies for a full binary. These functions need to be provided to 29 // figure out parts of the configuration. 30 31 // Retrieve a system property. Same API as cutils, just renamed. 32 extern int get_property(const char *key, 33 char *value, 34 const char *default_value); 35 // Size constants. Should be checked to be equal to the cutils requirements. 36 constexpr size_t kPropertyKeyMax = 32u; 37 constexpr size_t kPropertyValueMax = 92u; 38 39 // Compute the output path for dex2oat. 40 extern bool calculate_oat_file_path(char path[PKG_PATH_MAX], 41 const char *oat_dir, 42 const char *apk_path, 43 const char *instruction_set); 44 // Compute the output path for patchoat. 45 // 46 // Computes the odex file for the given apk_path and instruction_set, e.g., 47 // /system/framework/whatever.jar -> /system/framework/oat/<isa>/whatever.odex 48 // 49 // Returns false if it failed to determine the odex file path. 50 // 51 extern bool calculate_odex_file_path(char path[PKG_PATH_MAX], 52 const char *apk_path, 53 const char *instruction_set); 54 55 // Compute the output path into the dalvik cache. 56 extern bool create_cache_path(char path[PKG_PATH_MAX], 57 const char *src, 58 const char *instruction_set); 59 60 } // namespace installd 61 } // namespace android 62 63 #endif // INSTALLD_DEPS_H_ 64