万万没有想到再次编译aosp已经是半年以后了,未完的工作总是要继续进行的。

aosp不是通过repo下载的,而是在百度网盘里面找了网友的分享下载的。然后编译的方法直接挂个vpn到谷歌的官网上去看需要什么条件,对着来即可。用同事的4核E5310,4G内存的机器,编译了大概十小时的样子,终于是编译出来了,也是醉了。看了ccahe里面存了大概8个G不到的缓存,所以编译的时间会这么久了。

板子是同事的TQ335x,原先就有android4.0的镜像,可以烧进去直接启动。而自己希望的,可以把android5.1移植上去。

试试看吧。

汇报一下进展,kernel直接从linaro下载的支持android5.1的内核,结果万万没有想到mtd驱动有点问题,各种根文件系统都启动失败。无奈尝试nfs也不是很顺利,各种权限问题。

然后今天用了ramdisk,又是各种 “RAMDISK: incomplete write (14434 != 32768)”,网上说的也都不是很对。然后自己配了配ramdisk_size终于起来了,虽然还有报错,因为没有搞清楚这个值就不乱说了。一句话,往大的填。

然后起来之后又出现了selinux的权限问题,最后查了内核的配置,发现selinux support policy没有配上去啊,我也是醉了。加上去之后,又出现了下面的情况:

SELinux:  policydb version 26 does not match my version range 15-19

谷歌之后貌似这个好解决,修改 external/sepolicy/Android.mk 里面的:POLICYVERS ?= 26

应该改小一些就可以了,不过又要重新编译aosp了……

selinux改完之后想不到又过了一周才把文件系统起来,进了console。用的还是NFS的文件系统。

不知道为什么selinux的权限总是导致root/sbin目录下的ueventd这些程序没有权限启动,错误大致如下:

init: cannot execve('ueventd'): Permission denied

解决方法也很简单粗暴,可能是我编译的user的release版本的原因,最后直接编了一个eng的debug版本,然后把selinux给关掉即可。

方法在aosp的官网上面有说了,在boot的cmdline加上 androidboot.selinux=disabled 即可。

目前已经可以进console了,那些基础组件应该都起来了。接下来要做的是内核启动的时候有/class/switch初始化出错,以及让屏幕亮起来。

最新更新,因为九月份被公司派去出差了一个多月,回来之后已经想不起之前的进度了,暂时又搁浅了……

android5.1 for tq335x的更多相关文章

  1. Android5.1.1 - APK签名校验分析和修改源码绕过签名校验

    Android5.1.1 - APK签名校验分析和修改源码绕过签名校验 作者:寻禹@阿里聚安全 APK签名校验分析 找到PackageParser类,该类在文件“frameworks/base/cor ...

  2. [实践] Android5.1.1源码 - 在Framework中添加自定义系统服务

    前言 本文的方法要修改Android源码.但只要将系统服务写出来,也可以注入system_server进程将系统服务加载到system_server中. 步骤 1. 添加一个aidl文件,我将aidl ...

  3. [实践] Android5.1.1源码 - 让某个APP以解释执行模式运行

    [实践] Android5.1.1源码 - 让某个APP以解释执行模式运行   作者:寻禹@阿里聚安全 前言 本文的实践修改了Android5.1.1的源码. 本文只简单的讲了一下原理.在“实践”一节 ...

  4. android5.0联系人 sort_key改成phonebook_label

    项目中用到了联系人根据字母排序,在android4.0手机上是可以的,但是在android4.4以上的手机排序是乱的,一般字母排序都是根据sort_key这个拼音进行排序,而android5.0这个字 ...

  5. ANdroid5.0不能隐式启动service,必须显示,解决办法,加服务端包名

    Intent intent = new Intent(); intent.setAction("com.viaembedded.veonvif.RemoteService");// ...

  6. 一个Activity掌握Android5.0新控件 (转)

    原文地址:http://blog.csdn.net/lavor_zl/article/details/51279386 谷歌在推出Android5.0的同时推出了一些新控件,Android5.0中最常 ...

  7. Ubuntu 下载 & 编译 Android5.1 源码

    ustc & tsinghua android srchttps://lug.ustc.edu.cn/wiki/mirrors/help/aosphttps://mirrors.tuna.ts ...

  8. Android的学习——ubuntu下android5.1源码的make编译

    在repo sync下载源码后,经历了漫长的时间,终于可以进行下一步了. 在进行make之前还需要三个步骤. 1> source build/envsetup.sh:加载命令          ...

  9. android5.x新特性之Tinting

    Android5.X对图形操作上有更多的功能.下面来看看Tinting(着色) Tinting的使用非常简单,几乎 没什么好说的,只要在xml中配置好tint和tintMode即可.直接看实际例子吧. ...

随机推荐

  1. 完整地mybatis + springmvc用checkbox实现批量删除

    因为自己在网上找了半天,都找不到完整地代码(脑袋笨,不会变通到自己项目里),所以在这里记下了近乎完整的代码 前端代码 <span style="cursor:pointer;" ...

  2. HDMI IP学习笔记

    在HDMI的IP核中点击,生成例子.找到./simulaion/mentor文件夹,把modelsim路径转到该路径下,即可仿真.

  3. DDR控制

    先看下micron公司对DDR3命名的规则: 在设置xilinx ISE中的DDR时 在选择芯片时,不清楚该怎么选择. 请教汤工,给出的答案是Speed等级高的可以兼容等级低的芯片,个在实验之中用的是 ...

  4. git 常用操作

    查看某文件的某些行的变化历史: $ git log --pretty=short -u -L 2003,2005:Executor.cpp http://stackoverflow.com/quest ...

  5. jquery获取所选元素的outerHTML

    大家都知道原生js可以获取匹配元素的内部html和外部html,内部是innerHTML,外部是outerHTML,原生js的dom对象是存在这两个属性的. 如果用jQuery如何获取匹配元素(包括自 ...

  6. JavaScript 对象的创建和对6种继承模式的理解和遐想

      JS中总共有六种继承模式,包括原型链.借用构造函数.组合继承.原型式继承寄生式继承和寄生组合式继承.为了便于理解记忆,我遐想了一个过程,对6中模式进行了简单的阐述. 很长的一个故事,姑且起个名字叫 ...

  7. hibernateTemplate中常用查询方法的使用(原文地址: http://dongruan00.iteye.com/blog/1772311)

    一.find(String queryString); 示例:this.getHibernateTemplate().find("from bean.User"); 返回所有Use ...

  8. Visual studio 生成事件的使用 、xcopy 实现 dll 复制操作、

    IF NOT "$(ConfigurationName)"=="publish" exit /B 0if not exist $(TargetPath)publ ...

  9. 我眼中的项目leader

    个人觉得项目leader应该具备一下基础: 1.技术能力 2.领导能力 3.过滤产品不合理需求能力 4.项目周期把控能力

  10. js数组方法push pop shift unshift的返回值

    push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. pop() 方法用于删除并返回数组的最后一个元素. unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度. s ...