Thursday, November 10, 2011

build simulator

build simulator是build一個跑在x86上的android
不過這功能到了後面就沒在maintain了

但還是試了一下
果真要改很多地方

my AOSP codebase
gingerbread-release
GRI40

  1. framework 
    1. strchr return type  : const char *  ->  char *  :   const_cast(strchr(..)) 
      1. media/libmedia/MediaScanner.cpp
      2. media/libstagefright/NuHTTPDataSource.cpp
      3. media/libstagefright/httplive/M3UParser.cpp
      4. media/libstagefright/rtsp/MyHandler.h
      5. media/libstagefright/rtsp/ASessionDescription.cpp
  2. external/gtest
    1. Android.mk : remove external/stlport/stlport in libgtest_includes (stlport wont be built for simulator, so we try not to include stlport's headers )
  3. external/libnfc-nxp
    1. Android.mk 
      1. remove libdl in LOCAL_SHARED_LIBRARIES (libdl wont be build for simulator, and we also need to modify build scripts to make it link against to libdl on my host pc)
      2. remove -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork in LOCAL_CFLAGS
      3. add LOCAL_C_INCLUDES := bionic/libc/kernel/common for libnfc
    2. Linux_x86/phDal4Nfc_i2c.c 
      1. add "#include
    3. Linux_x86/phDal4Nfc.c
      1. add "#include
      2. remove line 664: pthread_setname_np(pthread_self(), "reader");
  4. development/simulator/
    1. app/DeviceWindow.cpp 
      1. line 175: bool hasAlpha = onionSkinImage.HasAlpha(); -> bool hasAlpha = onionSkinImage.GetAlpha() != NULL; 
    2. app/MainFrame.cpp
      1. remove line 239, 280 : menuHelp->AppendSeparator();
  5. build
    1. core/combo/TARGET_linux-x86.mk
      1. TARGET_GLOBAL_LDFLAGS := $(HOST_GLOBAL_LDFLAGS) -m32 -lpthread -ldl -lrt
  6. packages/apps/Nfc
    1. ./jni/com_android_nfc.h
      1. add "#include

although I can build a simulator 
but it still cannot run Android well


[ 11-10 12:25:06 10884 W/Packag]
Exception reading AndroidManifest.xml in /system/framework/framework-res.apk
java.lang.SecurityException: /system/framework/framework-res.apk failed verification of META-INF/CERT.SF
at java.util.jar.JarVerifier.failedVerification(JarVerifier.java:135)
at java.util.jar.JarVerifier.verifyCertificate(JarVerifier.java:313)
at java.util.jar.JarVerifier.readCertificates(JarVerifier.java:265)
at java.util.jar.JarFile.getInputStream(JarFile.java:389)
at android.content.pm.PackageParser.loadCertificates(PackageParser.java:342)
at android.content.pm.PackageParser.collectCertificates(PackageParser.java:485)
at com.android.server.PackageManagerService.collectCertificatesLI(PackageManagerService.java:2570)
at com.android.server.PackageManagerService.scanPackageLI(PackageManagerService.java:2656)
at com.android.server.PackageManagerService.scanDirLI(PackageManagerService.java:2514)
at com.android.server.PackageManagerService.(PackageManagerService.java:930)
at com.android.server.PackageManagerService.main(PackageManagerService.java:694)
at com.android.server.ServerThread.run(SystemServer.java:148)

[ 11-10 12:25:06 10884 E/Packag]
Package android has no certificates at entry AndroidManifest.xml; ignoring!



No comments: