在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

经过几分钟的等待,这个文件合并完成,我们拿到了androidcode.zip,这回直接可以使用unzip解压缩了。

2.解压缩源代码的问题

当解压缩的时候,又出现了新的问题,在解压缩的时候提示文件重名,是否覆盖?可是我这代码里面怎么可能有同名的文件呢?

经过查找,发现,还真的有,只不过我编译用的分区是使用的Windows的NTFS分区,因为这个机器是一开始配置的Win10系统,但是对我来说完全没用,我就干掉了Win10系统盘,在SSD上面安装了Ubuntu,但是这个机器的普通硬盘还有两个分区,当时懒得管反正linux也能用,就再也没进行分区。我们知道Windows是不区分大小写的,但是Ext4分区是区分大小写的。这就导致了我们在解压缩文件的时候,同一个文件夹下面有大小写不同的两个文件,可是解压到NTFS分区的时候就变成同一个文件了,提示覆盖。问题原因找到了,那就动手把里面的数据复制到另外的磁盘,格式化分区为EXT4,然后再次解压缩,完美!!!

3.编译系统源代码前的准备工作
#先安装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

刚编译没超过5分钟,立刻出现问题了

 ninja: build stopped: subcommand failed ninja failed with: exit status 1

看到这个问题,我也是百度google了一大圈,依然有问题,最后发现只要执行一下下面的命令就可以解决问题了,LC_ALL=C 是为了去除所有本地化的设置,让命令能正确执行。

export LC_ALL=C

经过一个多小时的编译,顺利完成。

目前来看编译的问题不多,主要是一些前期准备工作太多坑。


文章作者: 孙老师
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 孙老师 !
 上一篇
魔趣源代码下载 魔趣源代码下载
title:魔趣系统源代码下载date: 2020-04-30 147:07:27tags: Android 系统 源代码 编译 魔趣源代码下载搞魔趣源代码原因最近一直在研究干掉钉钉之类的打卡程序定位什么的,我对hook等方式一直觉得
2020-04-30 孙老师
下一篇 
使用ndk创建Android系统内的可执行程序 使用ndk创建Android系统内的可执行程序
title: 使用ndk创建Android系统内的可执行程序date: 2020-02-29 21:08:20tags: android linux可执行文件 arm C语言 使用ndk创建Android系统内的可执行程序我们在用
2020-02-29 孙老师
  目录