Android及linux编译
文章平均质量分 94
loongembedded
本人目前在佛山一家上市公司负责智能终端、服务机器人的研发工作,欢迎大家的指教和交流!。
展开
-
Android系统编译so库提示error undefined reference to '__android_log_print问题的解决
在系统源代码的hardware/qcom下增加psam文件夹,编译源代码要生成libpsam.so库,Android.mk内容LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS) LOCAL_MODULE := libpsamLOCAL_SRC_FILES := psam.cLOCAL_MODULE_TA...原创 2018-12-29 14:10:22 · 5593 阅读 · 0 评论 -
android 单个模块编译的方法
单个模块编译的方法$.build/envsetup.sh mmm packages/apps/Contacts/ 示例编译联系人 这时生成 out/target/product/generic/data/app/ContactsTests.apk out/target/product/generic/system/app/Contacts.apk make snod 重新生成system.img转载 2017-03-14 20:37:22 · 2109 阅读 · 0 评论 -
用shell写了一个自动编译代码的脚本
点击打开链接为了充分利用晚上的时间进行编译,用shell写了一个自动编译代码的脚本,这样保证第二天的调试工作不会受大版本编译的影响,同时也能监测服务器端的代码是否出错。我习惯是在每天下班离开之前运行此脚本。1、运行命令:打开ubuntu终端[html] view plain copy $sleep 3600;./build_local.sh 2 3 上面这条命令的含义是:睡眠3600秒之后,调用转载 2017-03-18 11:26:26 · 1500 阅读 · 0 评论 -
Linux/Android Kconfig Makefile defconfig 和 .config关系
点击打开链接在进行Android L-》M升级时遇到打印:Root cause is probably that a dependancy declared in Kconfig is not respectedor config was added in Kconfig but value not explicitly added to defconfig.Recommanded method转载 2017-03-17 16:57:51 · 1572 阅读 · 0 评论 -
Building System之 get_abs_build_var() && get_build_var()
点击打开链接1、get_abs_build_var() 和 get_build_var()的实现都在build/envsetup.sh中。2、在buld目录下grep这两个函数可知:这两个函数只在build/envsetup.sh脚本中使用。言归正传,贴代码[plain] view plain copy# Get the value of a build variable as an absolu转载 2016-09-27 12:41:57 · 1700 阅读 · 0 评论 -
在Ubuntu-14.04.3配置并成功编译Android6_r1源码
在Ubuntu-14.04.3配置并成功编译Android6_r1源码折腾了一周,终于把Android6_r1的源码编译成功。先上图,这是在ubuntu中运行的Android模拟器:由于我是在win8中安装虚拟机VMware,然后在虚拟机中安装Ubuntu进行编译,所以遇到诸多麻烦。如果直接在linux中编译,可能会更顺利。-------------------------------------转载 2016-09-22 11:33:52 · 1984 阅读 · 0 评论 -
androidexternal目录下新增一个可执行应用及编译
androidexternal目录下新增一个可执行应用及编译 新增的应用为test文件夹,此文件夹下包含Android.mk和test.cpp文件,Android.mk内容如下:LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES := study.cppLOCAL_MODULE := studyLOCAL_MODULE_原创 2017-08-01 16:07:22 · 6824 阅读 · 3 评论 -
Android.mk解析
一、变量说明:1.LOCAL_PATH:= $(call my-dir)此行代码在Android.mk的开头,用于给出当前文件的路径 LOCAL_PATH 用于在开发树中查找源文件 宏函数’my-dir’, 由编译系统提供,用于返回当前路径(即包含Android.mk file文件的目录) 2.LOCAL_PACKAGE_NAME := SecSettings 或 LOCAL_MODULE:= S转载 2017-08-29 15:16:56 · 1116 阅读 · 0 评论 -
android7.1编译第三方apk到系统中的android.mk学习 基于packages/apps/Browser/Android.mk文件内容,如下: LOCAL_PATH := $(my-d
android7.1编译第三方apk到系统中的android.mk学习 基于packages/apps/Browser/Android.mk文件内容,如下:LOCAL_PATH := $(my-dir) include $(CLEAR_VARS) LOCAL_MODULE := SWEBrowserLOCAL_MODULE_TAGS := optionalLOCAL_MODULE_CLASS :=原创 2017-08-29 16:21:00 · 5353 阅读 · 1 评论 -
Android系统framework的base目录下编译生成对应oat和art
比如frameworks\base\core\java\android\hardware\Camera.java,对应system\framework\framework.jar,怎么知道是对应framework.jar呢,framework\base有Android.mk文件,在base目录下就没有Android.mk文件了,见frameworks\base\Android.mk给出了依据:...原创 2019-01-03 15:45:06 · 4615 阅读 · 0 评论 -
Android高通平台下编译时能生成(拷贝)预编译的so到system的lib目录
参考hardware\qcom\display\libcopybit通过编译log可以知道编译到这里,生成的copybit.msm8937.so在out\target\product\msm8937_64\system\lib\hw下。libcopybit\Android.mk相关部分如下:编译相关的logbuild/core/Makefile:54: Defined in: ...原创 2018-12-28 16:12:48 · 4151 阅读 · 1 评论 -
高通android新建项目
点击打开链接How to add a new project in qualcomm android platformOriginal project name: msm8226New project name: d8011. Add system(Directory: system/core/rootdir/) Add: d801/2. Add kernel(Directory: kern...转载 2018-05-30 22:08:28 · 815 阅读 · 0 评论 -
Android编译小结(新建android项目)
点击打开链接正式开始一个新的平台,以前的项目拿到的代码都是供应商改好的,感觉有很多不规范的地方。这次从一个全新的项目着手,严格按照android规范进行项目的添加、板级文件的支持。目标是争取不改动build目录下的文件,而是用好它的扩展机制。在lunch中增加combo选项的标准方法在执行完. build/envsetup.sh后,执行lunch,会出现lunch菜单:You're buildin...转载 2018-05-30 21:54:45 · 826 阅读 · 0 评论 -
Android系统build.prop文件生成过程
点击打开链接这个文件类似于windows的注册表文件,定义了系统初始的一些参数属性,功能的开放等,通过调整或增加这些参数可以达到校调系统性能偏重点和附加功能开启的作用。我们经常说rom是刷系统的意思,但是rom的愿意是read only memory,只读存储器,正因为是只读了,所以文件系统通常会存储在手机rom中,但是在特殊情况下我们可以对rom进行写操作。# begin build prope...转载 2018-05-13 08:04:13 · 2625 阅读 · 0 评论 -
修改framework后重新刷入手机
点击打开链接由于业务需求,需要修改SystemUI,在修改了SystemUI之后出现了各种问题,原本以为只要混滚SystemUI然后重新入到systemUI的根目录mm一下就行,没想到刷入到手机没有任何作用。经人指点是要把编译生成的framework-res.apk和framework.jar删除,然后重新生成,按照我以往逻辑,我只是修改了framework/base目录下的代码,只需要在该目录下转载 2018-01-24 12:56:47 · 908 阅读 · 0 评论 -
Android 编译命令
一、引言先看下面几条指令,相信编译过Android源码的人都再熟悉不过的。source setenv.shlunchmake -j12记得最初刚接触Android时,同事告诉我用上面的指令就可以编译Android源码,指令虽短但过几天就记不全或者忘记顺序,每次编译时还需要看看自己的云笔记,冰冷的指令总是难以让我记忆。后来我决定认真研究下这个指令的含义。知其然还需知其所以然,这样能更深层次的理转载 2017-11-21 11:46:12 · 756 阅读 · 0 评论 -
android 修改framework下资源文件后如何编译
在framework/base/core/res/res 下添加资源文件后需要先编译资源 然后编译framework 才可正常引用进入项目根目录 cd frameworks/base/core/res/ 执行mm命令(原生或高通), 编译 framework-res.apk或 ./mk mm frameworks/base/core/res(mtk 依据各平台编译命令有所不同)编译完后com.an转载 2016-09-05 17:08:35 · 1569 阅读 · 0 评论 -
Mtk Android 打包解包*.img
打包/解包 boot.img, system.img, userdata.img, or recovery.img[DESCRIPTION]MTK codebase编译出来的image必须使用MTK codebase里的工具才能解开或打包,网络上的打包/解包工具不能在MTK的image里使用 [KEYWORD]打包解包diff转载 2014-08-26 18:23:57 · 3786 阅读 · 0 评论 -
Android构建boot.img(二):kernel的拷贝与打包
上文已经对boot.img其中组成部分之一ramdisk.img做了分析,boot.img另外一个重要的组成部分就是kernel了,这里所说的kernel,可以只理解为位于out/target/product/tcc8800/中的kernel文件,本文主要分析kernel的拷贝过程以及如何被打包到boot.img中。经过分析得知位于out/target/product/tcc880转载 2014-08-26 16:00:27 · 4131 阅读 · 0 评论 -
Android构建boot.img(一):root目录与ramdisk.img的生成
以TCC88XX为例,当在Android顶层源码目录使用make编译完成后,会生成这样一个目录:out/target/product/tcc8800,该目录内部有我们需要的boot.img和system.img,boot.mg使用kernel和out/target/product/tcc8800/root目录打包而成(广义的ramdisk),也就是说,boot.img是由k转载 2014-08-26 15:58:16 · 3266 阅读 · 0 评论 -
【Android】MTK Android 编译命令
命令格式:./maketek [option] [project] [action] [modules]Option:-t ,-tee :输出log信息到当前终端-o , -opt=…… : 编译附加条件,一般使用-opt=TARGET_BUILD_VARIANT=user来编译用户板软件-h ,help : 打印帮助信息并退出Proje转载 2014-08-23 10:09:42 · 2006 阅读 · 0 评论 -
MTK Android 编译命令
一、Target 编译命令usage: (makeMtk|mk) [options] project actions [moudles]options: -t,-tcc :print log information to the standard output.转载 2014-08-23 10:04:59 · 1668 阅读 · 0 评论 -
Android OTA 升级之三:生成recovery.img
Android OTA 升级之三:生成recovery.img作者: 宋立新Email:zjujoe@yahoo.com前言 得到了ota升级包后,我们就可以用它来升级系统了。Android 手机开机后,会先运行 bootloader。 Bootloader 会根据某些判定条件(比如按某个特殊键)决定是否进入 recovery 模式。Recovery 模式会装载 rec转载 2014-08-27 14:32:11 · 1409 阅读 · 1 评论 -
理解 Android Build 系统
Android Build 系统是用来编译 Android 系统,Android SDK 以及相关文档的一套框架。众所周知,Android 是一个开源的操作系统。Android 的源码中包含了许许多多的模块。 不同产商的不同设备对于 Android 系统的定制都是不一样的。如何将这些模块统一管理起来,如何能够在不同的操作系统上进行编译,如何在编译时能够支持面向不同的硬件设备,不同的编译类型,且转载 2014-08-27 10:16:07 · 1890 阅读 · 0 评论 -
Android 5.x 权限问题解决方法
android 5.x开始,引入了非常严格的selinux权限管理机制,我们经常会遇到因为selinux权限问题造成的各种avc denied困扰。 本文结合具体案例,讲解如何根据log来快速解决90%的权限问题。 遇到权限问题,在logcat或者kernel的log中一定会打印avc denied提示缺少什么权限, Command: cat /proc/kmsg | grep avc 或 d转载 2016-08-10 14:34:06 · 3606 阅读 · 0 评论 -
arm-linux内核编译过程小结
记在前面的杂七杂八内核的生成,实际上最终的目的是生成一个binary文件zImage,大小2-5MB的数量级。用户可以从kernel.org得到的tar.gz格式的内核源代码,此代码解压后,就会生成初始状态的内核源代码树,这种状态称为内核的初始状态。通过make mrproper/make distclean等指令,可以使内核恢复到刚解压的状态。其中make mrproper只清除包括.confi转载 2016-08-31 10:45:30 · 6284 阅读 · 0 评论 -
msm8916 dt选用规则
1、AndroidBoard.mk 选则kernel build 默认配置文件:msm8916_defconfig/device/qcom/msm8916/AndroidBoard.mk#----------------------------------------------------------------------# Compile Linux Kernel#-------------转载 2016-03-30 14:13:37 · 2552 阅读 · 0 评论 -
Android.mk 文件语法详解
0. Android.mk简介:Android.mk文件用来告知NDK Build 系统关于Source的信息。 Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次。所以,请尽量少的在Android.mk中声明变量,也不要假定任何东西不会在解析过程中定义。Android.mk文件语法允许我们将Source打包成一个"modules". modul转载 2015-12-23 17:51:22 · 2003 阅读 · 0 评论 -
android 修改framework下资源文件后如何编译
在framework/base/core/res/res 下添加资源文件后需要先编译资源 然后编译framework 才可正常引用进入项目根目录 cd frameworks/base/core/res/ 执行mm命令(原生或高通), 编译 framework-res.apk或 ./mk mm frameworks/base/core/res(mtk 依据各平台编译命令有所不同)编译完后com.a转载 2015-12-22 14:20:24 · 3430 阅读 · 0 评论 -
基于MT6752/32平台 Android L版本驱动移植步骤
基于MT6752/32平台 Android L版本驱动移植步骤 根据MK官网所述,在Android L 版本上Turnkey ABS 架构将会phase out,而Mediatek Turnkey架构将会全面转向Turnkey AOSP架构。本博文将会大致描述下如何将ABS架构下KK版本的驱动如何移植到AOSP架构的android L版本上。1.1 Turnkey转载 2015-04-11 09:58:14 · 7351 阅读 · 0 评论 -
Mtk Android编译命令
一、输入命令:cbk@YCS:~/work/k6/alps$ ./mk help Usage: (makeMtk|mk) [options] project actions [modules]Options: -t, -tee : Print log information on the standard-out. -o, -opt=bypas转载 2014-08-19 13:11:15 · 2080 阅读 · 0 评论 -
mtk Android 编译命令自定义--添加版本号
1. alps\build\core\Makefile文件:(参照CUSTOM_BUILD_VERNO)ifeq "" "$(SURPLUS_BUILD_VERNO)" SURPLUS_BUILD_VERNO := $(BUILD_NUMBER) SURPLUS_BUILD_VERNO := $(subst eng.$(USER).,,$(SURPLUS_BUILD_V转载 2014-08-23 10:07:19 · 2555 阅读 · 0 评论