• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Copyright (C) 2011 The Android Open Source Project
2 **
3 ** This software is licensed under the terms of the GNU General Public
4 ** License version 2, as published by the Free Software Foundation, and
5 ** may be copied, distributed, and modified under those terms.
6 **
7 ** This program is distributed in the hope that it will be useful,
8 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
9 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10 ** GNU General Public License for more details.
11 */
12 #ifndef _ANDROID_AVD_UTIL_H
13 #define _ANDROID_AVD_UTIL_H
14 
15 /* A collection of simple functions to extract relevant AVD-related
16  * information either from an SDK AVD or a platform build.
17  */
18 
19 /* Return the path to the Android SDK root installation.
20  *
21  * (*pFromEnv) will be set to 1 if it comes from the $ANDROID_SDK_ROOT
22  * environment variable, or 0 otherwise.
23  *
24  * Caller must free() returned string.
25  */
26 char* path_getSdkRoot( char *pFromEnv );
27 
28 /* Return the path to the AVD's root configuration .ini file. it is located in
29  * ~/.android/avd/<name>.ini or Windows equivalent
30  *
31  * This file contains the path to the AVD's content directory, which
32  * includes its own config.ini.
33  */
34 char* path_getRootIniPath( const char*  avdName );
35 
36 /* Return the target architecture for a given AVD.
37  * Called must free() returned string.
38  */
39 char* path_getAvdTargetArch( const char* avdName );
40 
41 /* Retrieves a string corresponding to the target architecture
42  * when in the Android platform tree. The only way to do that
43  * properly for now is to look at $OUT/system/build.prop:
44  *
45  *   ro.product.cpu-abi=<abi>
46  *
47  * Where <abi> can be 'armeabi', 'armeabi-v7a' or 'x86'.
48  */
49 char* path_getBuildTargetArch( const char* androidOut );
50 
51 /* Retrieves a string corresponding to the target CPU ABI
52  * when in the Android platform tree. The only way to do that
53  * properly for now is to look at $OUT/system/build.prop:
54  *
55  *   ro.product.cpu-abi=<abi>
56  *
57  * Where <abi> can be 'armeabi', 'armeabi-v7a' or 'x86'.
58  */
59 char* path_getBuildTargetAbi( const char* androidOut );
60 
61 /* Retrieve the target API level when in the Android platform tree.
62  * This can be a very large number like 1000 if the value cannot
63  * be extracted from the appropriate file
64  */
65 int path_getBuildTargetApiLevel( const char* androidOut );
66 
67 /* Returns mode in which ADB daemon running in the guest communicates with the
68  * emulator
69  * Return:
70  *  0 - ADBD communicates with the emulator via forwarded TCP port 5555 (a
71  *      "legacy" mode).
72  *  1 - ADBD communicates with the emulator via 'adb' QEMUD service.
73  */
74 int path_getAdbdCommunicationMode( const char* androidOut );
75 
76 #endif /* _ANDROID_AVD_UTIL_H */
77