导航:首页 > 程序命令 > mtkandroid编译命令

mtkandroid编译命令

发布时间:2023-05-29 16:21:16

❶ 如何编译MTK的模拟器

MTK的emulator是基于MTK平台的codeabse编译得到用来闭槐模拟真机的虚拟Device,以下是具体的操作步骤:
1. Build MTK SDK Packages
-对于mt6572以前的chip,用如下的命令编译:
./makeMtk banyan_addon
-从mt6572开始的chip,由于mt6572之后CPU开始支持X86架构,其performace会更好,mt6572之后,建议编译x86的emulator来使用.

./makeMtk banyan_addon_x86

编译完成后会在out/host/linux-x86/sdk_addon下生成MTK的SDK包,比如mtk_sdk_api_addon-17.1.zip,(其中17是android api level)

2. 解压mtk_sdk_api_addon_17.1.zip
将解压后的mtk_sdk_api_addon-17.1整个文件夹放在android原本的sdk的add-ons目录下。

3. 拷贝emulator相关的执行文件到android sdk tool下:
- 对ICS 4.0之前的版本:
进 入android-sdk-windows\add-ons\banyan_addon_ALPS.GB.FDD.MP.V1_eng\tools 目录下,将其中的 emulator.exe 或者 emulator(如果使用Linux的SDK的话)复制出来,覆盖android-sdk-windows\tools下的相应 emulator.exe

- 对ICS 4.0及之后的版本:
将 mtk_sdk_api_addon-15.1\emulator对应文件夹下的emulator,emulator-arm,emulator-x86 这三支文件替换android原本sdk的tools目录下的emulator,emulator-arm,emulator-x86这三支文件(建议备 份google原始sdk下的emulator,emulator-arm,emulator-x86,以团亮便后面用到Google emulator)。

4. 创建新的AVD
在Target里面选择带有MediaTek标塌态宽志的,然后启动这一AVD就可以了
PS:创建AVD时需要同步将SDK的版本升级到相对的android版本,比如JB2对应的android API level 17,则对应SDK的版本也要升级到level 17,否则将在创建AVD的时候将load不出带MediaTek标志的target

❷ 手机方案公司需要在mtk工程源码编译后将apk预装到system/app目录下如何操作

在 Android 中,如果要使用系统限制的权限(比如 android.permission.WRITE_SECURE_SETTINGS),我们需要把程序安装到 /system/app/ 下。

下面以 SecureSetting.apk 为例,演示这个操作。需要准备一台已经获得 Root 权限的手机。

1、通过 USB 连接手机和电脑。

2、使用 adb 控制手机。

源码打印?

1. $ adb push SecureSetting.apk /sdcard/ // 上传要安装的文件,为安装做准备。
2. $ adb shell
3. $ su // 切换到 root 用户。如果没有获得 Root 权限,这一步不会成功。
4. # mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system // 让分区可写。
5. # cat /sdcard/SecureSetting.apk > /system/app/SecureSetting.apk // 这一步可以用 cp 实现,但一般设备中没有包含该命令。如果使用 mv 会出现错误:failed on '/sdcard/NetWork.apk' - Cross-device link。
6. # mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system // 还原分区属性,只读。
7. # exit
8. $ exit

$ adb push SecureSetting.apk /sdcard/ // 上传要安装的文件,为安装做准备。
$ adb shell
$ su // 切换到 root 用户。如果没有获得 Root 权限,这一步不会成功。
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system // 让分区可写。
# cat /sdcard/SecureSetting.apk > /system/app/SecureSetting.apk // 这一步可以用 cp 实现,但一般设备中没有包含该命令。如果使用 mv 会出现错误:failed on '/sdcard/NetWork.apk' - Cross-device link。
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system // 还原分区属性,只读。
# exit
$ exit

❸ 如何在ubuntu10.04环境下编译android

安装JDK1.6,使用如下命令
sudo chmod u+x jdk-6u23-linux-x64.bin
sudo cp -a jdk-6u23-linux-x64.bin /亏链或opt
sudo /opt/jdk-6u23-linux-x64.bin
sudo rm -f /opt/jdk-6u23-linux-x64.bin
2
设置JDK环境变量,在HOME根目录下按键盘Crtr+H显示HOME目录下所有文件,打开.bashrc,在最后加入以下代销伍码
#set java environment
export JAVA_HOME=/opt/jdk1.6.0_23
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
3
测试JDK是否安装成功,使用命令java -version 如果显示
java version "1.6.0_23"
Java(TM) SE Runtime Environment (build 1.6.0_23-b02)
Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)
则JDK安装成功。
END
测试MTK android编译环境是否搭建成功

切换到MTK源码根目唤亮录下,使用命令./mk check-env,若显示如下信息则安装成功
**********checking Env************
Your building environment is OK
The detail information is in "checkenv.log"!
*************************************************

同时在MTK源码根目录下生成checkenv.log文件,打开文件,显示ubuntu10.04大部分自带工具都和MTK的推荐的一致,如下:
Build Environment Requirement
===================================================
* ********* Suggested OS and Tool Chain to install *********
*
* OS : Linux distribution Ubuntu 10.04
* Memory Size : 4G or above
* make : GNU Make 3.81 or 3.82
* perl : Version 5.10.X
* python : Version 2.6.X
* arm-linux-androideabi-gcc : Version 4.6.X
* gcc : Version 4.4.3
* jdk : Version 1.6.X
* bison : Version 2.4.X
* flex : Version 2.5.X
* gperf : Version 3.0.X
* mingw : Installed
* unix2dos/tofrodos : Installed
* **********************************************************
===================================================

Build Environment Check Result Report
*************************************************************

[OS]: Ubuntu 10.04.4 (64-bit) [OK]
[Physical Memory Size] : 4052924 K-Bytes [WARNING]
it's smaller than recommendation, may cause out-of-memory build error

[make]: 3.81 (64-bit) [OK]
[perl]: 5.10.1 (64-bit) [OK]
[python]: 2.6.5 (64-bit) [OK]
[arm-linux-androideabi-gcc]: 4.6. (64-bit) [OK]
[gcc]: 4.4.3 (64-bit) [OK]
[jdk]: 1.6.0_45 (64-bit) [OK]
[bison]: 2.4.1 (64-bit) [OK]
[flex]: 2.5.35 (64-bit) [OK]
[gperf]: 3.0.3 (64-bit) [OK]
[mingw]: Installed [OK]
[unix2dos/tofrodos]: Installed [OK]
*************************************************************
步骤阅读
3
也可以解决下这个问题
[Physical Memory Size] : 4052924 K-Bytes [WARNING]
it's smaller than recommendation, may cause out-of-memory build error
打开mediatek/build/tools/checkEnv.py
修改lowMen为0

❹ MTK Android tinycap录制音频

tinycap和tinymix 是tinyalsa下的可执行程序,源码在external\tinyalsa下
我们只需要在device.mk 内添加

编译即可

1.在开机后,有root权限的情况,执行扮弯tinymix,得到控件状薯侍态。

2.开启录音机。执行tinymix,得到录音状态下控件情况

比较不同处

经过分析,主要是ctl id 14 15 16 17 20 21需要在录音时候打开。

1.执行如厅手闷下命令

tinymix 14 1
tinymix 15 3

tinymix 16 1
tinymix 17 1

tinymix 20 4
tinymix 21 4
2.tinycap录音
tinycap /sdcard/aud-test.wav -D 0 -d 1 -c 2 -b 16 -r 16000

OK~

❺ 如何学习MTK 编译android系统的framework层源码,需要看一些什么文档,最近在公司需要学习、

mtk有个叫makeMtk的脚本文件,直接执行就行,后面参数加上自己要编译的模块,比如./makeMtk -t mm frameworks/base/core/res

❻ 如何编译 MTK 的模拟器

编译命令

make custom=xxx gprs/gsm new/remake/update/clean mole_name
编译时进入Dos下工程所在的目录,然后输入上面的命令语句即可开始编译。
参数:
custom=xxx
xxx是不同的软件版本,编译时可忽略参数“custom=”,系统会自动判断。
gprs/gsm是说明该软件是否支持gprs的,如果不支持gprs,只输入gsm即可;
mole_name:各个模块的名字
new
功能:全部重新编译
用途:第一次编译时和修改了make文件夹中的文件必须得重新new一下
remake
功能:只重新编译工程中更新过的部分
用途:remake是耗时最短的一个动作,也是仿运好最常用的动作。
resgen
功能:编备铅译资源
用途:如果更改了资源文件或新加了资源文件,则用此命令。
upadte
功能:先检查,然后重新编译更新部分,编译时间较长。
用途:update是耗时较长的一个指令,
一般在增加或删除一些驱动或应用情况下使用,在做开发时不推荐使用,此命令虽比new
的时间短,但比remake的时间长很多。
clean
功能:删除对应的obj
用途:作为其它命令所依赖的指令,还有就是清除工程或者指定模块对象的类库。

也可以写编译脚本例写一个new.bat 文件 文件内容为make custom=project_name new
则编译时在cmd.exe下输入new 即可 相对应的resgen.bat 内容为make custom=project_name resgen

编译模拟器时 应注意:
gen_modis
gen_modis功能:产生VC工程文件
在new完成后需要运行此命令,其它情况如果模拟器出现异常时也可用此命令重新生成VC
工程文件。
codegen_modis
功能:产生modis需要的trace文件的datebase
用途:在new完成后需要运行此命令,在运行此命令前需先运行gen_modis命令,此命令在
new完成后一般只运行一次,执行像resgen或remake命令后都不需要运行此命令。
new_modis
功能:组合了gen_modis 和 codegen_modis
只是听说悄蔽,没具体试验过呢我一般分开执行的简化命令

工程new 一遍 模拟器不会自动生成一个新的模拟器
当改动工程中的make文件时 工程必须要new一遍 然后gen_modis codegen_modis 然后编译VC
当改动的是源文件且源文件已经是工程中某些模块的内容 则可以无须对工程进行操作 直接用VC编译
当改动的是资源文件则工程要resgen remake 然后gen_modis codegen_modis 然后才用VC编

❼ Yocto编译杰发或MTK的linux或android时的几个问题

编译问题1(audiomanager_7.0.bb的do_configure报错):

错误:CMake Error at Plugins/PluginCommandInterfaceCAPI/cmake/CommonAPI.cmake:352 (message):

|   Failed to generate files from FIDL:

手动执行一下:

$ commonapi-generator-linux-x86 -ll verbose -sk Default -d . /data/linux/hz_rs28_bm/sources/神燃build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/audiomanager/7.0-r1/audiomanager-7.0/Plugins/PluginCommandInterfaceCAPI/fidl/CommandInterface.fidl

-bash: /data/linux/hz_rs28_bm/sources/src/build/tools/commonapi_tool/commonapi-generator/commonapi-generator-linux-x86: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

解决(需要安装32位的glibc库和32位java jre环境):

$ sudo yum install glibc.i686

$ sudo yum install java-1.8.0-openjdk.i686

$ sudo ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.i386/jre/bin/java /bin/java

$ java -version    (保证是32位的java)

编译问题2(perl_5.20.0.bb的do_package报错):

错误:ERROR: obj failed with exit code 256 (cmd was ‘arm-poky-linux-gnueabi-obj’ –only-keep-debug

… generate_uudmap: File format not recognized

解决(tar在1.29版本之后需要exclude在路径的前面):

sources/meta/poky/bitbake/lib/bb/fetch2/bzr.py

tar_flags = “–exclude ‘.bzr’ –exclude ‘.bzrtags'”

修改成:

tar_flags = “–exclude=’.bzr’ –exclude=’.bzrtags'”

sources/meta/poky/bitbake/lib/bb/fetch2/cvs.py

tar_flags = “–exclude ‘CVS'”

修改成:

tar_flags = “–exclude=’CVS'”

sources/meta/poky/bitbake/游轮虚lib/bb/fetch2/repo.py

tar_flags = “–exclude ‘.repo’ –exclude ‘.git'”

修改成:

tar_flags = “–exclude=’.repo’ –exclude=’.git'”

sources/meta/poky/bitbake/lib/bb/fetch2/svn.py

tar_flags = “–exclude ‘桐颤.svn'”

修改成:

tar_flags = “–exclude=’.svn'”

sources/meta/poky/meta/recipes-devtools/quilt/quilt-0.63.inc

       tar -cf – bin/ –exclude \*.in | ( cd ${D}${PTEST_PATH} && tar -xf – )

       tar -cf – compat/ –exclude \*.in | ( cd ${D}${PTEST_PATH} && tar -xf – )

       tar -cf – quilt/ –exclude \*.in | ( cd ${D}${PTEST_PATH} && tar -xf – )

       tar -cf – test/ –exclude mail.test –exclude delete.test | ( cd ${D}${PTEST_PATH} && tar -xf – )

修改成:

        tar -c –exclude=\*.in bin/ | ( cd ${D}${PTEST_PATH} && tar -xf – )

        tar -c –exclude=\*.in compat/ | ( cd ${D}${PTEST_PATH} && tar -xf – )

        tar -c –exclude=\*.in quilt/ | ( cd ${D}${PTEST_PATH} && tar -xf – )

        tar -c –exclude=mail.test –exclude=delete.test test/ | ( cd ${D}${PTEST_PATH} && tar -xf – && chmod 777 test)

sources/meta/poky/meta/recipes-extended/sed/sed-4.2.2/sed-add-ptest.patch

+       cd $(BUILDDIR); tar -cf – $(TESTDIR) –exclude *.o | ( cd $(DESTDIR) && tar -xf – )

修改成:

+       cd $(BUILDDIR); tar -c –exclude=*.o $(TESTDIR) | ( cd $(DESTDIR) && tar -xf – )

sources/meta/poky/meta/recipes-support/attr/acl.inc

tar -cf – test/ –exclude nfs | ( cd ${D}${PTEST_PATH} && tar -xf – )

修改成:

tar -c –exclude=nfs test/ | ( cd ${D}${PTEST_PATH} && tar -xf – )

sources/meta/poky/meta/recipes-support/attr/attr.inc

tar -cf – test/ –exclude ext | ( cd ${D}${PTEST_PATH} && tar -xf – )

修改成:

tar -c –exclude=ext test/ | ( cd ${D}${PTEST_PATH} && tar -xf – )

sources/meta/poky/meta/recipes-devtools/perl/perl-ptest.inc

       tar -cf – * –exclude \*.o –exclude libperl.so –exclude Makefile –exclude makefile –exclude hostperl \

               –exclude miniperl –exclude generate_uudmap –exclude patches | ( cd ${D}${PTEST_PATH} && tar -xf – )

修改成:

        tar -c –exclude=\*.o –exclude=libperl.so –exclude=Makefile –exclude=makefile –exclude=hostperl \

                –exclude=miniperl –exclude=generate_uudmap –exclude=patches * | ( cd ${D}${PTEST_PATH} && tar -x )

编译问题3(libunwind_1.1.bb的do_compile报错):

错误:make[1]: latex2man: Command not found

解决:

$ sudo yum install texlive-tetex

$ sudo rpm -ivh ~/latex2man-1.18-2.noarch.rpm

编译问题3(qt5-app_1.0.bb的do_compile报错):

错误(有一批类似的错误):ld: cannot find -lgtest

解决:

$ vi atc_linux/application/btate/btate.pro

equals(MY_BUILD_SYSTEM, atc) {

    LIBS += -L $(DA_LIBDIR)/lib -lgtest -lpthread -lbluetoothclient -lglobalbus -lappobj -lapputils

} else {

    LIBS += -L$(DA_TOP)/application/lib -L$(DA_TOP)/../../sources/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/atc-binarys/1.0-r0/image/usr/lib -lgtest -lpthread -lbluetoothclient -l

globalbus -lappobj -lapputils

}

$ vi atc_linux/application/gps/gps_bin.pro

equals(MY_BUILD_SYSTEM, atc) {

    LIBS += -L $(DA_LIBDIR)/lib  -lapputils  -lglobalbus -lappobj -lgps

} else {

    LIBS += -L$(DA_TOP)/application/lib -L$(DA_TOP)/../../sources/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/gpsd/3.10-r0/gpsd-3.10/ -lapputils  -lglobalbus -lappobj -lgps

}

$ vi atc_linux/application/dvr/dvr_bin.pro

equals(MY_BUILD_SYSTEM, atc) {

        LIBS    += -L${DA_TOP}/lib/lib/ -ldvr -ludev -lsurface_atc -lglobalbus -lappobj -lapputils -lstorage_atc -lgps

} else {

        LIBS    += -L${DA_TOP}/application/lib -L$(DA_TOP)/../../sources/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/gpsd/3.10-r0/gpsd-3.10/ -ldvr -ludev -lsurface_atc -lglobalbus –

lappobj -lapputils -lstorage_atc -lgps

}

$ vi atc_linux/application/dvr/dvr_bin.pro

INCLUDEPATH +=  ${DA_TOP}/kernel/kernel-3.18/drivers/ \

                ../common/  \

                ../utils/   \

                ../appobj/include/          \

                ../globalbus/include/       \

                ../appcommon/include/       \

                ../storage_atc/             \

                ../dvr/gps/             \

                ../gps/include/         \

                ../gps/includeex/       \

编译问题4(makall报错):

报错:./makall: line 169: mkisofs: command not found

解决:$ sudo yum install mkisofs

编译问题5(修改ac83xx_systemd_defconfig再编译时报错):

报错:Applying patch remove-selinux-android.patch

patching file system/extras/ext4_utils/make_ext4fs.c

Hunk #1 FAILED at 62.

1 out of 1 hunk FAILED — rejects in file system/extras/ext4_utils/make_ext4fs.c

解决:

$ vi sources/meta/meta-atc/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb

在里面做个假的do_patch(),bitbake会优先使用本bb文件的do_patch()函数。

do_patch(){

}

编译问题6(修改ac83xx_systemd_defconfig再编译时报错):

报错:sources/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/qtbase/5.5.0+gitAUTOINC+c619d2daac-r0/git/src/corelib/tools/qregexp.cpp:3947:1: internal compiler error: in add_stores, at var-tracking.c:6000

解决:

$ cd sources/meta/poky/meta/recipes-devtools/gcc/gcc-4.9/

$ wget  http://openlinux.windriver.com/overc/sources/core2_64/gcc-4.9.2-r0.1/0062-gcc-var-tracking.c-backport-from-gcc-trunk-r212178.patch

$ vi sources/meta/poky/meta/recipes-devtools/gcc/gcc-4.9.inc

    file://0058-gcc-r212171.patch \

    file://0059-gcc-PR-rtl-optimization-63348.patch \

    file://target-gcc-includedir.patch \

    file://0062-gcc-var-tracking.c-backport-from-gcc-trunk-r212178.patch \

其实就是这个文件:

$ cat 0062-gcc-var-tracking.c-backport-from-gcc-trunk-r212178.patch

From Mon Sep 17 00:00:00 2001

From: =?UTF-8?q?Stefan=20M=C3=BCller-Klieser?= <[email protected]>

Date: Tue, 7 Apr 2015 16:15:11 +0200

Subject: [PATCH] gcc/var-tracking.c: backport from gcc trunk r212178

MIME-Version: 1.0

Content-Type: text/plain; charset=UTF-8

Content-Transfer-Encoding: 8bit

resolves a bug seen on cortexa8 building qt5 libraries.

2014-06-30  Joseph Myers  <[email protected]>

    * var-tracking.c (add_stores): Return instead of asserting if old

    and new values for conditional store are the same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212178 138bc75d-0d04-0410-961f-82ee72b054a4

Signed-off-by: Stefan Müller-Klieser <[email protected]>

---

gcc/var-tracking.c | 3 ++-

1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c

index 65d8285..7c38910 100644

--- a/gcc/var-tracking.c

+++ b/gcc/var-tracking.c

@@ -5997,7 +5997,8 @@ add_stores (rtx loc, const_rtx expr, void *cuip)

    {

      cselib_val *oval = cselib_lookup (oloc, GET_MODE (oloc), 0, VOIDmode);

-      gcc_assert (oval != v);

+      if (oval == v)

+        return;

      gcc_assert (REG_P (oloc) || MEM_P (oloc));

      if (oval && !cselib_preserved_value_p (oval))

--

1.9.1

编译问题7(修改ac83xx_systemd_defconfig再编译时报错):

报错:libevdev/1.2.2-r0/libevdev-1.2.2/test/test-main.c:24:19: fatal error: check.h: No such file or directory

解决:

$ vi meta/poky/meta/recipes-support/libevdev/libevdev_1.2.2.bb

LIC_FILES_CHKSUM = “file://COPYING;md5= \

                    file://libevdev/libevdev.h;endline=21;md5=″

DEPENDS += “libcheck”

SRC_URI = “ http://www.freedesktop.org/software/libevdev/ ${BP}.tar.xz”

编译问题8(修改ac83xx_systemd_defconfig再编译时报错):

报错:python报错: ‘do_rootfs’, lineno: 17, function

Exception: CalledProcessError: Command ‘[‘’, ‘-ks’, …

解决: 没有实际问题,重新编译一次即可,可能是机器太忙导致超时,或者某个命令执行不成功。

编译问题9(preuboot编译工具问题):

报错:make: armv7a-mediatek451_001_vfp-linux-gnueabi-gcc: Command not found

解决:

$ vi atc_linux/bootloader/preuboot/Makefile

#CROSS_COMPILE  :=armv7a-mediatek451_001_vfp-linux-gnueabi-

CROSS_COMPILE  :=arm-poky-linux-gnueabi-

$ vi ../../atc_linux/bootloader/preuboot/driver/mmc/include/linux/list.h

#ifndef NULL

    #define NULL 0

#endif

❽ android如何把apk的工程代码放到源码目录下编译

啥平台的,是原生的还是高通的还是mtk的?反正都类似,你需要一个Android.mk然后源码需要整体new过。然后编译的时候编译到Android.mk所在目录就可以了。反正我现在接触mtk平台的,new代码方法如下:1、首先到XXXXXX/L23_XXXXXXX_AN5.1_MT6735_65C_L1.MP3.V1.8.9_150503/android_mtk_6753_mp目录下,使用如下命令./TmakeGionee
BFL7506A
-p
packages/apps/XXXXX(XXXXXX就是你apk代码所存放的并且与Android.mk同级的目录)。

❾ mtk平台修改init.rc后如何快速编译啊

修改init.rc文件后,一般只需要做以下快速编译即可生成新文件。
./mk bootimage

阅读全文

与mtkandroid编译命令相关的资料

热点内容
creo五轴编程光盘 浏览:12
苹果app网络验证在哪里 浏览:14
博科清空命令 浏览:384
简爱英文pdf 浏览:376
cnc编程有前途吗 浏览:586
联想app怎么联网 浏览:722
linuxftp命令登录 浏览:1000
android获取图片缩略图 浏览:646
神户制钢螺杆压缩机 浏览:29
差分演化算法 浏览:567
中山市加密软件 浏览:446
mc反编译源码 浏览:139
企业商城网站源码 浏览:411
shell脚本编程是什么 浏览:762
单片机led闪烁汇编 浏览:203
点淘app怎么没金蛋了 浏览:878
app拉新哪里找推广码 浏览:935
哪个app生活服务好 浏览:108
mht安卓用什么软件打开 浏览:320
html5即时通讯源码 浏览:144