首页 文章 精选 留言 我的

精选列表

搜索[三大系统],共10000篇文章
优秀的个人博客,低调大师

在tiny4412源码下编写全系统编译执行脚本

今天心血来潮,想把之前做的开发板环境配置以及编译的东西重新整理一下,毕竟最近在搞开发,所以有必要温故而知新。 以下是我整个Android-5.0的工程目录列表: 其中build_4412_img.sh、copyimage_to_window_system.sh是我自己写的快速编译拷贝脚本。 book@book-virtual-machine:/work/android-5.0.2$ ls abi build_4412_img.sh development gen-img.sh Makefile prebuilts tools art copyimage_to_window_sysetm.sh device hardware ndk rodev vendor bionic cts docs kernel out sdk bootable dalvik external libcore packages setenv build developers frameworks libnativehelper pdk system 首先来看看build_4412_img.sh这个脚本,脚本对应的代码如下: #build system IMG #build system img and copy img to window share #Y.X.YANG #date:2016.12.22 cd /work/android-5.0.2/kernel/ #首先切换到工程的kernel主目录 make -j4 #开始编译内核 echo $? if test $? -eq 0 #判断编译是否出错,出错直接退出,编译成功将生成的zImage拷贝至window共享目录 then echo "build 4412 kernel-img success!" cp /work/android-5.0.2/kernel/arch/arm/boot/zImage /mnt/hgfs/share/images/ else echo "build 4412 kernel-img fair!" exit 0 fi cd /work/android-5.0.2/ #kernel编译完成后接下来编译Android源码 . setenv #先设置编译环境,下面有setenv的源码 lunch full_tiny4412-eng #选择我们要编译的产品,我们这里选择4412的工程版本 make -j4 #编译 ./gen-img.sh #生成对应产品的img ./copyimage_to_window_sysetm.sh #将img拷贝到window共享目录 接下来这个就是setenv的源码: #!/bin/bash CPU_JOB_NUM=$(grep processor /proc/cpuinfo | awk '{field=$NF};END{print field+1}') # java OPENJDK7_DIR=/usr/lib/jvm/java-7-openjdk-amd64 java_version_str=`java -version 2>&1 | grep '^java .*[ "]1\.7[\. "$$]'` if [ "x$java_version_str" = "x" ]; then export PATH=${OPENJDK7_DIR}/bin:$PATH fi PRODUCT='full_tiny4412' #这里是对应的产品 source build/envsetup.sh #和大多数安卓编译的方式一样的,这里只是把souce build/envsetup.sh放到setenv这个脚本里面来了 TARGET_PRODUCT=$PRODUCT TARGET_SIMULATOR=false TARGET_BUILD_TYPE=release TARGET_BUILD_VARIANT=eng export PATH TARGET_PRODUCT TARGET_SIMULATOR TARGET_BUILD_TYPE TARGET_BUILD_VARIANT #这里是对应的外部环境变量引用 # settitle COMBO4FA=${TARGET_PRODUCT}-${TARGET_BUILD_VARIANT} #设置标题 export PROMPT_COMMAND="echo -ne \"\033]0;[${COMBO4FA}] ${USER}@${HOSTNAME}: ${PWD}\007\"" 接下来这个是gen-img.sh,作用是将生成在out目录下的img拷贝到源码的根目录下: #!/bin/bash OUTDIR=out/target/product/tiny4412 #这里就是out生成img的路径 AHOSTBIN=out/host/linux-x86/bin #选择对应的工具 # install vendor files #安装供应商文件 if [ -d vendor/friendly-arm/tiny4412/rootdir/system/ ]; then cp -af vendor/friendly-arm/tiny4412/rootdir/system/* ${OUTDIR}/system/ fi if [ -d vendor/friendly-arm/tiny4412/rootdir/data/ ]; then cp -af vendor/friendly-arm/tiny4412/rootdir/data/* ${OUTDIR}/data/ fi # make images #生成img LOPTS="-T -1 -S ${OUTDIR}/root/file_contexts" ${AHOSTBIN}/make_ext4fs -s ${LOPTS} -l 629145600 -a system system.img ${OUTDIR}/system # eMMC Size | UserData partition Size #------------------------------------------------ # 4G | 2149580800 (2G) 2050*1024*1024 # 8G | 4299161600 (4G) # 16G | 10747904000 (10G) 10250*1024*1024 #------------------------------------------------ ${AHOSTBIN}/make_ext4fs -s ${LOPTS} -l 2149580800 -a data userdata-4g.img ${OUTDIR}/data ${AHOSTBIN}/make_ext4fs -s ${LOPTS} -l 4299161600 -a data userdata-8g.img ${OUTDIR}/data ${AHOSTBIN}/make_ext4fs -s ${LOPTS} -l 10485760000 -a data userdata-16g.img ${OUTDIR}/data cp userdata-4g.img userdata.img #拷贝对应的img # ramdisk ${AHOSTBIN}/mkbootfs ${OUTDIR}/root | ${AHOSTBIN}/minigzip > ${OUTDIR}/ramdisk.img mkimage -A arm -O linux -T ramdisk -C none -a 0x40800000 -n "ramdisk" \ -d ${OUTDIR}/ramdisk.img ramdisk-u.img # minitools support #minitool 工具支持 MINITOOLS_PATH=/opt/MiniTools/tiny4412/images/Android5.0 if [ -d ${MINITOOLS_PATH} ]; then cp -f ramdisk-u.img ${MINITOOLS_PATH}/ cp -f system.img ${MINITOOLS_PATH}/ cp -f userdata*.img ${MINITOOLS_PATH}/ ls -l ${MINITOOLS_PATH}/ramdisk-u.img ls -l ${MINITOOLS_PATH}/system.img ls -l ${MINITOOLS_PATH}/userdata*.img fi 接下来这个是copyimage_to_window_system.sh,作用是将生成的img拷贝到window共享目录 sudo mv userdata-16g.img userdata-4g.img userdata-8g.img userdata.img system.img ramdisk-u.img /mnt/hgfs/share/images/ 往后的文章会介绍如何修改4412上的配置文件,会做成sdk修改记录,欢迎大家有空来学习。

优秀的个人博客,低调大师

【运维必读】在云计算时代,这是系统运维都需要的产品!

云计算时代到来了,大家都习惯了通过在线购买服务器或数据库的方式来构建公司的整个互联网服务或者IT服务,大家很轻松的便通过云计算服务商的控制面板,很容易的就获得了最终服务器的访问权,可以很容易的对虚拟服务器,数据库等计算节点方便的操作。 但是这往往也隐藏着很多管理上的危险,即公司中每个人可能都是通过互联网在管理服务器的,作为管理者的你可能并不知道管理员是来自哪里,是不是真的是公司的成员。其次,每个人到底在服务器上做了什么操作,哪些操作可能是危险操作,包括是否有人可能正将服务器中的重要数据向外搬运,你也不知道。 这个时候,碉堡云这款产品就是每一个使用云计算公司所必须的产品了。 首先,这一款Saas化的产品,其设计和传统的软件相比,最大的特点就是简单易用。但简单易用并不意味着功能弱。实际上这是一款非常强大的软件。碉堡云可以支持Linux,Windows及Mysql的操作审计,远程监控等功能,你无须特别的管理工具,仍然可以通过对应的软件客户端来操作服务器或数据库如SSHClient或Mysql的各种客户端,同时针对数据库,还有特别强大的误操作阻断功能。比如当DBA在连接到数据库执行一个删除命令的时候,忘记加上了判断条件,如“Delete from User”,一个回车下去,数据就没有了,相信不少人有这样惨痛的经历,但是使用碉堡云就不会了,碉堡云会主动Block相应的命令,使得误操作无法直接执行。 大家可能对碉堡云本身的安全还有疑惑,实际上碉堡云的执行核心是直接安装到你自己的一台服务器上的,而只需要该服务器可以连接到碉堡云的中心云中就可以实现对一个网段下的服务器或数据库的管理,这是非常安全的,也就意味着碉堡云本身也无法连接到需要管理的机器。 以阿里云的VPC部署举例,在一个vpc下的ECS和RDS都可以不开放外网IP,或者拥有外网IP的服务器不需要开放任何管理的监听端口。然后找一台具有互联网访问的服务器安装成为该VPC下的堡垒机(同样不用开放端口),然后通过扫描或者手动添加的方式,就可以通过碉堡云来管理这个网络下的所有对象了。同时可以将不同的对象分配给公司中的其他成员,他们就可以通过碉堡云的管理界面来管理了,非常方便。 如果是数据库对象,可以将生产的连接在代码中配置为直接连接到数据库,而DBA们则要求通过碉堡云来管理数据库,这样危险的SQL操作就会在DBA的日常操作中被阻挡,而DBA们执行危险的操作则可以在碉堡云上发起SQL申请,才可以最终执行诸如删除,数据更新等命令,保证了安全。 所有的在碉堡云上的操作都会被记录下来,每个成员都可以快速查询其自身对象下的所有操作记录,而管理员还可以查看所有的人的操作记录。设想一下,当一个重要文件被删除的时候,只需要查询一下当时谁执行了“rm”操作就可以知道是谁闯的货。 另外,我们经常还会遇到个别问题公司内部解决不了,需要远程专家帮忙看一看的情况,利用碉堡云可以像网盘的文件外链一样发送一个临时连接给到外部的人员,他无须知道服务器的密码就可以操作服务器,同时作为发起者的你还可监控对方的一举一动,如果有任何危险的行为,都可以直接中断对方的操作。 最后,还有一个很强大的功能,也是驻云实际在使用的功能,就是可以把一组网络共享给碉堡云中的其他组织,让他们帮助你进行管理。有了这个你还有什么担心把云上服务器的运维工作交给信任的第三方呢?第三方所有的一举一动都可以被审计,同时大家在操作失误或管理上的问题也可以有据可查。 看了这些内容,你是不是觉得碉堡云是你的企业现在正需要的一个产品呢?重要的事情还没说,这就是这么强大的一款产品,要不要收费呢?碉堡云对于一个管理网络是免费的,而如果你的网络非常复杂的话,也只需要收取很少的费用,作为一个公共云服务,碉堡云是驻云公司为了提升云时代用户体验的一款福利性的产品。所以,如果你是你们公司负责运维的老大,赶紧试试吧。 好啦 ~ ~ ~ 本文到这里也就结束啦 ~ 如果还希望了解更多相关知识的话,就赶紧订阅我们吧~每天新鲜干货送上呦 ~

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册