android 源码编译&烧制

Android Apk 编译原理解析 本文基于AOSP-7.1.1-R9源码分析,源码可以参见build/+/android-7.1.1_r9。简介在Android系统中,所有的应用都是以apk的形式存在,那这个apk是如何生成的呢?对于刚开始接触系统开发的开发者来说,经常会使用如下命令编译apk或者系统固件。source build/envsetup.sh; lunch make -j8 or mmm packages/app/Se 阅读详情

预备来一个系列,包括CyanogenMod系列、原生源码系列、android-x86系列,其中-x86是可以跑在virtualbox上的,速度极快,也就是市面上各大PC安卓模拟器的基础。

你将看到从环境搭建、源码下载、源码修改、源码编译、刷入手机(刷入virtualbox)的全过程。

先从CyanogenMod来吧,手头上有个Nexus4。后面有时间再详细排版。


环境搭建:ubuntu14.04


ISO百度云地址:

或者https://www.ubuntu.com/download/alternative-downloads 官网下载

记住,不要用优麒麟 ukylin,因为本土化后各种未知问题。

也不建议用14.04以上的版本,因为ubuntu经常会更新、删除否些组件,比如java,版本更ixnyehui遇到各种未知问题。


CyanogenMod 


先执行如下命令安装所需要的工具:

sudo apt-get install git-core gnupg flex bison gperf build-essential   zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386   lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache   libgl1-mesa-dev libxml2-utils xsltproc unzip


首次安装git需要配置一下

 git config --global user.email xxxx@xx.com
 git config --global user.name xxxx



repo

    8  mkdir -p ~/bin
    9  mkdir -p ~/android/system
   10  curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
   11  chmod a+x ~/bin/repo

如果被墙,repo的地址还有国内的:

初始化仓库:

 repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0

对于repo中断,有一个祖传的脚本替代 repo sync

在源码目录建立down.sh然后加入如下脚本:

echo "======start repo sync======"
repo sync -j8
while [ $? == 1 ]; do
echo "======sync failed, re-sync again======"
sleep 3
repo sync -j8
done 


然后执行下面的命令增加执行权限

chmod a+x down.sh

执行./down.sh 开始同步代码


烧制:

先解锁OEM:我拿到手的设备已经解锁,如果没有百度搜索oem解锁工具

安装recovery,这里建议用twrp的,而不是cm自带的。下载地址twrp.me

1、进入fastboot,adb reboot bootloader

2、fastboot flash recovery /xxxx/twrp-3.0.2-0-mako.img

3、按音量键进入recovery模式

Android获取App启动时间 调用Android隐藏API的方法目前一共有三总,Java反射、API欺骗、修改源码重新编译 阅读详情

相关推荐

RK3588-----Android系统的编译和烧录

1、我们需要资源文件为:RK3588-Android-V2.0的源码文件,根据开发文档按步骤进行编译。注意:电脑的配置一定要满足以下要求,不然编译失败。2、编译完成后,update.img会拷贝到:rockdev/Image-rk3588_s/的目录下。该目录下的update.img可直接用于Android开发工具,以及镜像的下载更新。3、我们需要安装驱动和adb调试工具,根据文档操作,安装好驱动程序,和adb工具。下面我么的Android的系统就移植好了,接上显示屏显示ok。

weixin_41392061的博客 1717

Android Framework 11.0源码解析(系统启动、日志系统、Binder、编译原理等)

就目前的就业情况来看,学习AndroidFramework的市场发展空间还是非常可观,毕竟国内的很多手机大厂,比如华为、oppo、vivo、小米等厂商都需要AF开发,更有其他APP大厂在招聘,所以学习AndroidFramework的前景非常可观。》,相信这份资料,一定可以为大家在FrameWork的学习上提供强有力的帮助和支撑,快人一步成为真正的高级Android开发者,点击文末卡片直接领取。所以,成为一名AndroidFramework高手,也是目前招聘过程中非常稀缺的人才,可以成为你的敲门砖。...

老皮的博客 1113

nes模拟器 源码 编译

nes模拟器 源码 编译 ,已经编译完成。

Android系统编译原理

[1] 历史     2003年Android公司成立,系统开发     2005年Android被google收购     2007年11月5日,google公司推动成立手机开发联盟(HAL)     2008年9月Android 1.0正式发布,HTC G1使用      [2] 如何研究学习系统?     1. 了解系统        (1) 架构        (2) 内

安静的美男子 3394

金融科技数据源

数字金融开放研究平台

平平淡淡,戒急用忍,一生学闭嘴。 1758

【5G】5G 核心网(5GC)基本架构

本文旨在科普5G核心网相关知识...

Learning makes me happy (0^◇^0) 4万+

简诉android源代码编译过程,Android源码编译过程及原理(二)

在未来等风也等你本节主要记录的内容anroid 编译系统的结构编译中枢中main.mk的基本解析除非特别说明本节中的目录都是基于android的源码目录1. android 编译系统的结构android的编译系统可以分为三部分:build/core: 在这个目录中包含了大量的.mk文件子项目:每个子项目都包含自己的Android.mk,在编译时会被包含进去,而如何编译子项目是由Andorid.mk...

weixin_36356002的博客 2009

从SRIOV到SIOV:PCIe虚拟化技术下一代革命

如果说SR-IOV是过去十年PCIe虚拟化的“标杆方案”,那SIOV就是为超大规模云数据中心、AI集群量身打造的“破局者”——它解决了SR-IOV难以逾越的扩展性瓶颈,同时平衡了性能、成本与生态兼容性。今天就从“为什么需要SIOV”到“SIOV到底强在哪”,再到“未来要解决什么问题”,做一次全方位深度拆解。

存储随笔 2560

Android源代码编译原理与前期准备

本文的主要内容是解决在Android源代码的编译过程中出现的各种问题。 大家都知道,Android是开源的,可以在Android Open Source Project(点击打开链接)下载。下载的流程与方法,可以访问上述网页查看详细说明。 「编译原理」 首先,我们应该对Android的编译原理有所了解。普通的Android应用开发,多数是在eclipse中开发的。在eclipse中,An

fzl8808的专栏 1229

AD(AltiumDesigner)封装导入allegro生成allegro封装

AD(AltiumDesigner)封装导入allegro生成allegro封装 貌似PCB的封装问题是一个无尽话题,为了简单我总是想找捷径(主要还是太懒了),因为也是近期才开始学习使用allegro进行PCB设计,在最近的一个设计中,很多器件封装allegro中都没有,一个一个画感觉很费时间,但是在AD(AltiumDesigner)的封装库中是有的,于是便想着AD的封装库能不能倒入到alleg...

yangh2560的博客 2万+

STM32F103结合HAL库实现蓝牙遥控四麦小车的PID闭环控制

本文详细介绍了如何使用STM32F103结合HAL库实现蓝牙遥控四麦小车的PID闭环控制。从硬件选型、电路搭建到PID算法实现与调参,全面解析了四麦小车的运动控制方案,特别强调了蓝牙通信协议设计和麦轮运动学解算的关键技术。

weixin_29169899的博客 292

Mac El Capitan(10.11.6) 编译以及烧制Nexus6P(6.0.1-MTC20F)的曲折经历

下载Android源码由于以前有过Android源码相关的开发经验,所以这一关倒是难不倒,重新参考官方的文档即可(http://source.android.com/source/downloading.html)搭建Mac下的编译环境Android官方有Mac的源码编译环境搭建介绍(https://source.android.com/source/initializing.html#settin

鱼塘鱼汤的专栏 1315

FFmpeg硬件加速实战:VAAPI驱动配置全攻略(含NVIDIA/Intel避坑指南)

本文详细解析了在Linux环境下配置FFmpeg使用VAAPI接口实现硬件加速的完整流程。针对NVIDIA、Intel等主流显卡,提供了从驱动安装、环境变量设置到多显卡切换的实战指南,并重点解决了闭源驱动冲突、国产系统适配等常见问题,帮助用户有效提升视频处理性能。

weixin_29306011的博客 456

cubieboard mysql_Cubieboard开发笔记

原创作品,转载请注明出处,谢谢!写在前面:亲测可用的搭建流程,但是此流程是针对32位系统的,如果您是64位系统,请勿采用本博文的方式。我搭这个环境居然折腾了一周时间,本来用32位系统好好的,但是官网非要推荐我用64位系统。因为最终打包必须在64位环境下实现。于是乎我一直在不断换系统版本,希望能按照对方工程师所描述的状况来实现,但是我将Error发给他时,他也无计可施。因而还是回到最熟悉的方式进行编...

weixin_32428571的博客 154

【QT开发教程】使用Qt进行蓝牙低功耗(BLE)编程

蓝牙低功耗(BLE,Bluetooth Low Energy)技术广泛应用于现代设备中,例如智能手表、健身追踪器和物联网设备。Qt提供了一套完整的Bluetooth模块,使开发者可以轻松地在应用程序中实现BLE通信功能。本文将介绍如何在Qt中进行BLE编程,包括基本概念、使用方法以及一些实际的示例。

科技改变人类,技术成就未来 2869

CEEMDAN算法及其应用

本博文主要介绍CEEMDAN算法的原理及其在信号去噪方面的应用

总结论文中的算法并给出论文的复现代码 6万+

安卓换语言java_[Android]应用语言切换的三种方法

Android对国际化与多语言切换已经做得不错了,一个应用只要命名相应语系的values-[language]文件夹,通过“设置”→“语言&键盘”→“选择语言”即可实现应用多种语言的切换。 但如何在应用里自己实现?搜索过发现网上有如下的做法:Resourcesres=getResources();Configurationconfig=res.getConfigu...

weixin_33296185的博客 692

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Cubieboard开发笔记

写在前面:     亲测可用的搭建流程,但是此流程是针对32位系统的,如果您是64位系统,请勿采用本博文的方式。     我搭这个环境居然折腾了一周时间,本来用32位系统好好的,但是官网非要推荐我用64位系统。因为最终打包必须在64位环境下实现。于是乎我一直在不断换系统版本,希望能按照对方工程师所描述的状况来实现,但是我将Error发给他时,他也无计可施。因而还是回到最熟悉的方式进行编译。

创造晴天 2679

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Android ROM的制作与烧录

Android编译生成的三个镜像文件 Android源码编译后,在out/target/product/generic下生成的三个镜像文件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data。ramdisk

hack2me---Just for fun 568

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

[Android]应用语言切换的三种方法

[Android]应用语言切换的三种方法            分类:                Android2011-07-11 00:27273人阅读评论(0)收藏举报    Android对国际化与多语言切换已经做得不错了,一个应用只要命名相应语系的values-[l

703

Android经验之谈1

豌豆荚等可能会导致手机网络出现问题,电话打不进来,所以需要及时卸载豌豆荚. 系统apk,不能通过在manifest.xml里面添加origin-package或者useid等来改变。 而是需要用android源码编译, 加上mk文件,打包成system-image,然后再烧制,即可。 编译系统app,提示缺少so库,两种方法, 1.按照提示,在源码的out目录中里面的system/lib64里面p...

weixin_34310369的博客 127

android 实现只运行白名单应用

项目需求,要求本公司自己的外发设备必须只能用指定授权的白名单的应用。一开始,我是有抵触的,认为是黑科技。没办法,工作还是要认真做的。责任所在。于是,先确认思路。 想到了几个方案: 1、首先,想到的是,fullscreen activity+通过事件拦截,即,activity中的点击事件。 2、广播+服务,广播Intent.ACTION_CLOSE_SYSTEM_DIALOGS 可以监听到Ho...

cruelder的博客 3860
上一篇: httpurlconnection相关异常
下一篇: android studio 升级2.2.2后jenkins编译问题
保定老狼
博客等级 码龄15年 43粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值