[原创]Nexus5 移植OneStep
OneStep 简介 https://github.com/SmartisanTech/android
One Step 涉及的工程列表:
- frameworks_base (需要更改WindowManager) https://github.com/SmartisanTech/android_frameworks_base
- frameworks_native (需要更改input, 响应调整window后touch事件)https://github.com/SmartisanTech/android_frameworks_native
- packages_apps_OneStep(OneStep UI层) https://github.com/SmartisanTech/packages_apps_OneStep
- build(加入smartisanos框架编译以及OneStep应用) https://github.com/SmartisanTech/android_build
- external_sepolicy (为新引入的OneStepService设置权限)https://github.com/SmartisanTech/android_external_sepolicy
- frameworks_smatisanos_base (smartisanos 框架层) https://github.com/SmartisanTech/android_frameworks_smartisanos-base
由于自己已经下载过android的全套源码,移植时采取部分更新的方式进行,具体就是只替换git上 6-7月份之间更新的代码,这部分是onestep改动的地方,其他部分的代码原封不动
替换完直接进行编译,主要遇到只有两个的问题:
1、
搜索build目录下,发现build/core/tasks/check_boot_jars/check_boot_jars.py脚本里CheckJar函数会打印上面的提示
参考https://zhidao.baidu.com/question/1387700248427899620.html,检查移植过程,发现package_whitelist.txt 忘记替换了。
问题2:
报错部分位于:
查找代码,
发现只是实现和调用没有同步更新
新的实现:
移值完成后
2017-8-21
近日,重新编译源码,发现突然编译不过去了
make: *** [out/target/common/obj/JAVA_LIBRARIES/colorpicker_intermediates/src/R.stamp] 已放弃 (core dumped)
Warning: AndroidManifest.xml already defines versionCode (in http://schemas.android.com/apk/res/android); using existing value in manifest.
Warning: AndroidManifest.xml already defines versionName (in http://schemas.android.com/apk/res/android); using existing value in manifest.
Warning: AndroidManifest.xml already defines minSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.
Warning: AndroidManifest.xml already defines targetSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.
A/Vector (): [0x7fffcdef3190] itemLocation: index=, capacity=, count=
build/core/static_java_library.mk:: recipe for target 'out/target/common/obj/JAVA_LIBRARIES/android-opt-datetimepicker_intermediates/src/R.stamp' failed
make: *** [out/target/common/obj/JAVA_LIBRARIES/android-opt-datetimepicker_intermediates/src/R.stamp] 已放弃 (core dumped)
注: 某些输入文件使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
Warning: AndroidManifest.xml already defines versionCode (in http://schemas.android.com/apk/res/android); using existing value in manifest.
Warning: AndroidManifest.xml already defines versionName (in http://schemas.android.com/apk/res/android); using existing value in manifest.
Warning: AndroidManifest.xml already defines minSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.
Warning: AndroidManifest.xml already defines targetSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.
A/Vector (): [0x7ffdcbd4e6f0] itemLocation: index=, capacity=, count=
build/core/static_java_library.mk:: recipe for target 'out/target/common/obj/JAVA_LIBRARIES/android-opt-timezonepicker_intermediates/src/R.stamp' failed
make: *** [out/target/common/obj/JAVA_LIBRARIES/android-opt-timezonepicker_intermediates/src/R.stamp] 已放弃 (core dumped)
网上说法一堆, 很多是资源文件没按照规则写导致的,没法解决根本问题
可以看到不合理的地方在已经指定了TARGET_DEVICE 为hammerhead, 为什么编译时变成了common
No private recovery resources for TARGET_DEVICE hammerhead
target R.java/Manifest.java: BasicDreams (out/target/common/obj/APPS/BasicDreams_intermediates/src/R.stamp)
A/Vector (): [0x7fffc3077110] itemLocation: index=, capacity=, count=
build/core/package_internal.mk:: recipe for target 'out/target/common
$(R_file_stamp): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_stamp) $(AAPT) | $(ACP)
@echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)"
@rm -f $@
@echo "sain begin"
$(create-resource-java-files)
@echo "sain end"
$(hide) for GENERATED_MANIFEST_FILE in `find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) \
-name Manifest.java > /dev/null`; do \
dir=`awk '/package/{gsub(/\./,"/",$$2);gsub(/;/,"",$$2);print $$2;exit}' $$GENERATED_MANIFEST_FILE`; \
mkdir -p $(TARGET_COMMON_OUT_ROOT)/R/$$dir; \
$(ACP) -fp $$GENERATED_MANIFEST_FILE $(TARGET_COMMON_OUT_ROOT)/R/$$dir; \
done;
$(hide) for GENERATED_R_FILE in `find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) \
-name R.java > /dev/null`; do \
dir=`awk '/package/{gsub(/\./,"/",$$2);gsub(/;/,"",$$2);print $$2;exit}' $$GENERATED_R_FILE`; \
mkdir -p $(TARGET_COMMON_OUT_ROOT)/R/$$dir; \
$(ACP) -fp $$GENERATED_R_FILE $(TARGET_COMMON_OUT_ROOT)/R/$$dir \
|| exit ; \
$(ACP) -fp $$GENERATED_R_FILE $@ || exit ; \
done; \
报错变成
target R.java/Manifest.java: BasicDreams (out/target/common/obj/APPS/BasicDreams_intermediates/src/R.stamp)
sain begin
A/Vector (): [0x7ffc1042cd80] itemLocation: index=, capacity=, count=
build/core/package_internal.mk:: recipe for target 'out/target/common/obj/APPS/BasicDreams_intermediates/src/R.stamp' failed
make: *** [out/target/common/obj/APPS/BasicDreams_intermediates/src/R.stamp] 已放弃 #### make failed to build some targets ( seconds) ####
可见 问题出在 $(create-resource-java-files)
这个问题最后也没有解决, 删除所有的apps和 framework,重新repo sync也不行(2018年03月11日)
但自己在package新建的app就可以编译通过, 是不是support包导致的呢, 在ide中曾经也碰到过这种问题
[原创]Nexus5 移植OneStep的更多相关文章
- [原创]Nexus5 内核编译烧录过程记录
参考Android系统源代码情况分析第二章进行实践,为了提高效率,也为了增加实践机会,使用Nexus5进行内核编译.需要说明的是,Android源代码工程默认是不包含它所使用的Linux内核源码,如果 ...
- [原创]Nexus5 源码下载、编译、真机烧录过程记录
asop使用清华镜像源https://mirror.tuna.tsinghua.edu.cn/help/AOSP/ 一开始使用每月初始化包的方式因为无法搞定版本的问题,没能通过编译,无奈,老老实实一点 ...
- (原创)AP6212移植到AM335X自主开发板上
转载请指明出处. 参考<关于AM335X移植SDIO WIFI的简易教程> http://www.deyisupport.com/question_answer/dsp_arm/sitar ...
- 【原创】车载实时路况信息接收终端移植于Smart210开发板 --- 综合教程
[原创]车载实时路况信息接收终端移植于Smart210开发板 --- 综合教程 所用工具: windows电脑 Ubuntu12.04 Smart210开发板 4g以上SD卡 U盘 步骤: 1. ...
- 2--STM32+USB移植+HID 与AUDIO类MIDI设备组成的复合设备(原创)
前期准备: 一.硬件资源:STM32F103,USB-FS固件库. 链接: STM32 之 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序) https://blog.csdn. ...
- 在STM32F401上移植uC/OS的一个小问题 [原创]
STM32F401xx是意法半导体新推出的Cortex-M4内核的MCU,相较于已经非常流行的STM32F407xx和STM32F427xx等相同内核的MCU而言,其特点是功耗仅为128uA/MHz, ...
- [原创]移远RM500U-CN模组驱动移植
1. 简介 中国广电正式放号了,为了支持广电700MHz的5G基站,需要换用新的5G模组.移远通信的RM500U模组正好可以满足我们的使用要求; 我们选用该模组的原因:双卡单待 支持SIM卡热插拔 支 ...
- NXP NFC移植及学习笔记(原创)
NFC功能介绍 NFC 目前使用的三种功能: 1. P2P模式:基于LLCP协议的基础上,以NDEF数据交换格式来通信. 2. 读写模式:当作为读卡器,对NFC Tag的读写. 3. 卡模拟模式:模块 ...
- 移植u-boot-1.1.6(原创)
#u-boot:u-boot-1.1.6#server:ubuntu 12.04#gcc: arm-linux-gcc -4.3.2# 一.建立单板1> /board/smdk2410 : cp ...
随机推荐
- 【windows】使用键盘代替鼠标的快捷键
键盘代替鼠标右键 使用上述键可以代替右键
- windowsclient开发--怎样測量一个字符串显示的物理长度
首先须要说明的是,我所说的字符串的长度,不是string的length,也不是string的size.我指的是显示的长度.即物理长度. 缘由: 之所以要提到这个.是由于遇到了一些问题. 再使用duil ...
- JBoss环境搭建及部署Web项目
http://blog.csdn.net/pop303/article/details/7210290 赶在年前学习了一下JBOSS,之前觉得JBOSS相关资料会有很多,不过现在发现很少,在亚马逊出也 ...
- 【转】打造自己的视频会议系统 GGMeeting(附送源码)
原文地址:http://www.cnblogs.com/justnow/p/4487201.html 自从在博客园发布开源即时通信系统GG(QQ高仿版)以来,结识了很多做IM的朋友,然后我和我的伙伴们 ...
- java 虚函数
猜猜这里的代码输出的结果是多少? package test; public class ConstructorExample { static class Foo { int i; Foo() { i ...
- Java服务CPU占用高问题定位方法
1. 概述 提供一种简单的方法来定位CPU高的问题. 找到CPU高的进程,比如232543: 执行top -H -p pid,找到占用CPU最高的线程号,比如232544,转换成16进制38c60: ...
- windows编译tensorflow c++库
1. 准备 windows 10系统.3.6GHz cpu.16G 内存 visual studio 2017 or 2015 下载安装git 下载安装cmake 下载安装swigwin 如果不需要p ...
- 快速解读GC日志
本文是 Plumbr 发行的 Java垃圾收集指南 的部分内容.文中将介绍GC日志的输出格式, 以及如何解读GC日志, 从中提取有用的信息.我们通过 -XX:+UseSerialGC 选项,指定JVM ...
- asp.net出现的异常:"由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值" 的解决方法
引用: https://support.microsoft.com/zh-cn/kb/312629 症状 如果您使用的Response.End. Response.Redirect或Server.Tr ...
- 用docker搭建测试环境--docker的基本操作
上一篇文章中最后执行了docker pull centos的指令,经过一段时间的等待,会从hub.docker.com上下载docker官方最新的centos的images,接下来熟悉一下docker ...