如何向AOSP提交补丁程序
如何向AOSP提交代码
前几天论坛里有一个兄弟说使用libufdt拆解dt镜像失败了,怎么办?于是我马上复现了这个问题。当我修改完后能工作,准备提交到谷歌主线却蒙住了,怎么发送提交?
为什么错误了?
于是我马上看了看代码,发现对象已经在def __init__(self,**kwargs)
方法(def)进行了属性(孔子)绑定,之后 调用类(class) /创建对象 不需要传入参数。
顺便在这里普及一个面向对象编程知识
1
2
3
4
5
6
7
8
9
# 类(class)↓
class Game():
# 构造__init__方法(def),也就是构造函数↓
def __init__(self,**kwargs):
# 已有属性绑定到self.__name上↓
self.__name = kwargs['孔子']
# 方法(def)↓
def play(self):
print("%s,我们来打CSGO!!!",%self.__name)
先引用类(class) /创建对象,再引用方法(def)/实例化对象。
1
2
3
4
5
6
# 引用类(class) //创建对象()
p = Game()
# 引用方法(def) //实例化对象,对象的参数已经在init
p.play()
$: 孔子,我们来打CSGO!!!
又或者在def kick(self)
上一行加入@classmethod
后,
1
2
3
@classmethod
def kick(self)
print("%s,我们来打CSGO!!!",%self.name)
直接引用方法/实例化对象也可达到效果
1
2
3
p.play()
$: 孔子,我们来打CSGO!!!
好像写偏了,我继续回到拆解镜像出现错误的地方。
谷歌近日的提交
Author: Luca Stefani luca.stefani.ge1@gmail.com Date: Wed Aug 5 16:30:43 2020 +0200
mkdtboimg: Add support to V0 DTBO image creation
- The current script tries to support both V0 and V1 but fails at supporting V0 completely
Test: Create V0 and V1 dtbo images, boot them Change-Id: I1e97f32b6cf7401f411bddf649e1dde4b34a81f1
1
2
3
4
5
6
7
@@ -83,7 +87,14 @@ class DtEntry(object):
def __init__(self, **kwargs):
- missing_keys = set(self.REQUIRED_KEYS) - set(kwargs)
+ self.__version = kwargs['version']
//....
- def compression_info(self, version):
+ def compression_info(self):
我就这样改了
1
2
- compression_format = self.dt_entries[idx].compression_info(self.version)
+ compression_format = self.dt_entries[idx].compression_info()
如何提交补丁程序到谷歌
首先我们需要了解git知识,。
1
git clone https://android.googlesource.com/platform/system/libufdt
当你修改完文件之后,git检测到文件在暂存区被修改,使用git add (-A) 加入(所有)文件到工作区,git commit提交文件到工作区,提交工作区前要写入这次的修改信息。
1
2
git add -A
git commit -s
查看修改情况
1
git log
终端会输出以下内容
1
2
3
4
5
6
7
commit 2d80e2189c2f3dbba505f36c6bb0b11d334a9dd4 (HEAD -> master)
Author: Gah0 <woshishacha3@gmail.com>
Date: Thu Aug 20 08:05:02 2020 +0800
mkdtboimg: fix extra 1 argument on compression_info()
when dump a image will happen compression_info() takes exactly 1 argument (2 given)
这个时候提交还在本地,我们用git push origin提交master分支到Gerrit
1
$ git push origin master:refs/for/master # 提交到一个新的 gerrit 上面
提交不进去的话,没关系,请接着看!
配置 Gerrit 登录密钥
进入 AndroidOpen Source Project 点击右上角 sign in,登陆 google 账户。
登陆好账户之后,设置一下名字setting
然后设置Obtain password,允许一下git使用权限。
再次使用git push即可。
待会就会有相关Reviewers来看你的代码了,changes里还有很多提交呢,Reviewer也忙不过来,他们会按照时间顺序排列查看的。
Reviewers通过后就进入主线了。