登录
立即注册
首页
>
绿虎论坛
>
历史版块
>
手机
>
安卓
我们到底能对安卓做何种程度的修改?
幻阳化翼
@Ta
2013-08-05
4872点击
众所周知,安卓虽然打着开源的旗帜,但为了商业化,做的事却不足为人道。
至今我也没看到安卓的源码。
我们对安卓的定制能从源码级定制吗?
还是只能像众多厂商一样只能定制前台部分?
求告知!
@
老虎会游泳
隐藏样式
查看源码
回复列表(11|
隐藏机器人聊天
)
1
Vans
@Ta
/ 2013-08-05 /
样
/
源
小心谷歌有后台,流量监控有时会监控到名为“系统组件”的在跑流量,而且是几十K的跑
2
刘付杰
@Ta
/ 2013-08-05 /
样
/
源
不知道
3
老虎会游泳
@Ta
/ 2013-08-05 /
样
/
源
@
幻阳化翼
,安卓的所有部分都是由Apache许可证、BSD许可证、FreeBSD许可证、Mit许可证等开放源代码协议授权公开发行的。
安卓整个项目通过Git管理,托管在谷歌自己的网站上,任何人都可以去git clone。
不过由于完整的项目被分成了好几个部分存储在不同版本库,所以安卓开发者做了个叫repo的工具来管理安卓的源代码。
repo是一个用perl脚本写的基于Git的安卓源代码管理工具,一般我们在Linux上运行。
接下来我们去看看怎样用repo下载安卓源代码。
4
老虎会游泳
@Ta
/ 2013-08-05 /
样
/
源
http://source.android.com/source/initializing.html
repo和安卓编译环境的安装
http://source.android.com/source/downloading.html
下载源代码
接下来还有三篇:
Building and Running(编译和运行)
Building for Devices(为安卓设备编译)
Building Kernels(编译内核)
Linux内核是基于GPL的,所以任何人都无法阻止它的开放源代码。
安卓系统定制的第一步:编写适合特定硬件的内核驱动,然后编译进内核,并对内核功能进行微调。
安卓系统的编译过程相对漫长,因为要编译一个内核,一些二进制(比如adbd、sh等),和一堆apk。
编译apk的javac总是慢吞吞的。
5
老虎会游泳
@Ta
/ 2013-08-05 /
样
/
源
与GPL不同,Apache许、BSD、FreeBSD、Mit等许可证不是强制性的,它们允许开发者在发布修改过的软件时,不公开软件的源代码。
但是使用Apache许可证的Apache服务器依然是一个活跃的开放源代码项目。
为什么有人因为安卓使用Apache许可证而对它另眼相看,但是他们却没有对Apache另眼相看呢?
使用什么许可证发布自己的作品是作者的自由,我们应该给予尊重。
6
幻阳化翼
@Ta
/ 2013-08-05 /
样
/
源
@
老虎会游泳
,嗯,明白了
8
幻阳化翼
@Ta
/ 2013-08-05 /
样
/
源
@
老虎会游泳
,我们唯一看不到源码的就只是硬件厂商定制的硬件驱动吗?
9
老虎会游泳
@Ta
/ 2013-08-05 /
样
/
源
@
幻阳化翼
,可以这么说。
就连厂商写的apk看源代码也很容易,dex2jar,然后反编译jar。
不过其实厂商写的内核驱动本来是应该开放源代码的,这是GPL的规定。
大部分厂商都违反了GPL,在发布安卓手机的同时没有提供其Linux内核的源代码。
10
幻阳化翼
@Ta
/ 2013-08-05 /
样
/
源
@
老虎会游泳
,如果厂商提供了内核源代码,我们就能完全定制自己的手机系统吗?
11
老虎会游泳
@Ta
/ 2013-08-05 /
样
/
源
@
幻阳化翼
,如果你有内核源代码,并且可以刷机,那么你就有了完全重新实现系统的可能。
当然还只是可能,因为安卓有一个硬件抽象层,允许部分硬件驱动运行在内核之外,并且不开放源代码。
然而即便如此,有了内核源代码,我们也可以试试对没有安卓4.0的手机编译安卓4.0,大不了复制那些“运行在内核外的驱动”过来。
12
幻阳化翼
@Ta
/ 2013-08-05 /
样
/
源
@
老虎会游泳
,噢,谢谢哈,基本明白了!
添加新回复
回复需要
登录
。
安卓整个项目通过Git管理,托管在谷歌自己的网站上,任何人都可以去git clone。
不过由于完整的项目被分成了好几个部分存储在不同版本库,所以安卓开发者做了个叫repo的工具来管理安卓的源代码。
repo是一个用perl脚本写的基于Git的安卓源代码管理工具,一般我们在Linux上运行。
接下来我们去看看怎样用repo下载安卓源代码。
http://source.android.com/source/downloading.html下载源代码
接下来还有三篇:
Building and Running(编译和运行)
Building for Devices(为安卓设备编译)
Building Kernels(编译内核)
Linux内核是基于GPL的,所以任何人都无法阻止它的开放源代码。
安卓系统定制的第一步:编写适合特定硬件的内核驱动,然后编译进内核,并对内核功能进行微调。
安卓系统的编译过程相对漫长,因为要编译一个内核,一些二进制(比如adbd、sh等),和一堆apk。
编译apk的javac总是慢吞吞的。
但是使用Apache许可证的Apache服务器依然是一个活跃的开放源代码项目。
为什么有人因为安卓使用Apache许可证而对它另眼相看,但是他们却没有对Apache另眼相看呢?
使用什么许可证发布自己的作品是作者的自由,我们应该给予尊重。
就连厂商写的apk看源代码也很容易,dex2jar,然后反编译jar。
不过其实厂商写的内核驱动本来是应该开放源代码的,这是GPL的规定。
大部分厂商都违反了GPL,在发布安卓手机的同时没有提供其Linux内核的源代码。
当然还只是可能,因为安卓有一个硬件抽象层,允许部分硬件驱动运行在内核之外,并且不开放源代码。
然而即便如此,有了内核源代码,我们也可以试试对没有安卓4.0的手机编译安卓4.0,大不了复制那些“运行在内核外的驱动”过来。