精华内容
下载资源
问答
  • 小白编译android rom小记

    千次阅读 2017-01-11 12:03:04
    我虽然是做android framework开发,但平时都是编译模块,要让我添加一个机型编译我还真不熟悉,前段时间花了点时间成功编了griffin,这里记录一下。 正文: 一般来说如果一个机型做好了编译适配并添加到了官方编译...

    前言:
    我虽然是做android framework开发,但平时都是编译模块,要让我添加一个机型编译我还真不熟悉,前段时间花了点时间成功编了griffin,这里记录一下。

    正文:
    一般来说如果一个机型做好了编译适配并添加到了官方编译列表里面(类似CM,MK等),我们下载了源码,source lunch编译就好了。
    今天要说的如何编译一个还没有添加到官方编译列表的机型。

    下载源码

    首先下载源码这个是必须的。

    其次要有机型设备对应的device,kernel,vendor源码,能自己写这些代码的我相信你也用不着看这个文章。
    像我这种小白就只有去github上找对应的代码去了。

    两种方法下载设备树代码,1.手动git clone,甚至你直接Download Zip也行,2.添加到 local_manifests repo sync 同步。推荐第二种。

    1. 下载代码后放到响应的目录,比如我要编译的griffin(Moto z 2016),在github上对应的仓库为MotoZ-2016/android_device_motorola_griffin,那我就把代码放到device/motorola/griffin,其他kernel和vendor的代码也是同理。
      如果是需要做机型移植,devices目录下,编译相关的内容记得都要改了。
      除去上面三个”必选”仓库以外,有些硬件可能还需要特殊的仓库,比如nfc之类的,这类依赖一般被写在device/griffin目录下的mk.dependencies文件里
        {
          "repository": "android_external_v4l2_hal",
          "target_path": "external/v4l2_hal"
        },

    android_external_v4l2_hal这写仓库也可以到github上搜搜看。
    2. 添加代码库的地址到.repo/local_manifests/roomservice.xml。直接给个例子吧

    <?xml version="1.0" encoding="UTF-8"?>
    <manifest>
           <remote  name="github_boul" 
                    fetch="https://github.com/"             
                    revision="refs/heads/cm-14.1" />
           <project name="boulzordev/android_device_motorola_griffin" path="device/motorola/griffin"    remote="github_boul" />
           <project name="boulzordev/proprietary_vendor_motorola_griffin" path="vendor/motorola/griffin"    remote="github_boul" />
           <project name="boulzordev/android_kernel_motorola_msm8996" path="kernel/motorola/msm8996"    remote="github_boul" />
           <project name="LineageOS/android_external_bson" path="external/bson" remote="github" />
           <project name="LineageOS/android_external_stlport" path="external/stlport" remote="github" />
           ...
    </manifest>

    好了,这样就可以用repo sync 来同步了。
    本来那个remote name=”github_boul” 是不必要的,不过当你.repo/manifest.xml中default的remote代表的不是你添加的设备的代码所在的网站的时候,就需要像上面那样新建一个remote,并且fetch = 代码所在的网站(这个网站不一定是github)。
    像LineageOS本身代码是在github上,而且我们新增的代码也是github上,所以我们完全可以把新建的这个remote删掉,把下面的remote=”github_boul”改成remote=”github”。
    看不懂的话去网上找一下local_manifest的编写规则吧,以前CM的wiki上有,现在LineageOS的wiki上我没找到。

    添加机型设备到lunch列表(非必要)

    好了现在我们有代码了,但是我们在lunch的时候还没有griffin的机型可以选择啊。
    有两种方法把griffin添加到本地lunch列表。因为我编的Mokee,所以以下以mk为例
    1.在device/motorola/griffin目录下新建vendorsetup.sh,添加内容:

     add_lunch_combo mk_griffin-userdebug

    2.修改vendor/mk/vendorsetup.sh添加和上面同样的内容

    for combo in $(curl -s https://raw.githubusercontent.com/MoKee/*后面地址省略*/
    do
        add_lunch_combo $combo
        add_lunch_combo mk_griffin-userdebug
    done

    之后再

    $ source build/envsetup.sh
    $ lunch 

    就可以看到新添加的机型了。
    但是我开始为什么说非必要呢?
    因为我们完全可以敲lunch mk_griffin-userdebug来lunch。。。你是LineageOS就敲lunch lineage_griffin-userdebug。

    初始化编译

    对于Mokee来说

    $ source build/envsetup.sh
    $ lunch mk_griffin-userdebug
    $ mka bacon

    对于LineageOS

    $ source build/envsetup.sh
    $ breakfast griffin
    $ brunch griffin
    展开全文
  • android源码作为一个工程导入eclipse 导入前先检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹),.classpath里多余的路径可删除,没有的...

    环境搭建 

    1 安装ubuntu 推荐12.04或13.10 
    2 安装jdk7和一些所需要的包
    安装jdk7
    $ sudo apt-get update
    $ sudo apt-get install openjdk-7-jdk
    或者手动下载jdk-7 安装 http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html 
    chmod u+x ...
    增加执行权限并执行安装,
    安装在你选择目录并修改环境变量

    sudo vim ~/.bashrc (如果没有安装vim先执行:sudo apt-get install vim)

    export JAVA_HOME=/java/jdk1.7.0_51 ---这是我的安装目录,替换成你相应的安装目录即可export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH


    安装依赖包:
    $ sudo apt-get install git gnupg flex bison gperf build-essential \
    zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
    libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
    libgl1-mesa-dev g++-multilib mingw32 tofrodos \
    python-markdown libxml2-utils xsltproc zlib1g-dev:i386
    $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so 
    3 安装eclipse
    下载http://www.eclipse.org/downloads/ 
    解压到你选定的目录即可 
    //eclipse在ubuntu13.10下可能出现无法下拉工具栏现象,具体解决办法可参考http://my.oschina.net/kinsomc/blog/178997 

    4 设置ccache (可选)
    在~/.bashrc中添加
    export USE_CCACHE=1
    prebuilt/linux-x86/ccache/ccache -M 50G 

    5 安装repo
    $ mkdir ~/bin
    添加环境变量
    $ PATH=~/bin:$PATH(需要在~/.bashrc 中添加 export PATH=~/bin:$PATH)
    下载repo
    $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo //有可能出现网络不可到达的现象,多试几次就行.也可以使用该网址(curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo),如果没安装curl可以先安装,sudo apt-get install curl
    $ chmod a+x ~/bin/repo 
    6 配置git
    $ git config --global user.name "username"
    $ git config --global user.email "username@xiaomi.com" 
    7 ssh-key
    在小米提交和review代码需要ssh-key做机器的身份验证。
    1. 生成ssh-key
    $ ssh-keygen
    这将在home下建立.ssh目录。请备份好该目录,以后重装系统可以拷贝回来。
    2. 用自己帐号登录http://git.xiaomi.com:8088
    3. 进入ssh设置http://git.xiaomi.com:8088/#/settings/ssh-keys
    4. 点击Add key按钮,将~/.ssh/id_rsa.pub的内容粘贴到文本框中。确定即可。 

    8 具体MIUI版本下载
    具体的MIUI版本管理的流程,请参考版本管理概况
    我们的代码库的地址是git.xiaomi.com:libra2/platform/manifest.git,所以一般说来,一个repo init命令应该是: 
    $ repo init -u gitdaemon@git.xiaomi.com:libra2/platform/manifest.git -b jellybean -m aries.xml --repo-url=gitdaemon@git.xiaomi.com:aosp/tools/repo.git
    其中-b表示branch,MIUI基本上都在jellybean上进行开发,ICS和Gingerbread基本不再维护。 其中-m表示manifest文件,上述的aries.xml表示小米手机2的开发版,类似的还有:aries-jb-alpha.xml表示小米手机2的体验版,pisces-jb.xml表示小米手机3的开发版,等等。 还有很多,如果需要,请找相关人员咨询。 
    初始化repo完成之后,需要用sync下载代码,这个过程需要的时间较长,可能长达半小时甚至一小时。 
    $ repo sync -j8
    //过程中如果出现提示输入密码的情况,在确定ssh-key已经设定正确的情况下就多执行几次上面的命令就可以了 

    9 编译代码 
    编译代码首先要进入你的代码目录。
    首先要初始化环境变量: 
    $ . build/envsetup.sh
    然后,选择你的编译模式和目标版本: 
    $ lunch
    基本上,你可以选择你的机型相关的版本即可,其中eng表示工程师版(可调试),user表示用户版,debug当然表示调试版。aries表示小米手机2的开发版
    最终的编译命令应该是: 
    $ make otapackage -j4 (-j4 代表起4个线程) 

    10 编译系统/apps

    仅编译系统

    当你做了某些修改,需要编译整个系统(不包括boot等)时,需要用下面的命令: 
    $ make systemimage -j4

    apps

    如果你只需要编译某一个app,则需要进入到app相应的目录,使用mm命令。
    $ mm
    或者,你也可以在主目录下使用make + app目录下Android.mk中的LOCAL_PACKAGE_NAME,不过这样稍慢。 
    $ make Phone -j4
    编译framework里面的东西也跟app类似。 

    11 USB连接设备,只需要打开开发者选项即可顺利连接 

    12 刷机

    刷整个系统

    首先你必须找打你编译出来的image文件,一般说来,他们位于你的代码目录下out/target/product/<手机代号> /中,其中后缀通常是img。比如小米手机3的代号是pisces,那么目录就应该是out/target/product/pisces/。 
    进入刷机模式(fastboot模式): 
    $ adb reboot bootloader(使手机进入刷机状态)
    刷system,userdata, boot: 
    $ fastboot flash system out/target/product/pisces/system.img
    $ fastboot flash userdata out/target/product/pisces/userdata.img
    $ fastboot flash boot out/target/product/pisces/boot.img
    重启手机 
    $ fastboot reboot

    只刷修改的App

    编译、刷整个系统都需要很长的时间,所以我们一般调试时都只刷我们修改过的app。 
    编译好app后,先root手机: 
    $ adb root
    然后remount让system分区可写: 
    $ adb remount
    然后就可以把你的app push到手机上相应的目录,如: 
    $ adb push out/target/product/pisces/system/app/Phone.apk /system/app
    如果你修改的不是system/app下apk,而是在system/framework下的jar,你可能还需要重启手机才能生效: 
    $ adb reboot 
    13 适用Eclipse查看编辑调试源代码
    进入你下载的源码目录,把eclipse工程配置文件复制到android源码根目录下cp development/ide/eclipse/.classpath ./
    chmod u+w .classpath # Make the copy writable //使可写便于修改
    修改eclipse程序的配置,增大eclipse内存设置 把eclipse.ini(在eclipse软件的安装目录下)的3个值改为下面的值:-Xms128m-Xmx512m-XX:MaxPermSize=256
    把android源码作为一个工程导入eclipse 导入前先检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹),.classpath里多余的路径可删除,没有的需要添加。新建Java Project(不是android project,否则会破坏android源码),选择从已存在的工程导入,工程名任意,完成。也可以直接import(可能会出现一些重复的项目) 

    转载于:https://www.cnblogs.com/genggeng/p/10564122.html

    展开全文
  • aries表示小米手机2的开发版 最终的编译命令应该是: $ make otapackage -j4 (-j4 代表起4个线程) 10 编译系统/apps 仅编译系统 当你做了某些修改,需要编译整个系统(不包括boot等)时,需要用下面的命令: $ make ...

    环境搭建 1 安装ubuntu 推荐12.04或13.10 2 安装jdk7和一些所需要的包

    安装jdk7

    $ sudo apt-get update

    $ sudo apt-get install openjdk-7-jdk

    或者手动下载jdk-7 安装 http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html chmod u+x ...

    增加执行权限并执行安装,

    安装在你选择目录并修改环境变量

    sudo vim ~/.bashrc(如果没有安装vim先执行:sudo apt-get install vim)

    export JAVA_HOME=/java/jdk1.7.0_51 ---这是我的安装目录,替换成你相应的安装目录即可export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH

    安装依赖包:

    $ sudo apt-get install git gnupg flex bison gperf build-essential

    zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev

    libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386

    libgl1-mesa-dev g++-multilib mingw32 tofrodos

    python-markdown libxml2-utils xsltproc zlib1g-dev:i386

    $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so 3 安装eclipse

    下载http://www.eclipse.org/downloads/

    解压到你选定的目录即可 //eclipse在ubuntu13.10下可能出现无法下拉工具栏现象,具体解决办法可参考http://my.oschina.net/kinsomc/blog/178997 4 设置ccache (可选)

    在~/.bashrc中添加

    export USE_CCACHE=1

    prebuilt/linux-x86/ccache/ccache -M 50G 5 安装repo

    $ mkdir ~/bin

    添加环境变量

    $ PATH=~/bin:$PATH(需要在~/.bashrc 中添加 export PATH=~/bin:$PATH)

    下载repo

    $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo //有可能出现网络不可到达的现象,多试几次就行.也可以使用该网址(curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo),如果没安装curl可以先安装,sudo apt-get install curl

    $ chmod a+x ~/bin/repo 6 配置git

    $ git config --global user.name "username"

    $ git config --global user.email "username@xiaomi.com" 7 ssh-key

    在小米提交和review代码需要ssh-key做机器的身份验证。

    1. 生成ssh-key

    $ ssh-keygen

    这将在home下建立.ssh目录。请备份好该目录,以后重装系统可以拷贝回来。

    2. 用自己帐号登录http://git.xiaomi.com:8088

    3. 进入ssh设置http://git.xiaomi.com:8088/#/settings/ssh-keys

    4. 点击Add key按钮,将~/.ssh/id_rsa.pub的内容粘贴到文本框中。确定即可。 8 具体MIUI版本下载

    具体的MIUI版本管理的流程,请参考版本管理概况。

    我们的代码库的地址是git.xiaomi.com:libra2/platform/manifest.git,所以一般说来,一个repo init命令应该是:

    $ repo init -u gitdaemon@git.xiaomi.com:libra2/platform/manifest.git -b jellybean -m aries.xml --repo-url=gitdaemon@git.xiaomi.com:aosp/tools/repo.git

    其中-b表示branch,MIUI基本上都在jellybean上进行开发,ICS和Gingerbread基本不再维护。 其中-m表示manifest文件,上述的aries.xml表示小米手机2的开发版,类似的还有:aries-jb-alpha.xml表示小米手机2的体验版,pisces-jb.xml表示小米手机3的开发版,等等。 还有很多,如果需要,请找相关人员咨询。

    初始化repo完成之后,需要用sync下载代码,这个过程需要的时间较长,可能长达半小时甚至一小时。

    $ repo sync -j8

    //过程中如果出现提示输入密码的情况,在确定ssh-key已经设定正确的情况下就多执行几次上面的命令就可以了 9 编译代码 编译代码首先要进入你的代码目录。

    首先要初始化环境变量:

    $ . build/envsetup.sh

    然后,选择你的编译模式和目标版本:

    $ lunch

    基本上,你可以选择你的机型相关的版本即可,其中eng表示工程师版(可调试),user表示用户版,debug当然表示调试版。aries表示小米手机2的开发版

    最终的编译命令应该是:

    $ make otapackage -j4 (-j4 代表起4个线程) 10 编译系统/apps

    仅编译系统

    当你做了某些修改,需要编译整个系统(不包括boot等)时,需要用下面的命令:

    $ make systemimage -j4

    apps

    如果你只需要编译某一个app,则需要进入到app相应的目录,使用mm命令。

    $ mm

    或者,你也可以在主目录下使用make + app目录下Android.mk中的LOCAL_PACKAGE_NAME,不过这样稍慢。

    $ make Phone -j4

    编译framework里面的东西也跟app类似。 11 USB连接设备,只需要打开开发者选项即可顺利连接 12 刷机

    刷整个系统

    首先你必须找打你编译出来的image文件,一般说来,他们位于你的代码目录下out/target/product/ /中,其中后缀通常是img。比如小米手机3的代号是pisces,那么目录就应该是out/target/product/pisces/。

    进入刷机模式(fastboot模式):

    $ adb reboot bootloader(使手机进入刷机状态)

    刷system,userdata, boot:

    $ fastboot flash system out/target/product/pisces/system.img

    $ fastboot flash userdata out/target/product/pisces/userdata.img

    $ fastboot flash boot out/target/product/pisces/boot.img

    重启手机

    $ fastboot reboot

    只刷修改的App

    编译、刷整个系统都需要很长的时间,所以我们一般调试时都只刷我们修改过的app。

    编译好app后,先root手机:

    $ adb root

    然后remount让system分区可写:

    $ adb remount

    然后就可以把你的app push到手机上相应的目录,如:

    $ adb push out/target/product/pisces/system/app/Phone.apk /system/app

    如果你修改的不是system/app下apk,而是在system/framework下的jar,你可能还需要重启手机才能生效:

    $ adb reboot 13 适用Eclipse查看编辑调试源代码

    进入你下载的源码目录,把eclipse工程配置文件复制到android源码根目录下cp development/ide/eclipse/.classpath ./

    chmod u+w .classpath # Make the copy writable //使可写便于修改

    修改eclipse程序的配置,增大eclipse内存设置 把eclipse.ini(在eclipse软件的安装目录下)的3个值改为下面的值:-Xms128m-Xmx512m-XX:MaxPermSize=256

    把android源码作为一个工程导入eclipse 导入前先检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹),.classpath里多余的路径可删除,没有的需要添加。新建Java Project(不是android project,否则会破坏android源码),选择从已存在的工程导入,工程名任意,完成。也可以直接import(可能会出现一些重复的项目)

    展开全文
  • NULL 博文链接:https://hualang.iteye.com/blog/1132207
  • 一般我们下载Android源代码后,lunch选择相应手机平台,然后编译,生成的img是不能直接flash手机中运行的,因为缺少相关的手机驱动,需要先下载驱动,然后再编译ROM,链接如下: ...

    一般我们下载Android源代码后,lunch选择相应手机平台,然后编译,生成的img是不能直接flash手机中运行的,因为缺少相关的手机驱动,需要先下载驱动,然后再编译ROM,链接如下:

    https://developers.google.com/android/nexus/drivers

    比如Nexus S 对应的4.1.2驱动,下载6个驱动,解压后得到:extract-akm-crespo.sh,extract-broadcom-crespo.sh,extract-imgtec-crespo.sh,extract-nxp-crespo.sh,extract-samsung-crespo.sh,extract-widevine-crespo.sh,分别执行这6个脚本,即可得到包含驱动的vendor目录

    展开全文
  • ...Android源代码由两部分组成,其一是Android系统应用部分的代码,其次是Android所使用的内核代码, ...由于公司是针对Google nexus s来开发rom,所以需要下载三星的内核代码 Android 系统应用代码
  • 由于公司是针对Google nexus s来开发rom,所以需要下载三星的内核代码  Android 系统应用代码   http://android.git.kernel.org/  Android内核代码   http://android.git.kernel.org/?p
  • 这篇文章教会你如何在你的大部分主流安卓机型上(小米,一加,三星,oppo,华硕,Google,Htc,华为,联想,LG,摩托,索尼,红米)使用Android系统源码(AOSP)定制你自己的Rom; 实现步骤 定制起来非常简单,我...
  • android源码编译rom制作.pptx
  • frameworks/opt/net/ims/src/java/com/android/ims/internal/ImsCallSession.java:933: 错误: ImsCallSession.IImsCallSessionListenerProxy不是抽象的, 并且未覆盖IImsCallSessionListener中的抽象方法...
  • 编译与制作android ROM

    千次阅读 2016-09-17 12:01:31
    编译android 系统生成 编译android系统源码 output -----userdata.img system.img ramdisk.img android虚拟机有android 的kernel bzimage  默认使用,就可以运行了。  也可以自己下载android 内核源码...
  • 许多使用安卓系统设备的用户都很好奇Android要怎么刷SuperSU,其实安卓系统刷入超级授权SuperSU Pro方法特别简单,只需简单的几步就可以让你的设备开机更高级的授权。SuperSU,超级授权管理专业工具,它是款对...
  • 编译Android源码制作ROM

    千次阅读 2014-06-24 15:33:26
    Android源码编译后,在out/target/product/generic下生成的三个镜像文 件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data。 ramdisk.img是根文件系统,system.img包括了主要的包、...
  • 通过反编译定制android ROM

    千次阅读 2017-03-20 12:37:40
    以下操作是基于接近原生Android 4.4的系统下进行,是白牌设备。 1、 copy /system 整个目录的 apk copy 到本地。 2、对里面的 apk 重新进行签名。 3、放回设备里面,重新启动,如果运行正常,那么现在就拥有设备...
  • 编译Android源码制作ROM,烧录

    千次阅读 2013-04-25 18:07:26
    编译Android源码制作ROM,烧录 androidsystem脚本htc工具工作 Android源码编译后,在out/target/product/generic下生成的三个镜像文 件:ramdisk.img,system.img,userdata.img以及它们对应的目录...
  • PAC论坛:非常感谢CyanogenMod和PAC团队创建了很棒的开源Android发行版,也感谢SourceForge提供了用于托管这些构建的带宽! 最后,我们要感谢Xposed Framework开发人员! -该项目基于开源CyanogenMod代码构建。 ...
  • HTC one M7 Android4.2.2 ARHD11.0版本 图形化刷机、永久root 全新内核固件、更稳定、流畅(7月1号)
  • Android5.0编译步骤如下: 1、source build/envsetup.sh 2、lunch byt_t_crv2_a05-eng (可以是对应产品序号) 3、make bootimage -j24 4、make flashfiles -j24 最后生成的zip放在: pub/BYT_T_CRV2_A05/flash...
  • 1.我编译了一个android ROM,选的lunch aosp_arm-eng,但是编出来的ROM用模拟器运行时,设备不能连接网络,本以为是没有驱动的问题,但是模拟器的网络驱动实在没找到,请问是什么问题呢? 2.然后我又编译了一个lunch...
  • CyanogenMod源码下载和编译(Android ROM定制基础篇) 出处:http://www.cnblogs.com/qianxudetianxia/archive/2011/09/27/2193590.html 本来想下载Android官方源代码,没想到android.git.kernel.org维护,不能...
  • 目标完成安卓10rom的aosp源码+驱动+内核编译、并完成刷机手机sailfish选择谷歌云的目的在群里听到乌师傅说谷歌云便宜,cpu多,编译源码几分钟就够了,并且利用免费的300美金可以随便玩,那就动手试试了。致谢选择...
  • 多的不说教程会慢慢写下去,估计有那么几十篇,估计你读完就能直接上战场了。...一、下载一个ZIP格式的ROM解压,一个ROM的结构其实以CM7官方为例,很简单如下 META-INF system boot.img 当然有的也包含

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,838
精华内容 3,935
关键字:

编译安卓rom