ubuntu 16.04TLS 컴파일android 5.1.1 소스 코드

10468 단어
컴파일 환경 구축
 1.Openjdk7 설치
ubuntu 15.04 및 그 다음 버전의 온라인 설치 라이브러리에서는 Openjdk8과 Openjkd9의 설치만 지원하기 때문에 Openjdk7을 설치하려면 ppa를 설정해야 합니다
  sudo add-apt-repository ppa:openjdk-r/ppa
  sudo apt-get  update
  sudo apt-get  install openjdk-7-jdk
다른 버전의android시스템을 컴파일하려면 jdk버전이 필요할 수 있습니다. 다음 명령을 사용하여 jdk버전을 전환합니다.
  sudo update-alternatives --config java
  sudo update-alternatives --config javac
명령을 입력하면 jdk 버전을 선택하라는 메시지가 표시됩니다. 알림에 따라 필요한 버전을 선택하면 됩니다.
의존성 추가
  sudo apt-get install git gnupg flex bison gperf build-essential

  sudo apt-get install zip curl libc6-dev libncurses5-dev x11proto-core-dev

  sudo apt-get install libx11-dev:i386 libreadline6-dev:i386

  sudo apt-get install g++-multilib tofrodos lib32ncurses5-dev lib32ncursesw5-dev

  sudo apt-get install python-markdown libxml2-utils xsltproc zlib1g-dev:i386

  sudo apt-get install lib32z1 dos2unix gcc g++

    git

  sudo apt-get install git
  git config --global user.email "[email protected]"
  git config --global user.name "test"


      

              ,                                 ,            CyanogenMod 。

    repo  

   mkdir ~/bin
   PATH=~/bin:$PATH
   curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
   ##     url    ,       :
   ## curl https://storage-googleapis.proxy.ustclug.org/git-repo-downloads/repo > ~/bin/repo
   chmod a+x ~/bin/repo

        

  mkdir WORKSPACE
  cd WORKSPAC

        
   repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
   ##           gerrit.googlesource.com,     ~/bin/repo,  REPO_URL         :
   ## REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo

        manifest      master      ,      -b             ,     android_5.1.1_r1    ,       Android     
  
   repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android_5.1.1_r1

           

  repo sync

           4 5   

       

           ,     vendor   ,        ,         (      )           ,         

https://developers.google.com/android/drivers#hammerheadmmb29k실제 세 개의 셸 스크립트입니다. 셸 스크립트를 원본 루트 디렉터리에 놓고 셸 스크립트를 실행하면 루트 디렉터리에 있습니다.
vendor 디렉터리를 생성하면 드라이버가 이 디렉터리에 있습니다. 예를 들어 스크립트 파일의 이름은broadcom입니다.sh, 명령을 두드려라./broadcom.sh 실행 스크립트 WORKSPACE , : source build/envsetup.sh . build/envsetup.sh lunch ,
Lunch menu... pick a combo: 1. aosp_arm-eng 2. aosp_arm64-eng 3. aosp_mips-eng 4. aosp_mips64-eng 5. aosp_x86-eng 6. aosp_x86_64-eng 7. aosp_deb-userdebug 8. aosp_flo-userdebug 9. full_fugu-userdebug 10. aosp_fugu-userdebug 11. mini_emulator_arm64-userdebug 12. m_e_arm-userdebug 13. mini_emulator_mips-userdebug 14. mini_emulator_x86_64-userdebug 15. mini_emulator_x86-userdebug 16. aosp_flounder-userdebug 17. aosp_angler-userdebug 18. aosp_bullhead-userdebug 19. aosp_hammerhead-userdebug 20. aosp_hammerhead_fp-userdebug 21. aosp_shamu-userdebug 
Which would you like? [aosp_arm-eng] 19 
              

      

   make -j8

    make -j8, 8         ,  Google             = CPU   x 2 + 2,  4 ,   10    ,  make –j10。】 
    cpu  ,         :

  cat /proc/cpuinfo


            ,       :
   
  
 Creating filesystem with parameters:
    Size: 1073741824
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 8192
    Inode size: 256
    Journal blocks: 4096
    Label: 
    Blocks: 262144
    Block groups: 8
    Reserved block group size: 63
 Created filesystem with 1411/65536 inodes and 81288/262144 blocks
 Install system fs image: out/target/product/hammerhead/system.img
 out/target/product/hammerhead/system.img+out/target/product/hammerhead/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p maxsize=1096212480 blocksize=135168 total=317825554 reserve=11083776

 #### make completed successfully (01:18:47 (hh:mm:ss)) ####

컴파일에 성공한 후에 우리는 원본을 안드로이드 스튜디오에서 볼 수 있는 프로젝트로 만들어야 한다. (단지 우리가 원본을 배우는 데 편리하도록 하기 위해서)
ide 도구 파일 생성
mmm development/tools/idegen/
mmm 명령은 지정한 디렉터리를 컴파일하는 데 사용됩니다
Android Studio 구성 파일을 생성합니다. 주로 android를 생성합니다.iws, android.ipr, android.iml, 이 세 개의 파일은 안드로이드 스튜디오 프로젝트의 핵심 파일로 프로젝트의 모듈 구성, 의존 관계, 디렉터리 구조를 열거하는 것이다.
  sh ./development/tools/idegen/idegen.sh

안드로이드 스튜디오, File->Open->원본 루트 디렉터리android를 엽니다.ipr, Android는 자동으로 프로젝트의 모든 코드를 가져옵니다.

좋은 웹페이지 즐겨찾기