6 #include <utils/Vector.h>
9 #include <nativehelper/ScopedUtfChars.h>
12 // assumption: the length of name of any abi type in abi list,
13 // like armeabi-v7a, armeabi, x86, is not longer than 64
14 #define ABI_NAME_MAX_LENGTH (64)
18 explicit ABIPicker(const char* pkgName,Vector<ScopedUtfChars*> abiList);
21 bool buildNativeLibList(void* apkHandle);
22 int pickupRightABI(int sysPrefer);
25 char abiName[ABI_NAME_MAX_LENGTH];
26 Vector<char*>* libNameList;
28 Vector<struct libInfo*>* mLibList;
31 bool foundMixedELF(const char* abiName);
32 bool compare(char* armRef, char* iaRef, char* rawResult, char** result);
33 bool compareLibList(Vector<char*>& iaRefList, Vector<char*>& armRefList);
34 bool compare3rdPartyLibList( char* iaRef, char* armRef,
35 size_t* iaIsvLibCount, size_t* armIsvLibCount);
36 char* getAbiName(int abi);
37 int getAbiIndex(const char* abiName);
38 bool isABILibValid(const char* abiName);
39 Vector<char*>* getLibList(const char* abiName);
42 bool isInOEMWhiteList(const char* pkgName);
43 } // namespace android
44 #endif // _ABIPICKER_H_