Flymeos插桩适配教程
插桩适配前提,安装Ubuntu或者其他linux系统。
安装JDK7
sudo apt-get install openjdk--jdk
Ubuntu 16.04与基于它的版本,需要添加源
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk--jdk
安装git、repo
sudo apt-get install repo git
新建bin目录,保存repo
mkdir ~/bin
指定repo路径
PATH=~/bin:$PATH
下载repo
curl https://github.com/FlymeOS/repo > ~/bin/repo
设置repo权限
chmod a+x ~/bin/repo
新建源码目录flymeos
mkdir -p ~/flymeos
cd 进入源码目录
cd ~/flymeos
通过repo init命令的-b参数, 选择需要下载的分支。 通过repo sync命令同步远程代码:
repo init -u https://github.com/FlymeOS/manifest.git -b lollipop-5.1 --no-repo-verify
repo sync --no-clone-bundle -c -j4
如果连接一直失败或下载代码过慢,则使用以下命令:
repo init --repo-url git://github.com/FlymeOS/repo.git \
-u https://github.com/FlymeOS/manifest.git \
-b lollipop-5.1 --no-repo-verify
repo sync --no-clone-bundle -c -j4
下载完代码以后, 在开源项目根目录, 执行以下命令初始化开发环境:
source build/envsetup.sh
创建一个新的机型工程的目录(以demo为例), 后续的移植都在机型目录完成。
mkdir -p devices/demo
cd devices/demo
按照如下步骤,完成一个新机型的适配:
flyme config # 生成机型配置文件Makefile
flyme newproject # 生成新机型目录
flyme patchall # 自动插桩
flyme fullota # 生成适配完成的ROM包
* 冲突处理
自动插桩可能会造成代码合并冲突。冲突会以下面的形式标注出来, 开发者需要在厂商的文件中手工解决这些冲突。
<<<<<<< VENDOR
原厂的代码块
=======
Flyme的代码块
>>>>>>> BOSP
解决原理:对、定、调
* 版本升级
可以跟随官方发布的最新ROM包,将已经是适配完成的机型升级到最新版本:
升级参考:http://www.cnblogs.com/dinphy/p/5655851.html
Flymeos插桩适配教程的更多相关文章
- 红米3 Flyme5.1.9.5插桩适配长期不定时更新
ROM介绍: 2016.9.5更新日志: 1,更新源码到0905 2.修复bug若干. 2016.8.29更新日志: 1,更新源码到0829 2.修复bug若干. 2016.8.22更新日志: 1,更 ...
- 插桩 inline hook 动态二进制插桩的原理和基本实现过程
插桩测试 https://source.android.google.cn/compatibility/tests/development/instrumentation https://zhuanl ...
- zorka源码解读之通过beanshell进行插桩的流程
zorka中插桩流程概述 1.在SpyDefinition中配置插桩属性,将SpyDefinition实例提交给插桩引擎.2.SpyDefinition实例中包含了插桩探针probes,probe插入 ...
- 关于smali插桩
虽说是老生常谈的东西了,稍微记录一下. 我觉得最重要的就是寄存器的问题了,如果需要额外的寄存器,要在smali函数的最前面将寄存器数量增加到需要的数量. 在smali代码中,寄存器有两种表示方式,一种 ...
- Javassist进行方法插桩
javassist官网 http://jboss-javassist.github.io/javassist/ javassist API网 http://jboss-javassist.github ...
- Javsssist用InsertAt()方法对语句插桩
基于上一篇的方法插桩,这一篇则是进一步的对每行的语句进行插桩. 对于存在分支的方法(例如if(){}else{}),对方法插桩的方法是不能够全部涉及到的.所以要对程序的每条语句进行插桩. 插入什么语句 ...
- Java Instrumentation插桩技术学习
Instrumentation基础 openrasp中用到了Instrumentation技术,它的最大作用,就是类的动态改变和操作. 使用Instrumentation实际上也可以可以开发一个代理来 ...
- LLVM程序分析日记之插桩BranchInst
1. splitblockandinsertifthenelse() 一个代码例子:StackOverflow 2. SplitBlockAndInsertIfThen() 或者仅仅想插桩if the ...
- 手淘架构组最新实践 | iOS基于静态库插桩的⼆进制重排启动优化 抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 编译期插桩
抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 原创 Leo 字节跳动技术团队 2019-08-09 https://mp.weixin.qq.com/s/Drmmx5JtjG ...
随机推荐
- 使用 UICollectionView 实现日历签到功能
概述 在 App 中,日历通常与签到功能结合使用.是提高用户活跃度的一种方式,同时,签到数据中蕴含了丰富的极其有价值的信息.下面我们就来看看如何在 App 中实现日历签到功能. 效果图 ..... 思 ...
- MVC学习系列3--怎么从控制器向视图传递数据
在MVC中,从控制器到视图,传递数据,可以使用 ViewData 和 ViewBag:同样从视图到控制器,传递数据,可以使用Post,QueryString,或者隐藏域:最后从控制器到控制器,传递数据 ...
- SE_homework1(第一部分)
题目:写一个能自动生成小学四则运算题目的命令行"软件",分别满足下列各种需求.下面这些需求都可以用命令行参数的形式来指定: a.)除了整数以外,还支持真分数的运算.(例如1 ...
- SQL Server中的“最大并行度”的配置建议
SQL Server中的最大并行度(max degree of parallelism)如何设置呢? 设置max degree of parallelism有什么好的建议和指导方针呢?在微软官方文档R ...
- SQL Server 关于列的权限控制
在SQL SERVER中列权限(Column Permissions)其实真没有什么好说的,但是好多人对这个都不甚了解,已经被人问了几次了,所以还是在这里介绍一下,很多人都会问,我能否单独对表的某列授 ...
- [AlwaysOn Availability Groups]DMV和系统目录视图
DMV和系统目录视图 这里主要介绍AlwaysON的动态管理视图,可以用来监控和排查你的AG. 在AlwaysOn Dashboard,你可以简单的配置的GUI显示很多可用副本的DMV和可用数据库通过 ...
- 【转】JVM运行原理及JVM中的Stack和Heap的实现过程
来自: http://blog.csdn.net//u011067360/article/details/46047521 Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’( ...
- localhost与127.0.0.1的区别
localhost与127.0.0.1的区别是什么 定义 localhost也叫local ,正确的解释是:本地服务 127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器) 不同 ...
- C++中的也能使用正则表达式
正则表达式Regex(regular expression)是一种强大的描述字符序列的工具.在许多语言中都存在着正则表达式,C++11中也将正则表达式纳入了新标准的一部分,不仅如此,它还支持了6种不同 ...
- 帆软报表FineReport SQLServer数据库连接失败常见解决方案
1. 问题描述 帆软报表FineReport客户端连接SQLServer(2000.2005等),常常会出现如下错误:com.microsoft.sqlserver.jdbc.SQLServerExc ...