在Ubuntu下面解压缩分卷的Android系统源代码并编译
title: 在Ubuntu下面解压缩分卷的Android系统源代码并编译
date: 2020-02-29 21:10:11
tags:
-
android
-
zip压缩分卷
-
系统源代码
在Ubuntu下面解压缩分卷的Android系统源代码
最近在翻阅Android系统底层代码,本来打算解压缩到一个ntfs分区,遇到了一些问题,特意记录下来,防止再次犯错
1.解压缩分卷
我拿到手里的代码是一个高通8909的系统代码,而且我有对应的硬件,所以研究这个代码,我可以刷机,测试各种我对系统的修改。自然看这份代码比直接查看google的官方代码更有好处。
但是当我拿到这份代码的时候,在linux下面却无法打开,主要的原因是这个压缩包有29G之多,为了方便网络传输,特意被打包分卷上传到了百度云,我下载之后拿到手里的是差不多31个单独的分卷文件。
在linux下面,我解压的时候直接提示错误,提示的问题是不识别这个文件是zip文件。
百度一番之后发现是因为分卷之后每个卷的数据被拆分了,单独解压每一个卷是不行的,必须下把分卷合并起来。合并的命令也很简单,cat命令。
每个卷的名字大概的样子是androidcode.zip.001 .......androidcode.zip.031这样的一个文件序列,果断使用通配符进行合并
cat androidcode.zip.* > androidcode.zip
#先安装openjdk,安装jdk8就可以了,其他版本最好不要使用 sudo apt-get install openjdk-8-jdk #下面是安装编译所必须的库,这些库是有些名字可能有写出入,主要是开发库版本可能有变 sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev git flex bison gperf build-essential libncurses5-dev:i386 tofrodos python-markdown xsltproc zlib1g-dev:i386 dpkg-dev libsdl1.2-dev libesd0-dev zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev libxml2-utils unzip m4
#进入Android源代码目录,然后开始我们的编译过程 source build/envsetup.sh lunch msm8909-userdebug make -j8
ninja: build stopped: subcommand failed ninja failed with: exit status 1
export LC_ALL=C
目前来看编译的问题不多,主要是一些前期准备工作太多坑。
经过一个多小时的编译,顺利完成。
看到这个问题,我也是百度google了一大圈,依然有问题,最后发现只要执行一下下面的命令就可以解决问题了,LC_ALL=C 是为了去除所有本地化的设置,让命令能正确执行。
刚编译没超过5分钟,立刻出现问题了
3.编译系统源代码前的准备工作
经过查找,发现,还真的有,只不过我编译用的分区是使用的Windows的NTFS分区,因为这个机器是一开始配置的Win10系统,但是对我来说完全没用,我就干掉了Win10系统盘,在SSD上面安装了Ubuntu,但是这个机器的普通硬盘还有两个分区,当时懒得管反正linux也能用,就再也没进行分区。我们知道Windows是不区分大小写的,但是Ext4分区是区分大小写的。这就导致了我们在解压缩文件的时候,同一个文件夹下面有大小写不同的两个文件,可是解压到NTFS分区的时候就变成同一个文件了,提示覆盖。问题原因找到了,那就动手把里面的数据复制到另外的磁盘,格式化分区为EXT4,然后再次解压缩,完美!!!
当解压缩的时候,又出现了新的问题,在解压缩的时候提示文件重名,是否覆盖?可是我这代码里面怎么可能有同名的文件呢?
2.解压缩源代码的问题
经过几分钟的等待,这个文件合并完成,我们拿到了androidcode.zip,这回直接可以使用unzip解压缩了。
本文地址:https://blog.csdn.net/SunZhanwei/article/details/110235221
上一篇: 两数之和