将文件编译进安卓系统内核
① 安卓手机内核怎么刷入
刷手机内核步骤准备:
1、首先要做好准备工作,确保手机已经安装好驱动,将所有需要的东西都放好位置;
2、将手机关机,按住音量上键不放同时还要将手机连接到电脑上,等待蓝灯常亮(新安装驱动第一次会运行系统会先安装驱动,在插一遍),放手,蓝灯不可以灭或者手机是充电模式,然后检查驱动;
刷手机内核
1、手机蓝灯连接好以后回到电脑上win7系统(XP系统直接右击鼠标进DOS命令)安住键盘shift键不放,鼠标移动到fastboo文件夹上右击鼠标,移动到在此处打开命令窗口,点击进CMD命令
2、在出现的命令窗口中输入刷内核命令:fastboot flash boot ics8.elf,然后按回车键,这时会有一个进程;
3、到这里大家回到fastboot就OK了,拔掉USB线开机,当指示灯亮并震动时按住住音量上键不放可以进Recovery模式。
Recovery主界面中英文:
1、reboot system now 重启手机(刷机完毕选择此项就能重新启动系统);
2、install zip from SDcard 从SDcard上安装zip升级包(可以执行任意名称的zip(ROM)包,不限制ROM包名称);
3、wipe data/factory reset 清除用户数据并恢复出厂设置(刷机前必须执行的选项);
4、wipe cache partition 清除系统缓存(刷机前执行)(系统出问题也可尝试此选项,一般能够解决);
5、backup and restore 备份和还原系统(目前不支持);
6、mounts and storage 挂载和存储选项(目前支持USB挂载)。
② 如何添加iptables/netfilter模块到安卓内核
所以要实现netfilter(iptables)就要从两方面来着手:1)内核支持netfilter;2)用户层的iptables配置命令。
1、编译内核,支持netfilter
在宿主机上进入linux内核目录,配置所需的内核模块:cd/usr/SRC/linuxmakemenuconfig
选中如下内核选项:
Generalsetup---
[*]Sysctlsupport(在ROMFS文件系统中/proc/syS/Net/ipv4/出现ip_forward)
Networkingoptions---[*]NetworkPACketfiltering(replaceSIPchains)IP:NetfilterConfiguration---(全部选择即可)
这样在内核中就选择支持了netfilter。接下来只需编译并生成内核映像文件并烧写到嵌入式系统即可。如果烧写后重起成功进入Linux,则说明新的支持netfiter的内核已经正常运行。(注意,这里的内核选项只是一些支持netfilter/iptables的选项。这里假设原有内核已支持嵌入式系统的相关硬件,并能在嵌入式平台上运行)。
2、编译生成iptables命令
iptables工具包可以免费从网上获得。下载iptables工具包后,进入下载目录,进行编译生成可执行文件,编译方法具体可以参考iptables目录下的INSTALL文件:
cd/root/iptables
makeKERNEL_DIR=/usr/src/linux(指定内核目录)
makeNO。SHARED_LIBS=1(静态链接编译生成可执行文件)
把生成的iptables可执行文件到ramdisk再下载到嵌入式系统中就可以运行。
③ 如何把应用程序app编译进android系统
把安卓应用软件安装到安卓系统文件,即把安卓应用软件放到系统根目录system/app下 操作方法 :
准备工作:
一、开启ROOT权限。
ROOT方法:下载一键ROOT之类的软件,根据操作步骤进行,就可以获取ROOT权限了。
二、安装RE文件管理器。
清理系统自带应用
(一)、用RE打开系统根目录下的system/app,进行精简系统自带应用,注意,要对照一些总结可删减程序的文件,以免删错了导致系统故障。
(二)、根目录:preload目录下,可能会有系统的预装应用,不用的也可以全部删掉。
移动APK到system/app 目录:
一、移动apk:用RE管理器把要安装的apk软件移动到/system/app 目录下。
在操作前,将/system/app 目录挂载为可读写;
注意软件名不要有中文 、空格及其他特殊字符等;
如果无法移动,显示空间不足时,可以先移动到data/app/下,再移动到/system/app;
二、修改apk权限: 对移动进来的apk软件更改权限,即改为:用户权限为 读+写,分组权限为 读,其他权限为 读。
三、提取 .so文件:用RE提取apk软件中/lib/目录下的所有 .so文件,将其移动到/system/lib中。
点击apk软件,用RE查看文件内容,即可找到 ,so文件。
四、修改 .so文件权限:方法同上。
五、重启手机。在此过程中,可能加载的时间稍长点,请耐心等待即可。
④ 怎样编译安卓内核
把ROM解压出来,然后有很多文件夹,然后再进行编辑就可以了,可以根据自己的要求自己定制ROM
⑤ 为了能从sd卡启动android系统,内核应该怎么编译
本人使用mini6410开发了一个sqlite数据库的程序,在mini6410的linux系统下已经能够成功运行了。因为Android使用的也是linux内核,所以我想当然的认为按照同样的方法将程序移植到mini6410的android系统中也可以成功运行,但是当我运行程序的时候却提示我不能找到可执行文件(xlisten-arm是交叉编译出来的可执行文件):
/ # ./xlisten-arm
/system/bin/sh: ./xlisten-arm: not found
1.探索:
在网上搜索起初认为可能是库文件的不全导致的,于是在查看可执行文件xlisten-arm所需要的动态链接库:
执行语句:
# arm-linux-readelf -a ./xlisten-arm | grep "Shared"
0x00000001 (NEEDED) Shared library: [libsqlite3.so.0]
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libcrypt.so.1]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [libdl.so.2]
0x00000001 (NEEDED) Shared library: [libc.so.6]
知道所需的动态链接库后,到android文件系统中去照着写库文件,在目录/system/lib 中,果然缺少相应的库文件,于是认为找到了我问题的根源所在,在复制相应库文件的时候为了保留原来的属性,还特意用了
#cp -a filename dir
谁知将这些库都添加进去以后,仍然无济于事!
看来不仅仅事库文件缺失的问题了,而且一般来说,如果真的是因为缺少库文件而导致的问题,终端会提示我们链接某库文件时没有找到该库文件。
2.正确的解决方法:
将程序编译的时候选择静态编译,即使用选项 -static
我是对Makefile文件中的CFLAG变量进行修改
CFLAGS = -Wall
改为;
CFLAGS = -Wall -static
然而此时又出现问题了:
undefined reference to `pthread_mutex_*'
undefined reference to `dl*'
提示没有定义这些函数,于是在包含的库文件中添加了这两个库文件
在Makefile中,修改LIBS变量;
LIBS = -lsqlite3 -lm -lcrypt
改为:
LIBS = -lsqlite3 -lm -lcrypt -lpthread -ldl
然后进行交叉编译,成功了!
编译出来的可执行文件比较大,因为事静态编译的,我的有2M多,
拷贝到开发板的andriod系统中,
修改权限:
#chmod 777 xlisten-arm
执行:
/ # ./xlisten-arm
OK!能够正确的执行了!
⑥ andriod 源码编译时,如何添加一个可执行文件到文件系统中
是这样的
1.进入你的android系统源码的build/target/board/generic目录下
2.把你的abc拷贝到 这个目录下
3.编辑这个目录下的vi AndroidBoard.mk这个文件
4.添加 PRODUCT_COPY_FILES += $(LOCAL_PATH)/abc:system/bin/abc
这样在make源码的时候,就可以自动进行这次拷贝了
⑦ 安卓编译内核生成的是o文件吗,然后再打包进boot.img
.o是中间文件,.ko是内核模块
kernel是一个可执行的bzImage,简单来讲就是由.o链接生成的目标文件,不是像你说的那样n多.o
.ko可以编译进内核,也可以不编译进内核,作为插件的形式存在
安装内核的意思就是把内核到启动分区,然后安装内核模块,以及一些其他的东西。。
每次开机直接把内核装载到内存里面去不就行了吗,这也得先安装才行不是。
⑧ 如何把ecryptfs编译到内核中
下载内核源代码: git clone http://android.googlesource.com/kernel/goldfish.git
git branch -a 显示所有分支
选择分支:
git checkout -b android-goldfish3.4
git checkout remotes/origin/android-goldfish3.4
配置交叉编译环境:
工具包在 android源代码目录的 ./prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin,把它加进环境变量:
export PATH=$PATH:/xxxxxxx/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin
修改内核 主Makefile 文件:
ARCH ?= $(SUBARCH) 改为 ARCH ?= arm
下面的相应的改成 CROSS_COMPILE ?= arm-eabi-
make gold_armv7_defconfig 选择配置文件
[这里可以使用make menuconfig 配置内核, 如果缺少包需要
sudo apt-get install libncurses5-dev
对于配置eCryptfs,需要
security options --> Enable accesskey retention support
--> ENCRYPTED KEYS
filesystem --> Miscellaneous filesystem --> eCryptfs ...layer
]
最后 make
