时时勤拂拭,勿使惹尘埃

TOC

Categories

iOS(十)cydia源采集方式



cydia使用debian的APT包管理器
故推测在linux下可以直接使用apt工具来进行样本采集

1、获取cydia源

ios源配置文件:/etc/apt/sources.list.d/cydia.list
ios添加源后,可以源文件里面查看,其配置与debian源基本一致

2、linux添加cydia源

apt源配置文件:/etc/apt/sources.list
如将cyida的官方源“deb http://apt.saurik.com/ ios/1240.10 main”等添加进linxu源里

3、linux apt更新失败

apt-get update 
更新源设置,linux下可以成功解析部分cydia源url,但更多则失败了

4、cydia源url

正常cydia添加一个源后,都会下载该源的Release和Packages信息存储到本地
那么cyida存储位置为:/var/mobile/Library/Caches/com.saurik.Cydia/lists
从各个文件名可以推测为实际url

5、cydia源解析

既然cydia使用debian包管理器,那么source.list文件源地址写法应该与apt包管理器应该一致,即
  • 第一个区域指示源的类型:
    • deb” 表示二进制软件包,
    • deb-src” for source packages.
  • 第二个区域表示源的基本 URL
    • 此区域存在于一个 Debian 镜像或其他任何由第三方所建的软件源文档中。
    • 这个 URL 可以用 file:// 起始来表示系统里安装了本地仓库,或以 http:// 表示仓库可通过网络服务器来获取,或用 ftp:// 表示软件源在一个 FTP 服务器上。
      • cyida源主要使用http://协议
    • 源常见目录:
      • /dists/ 目录包含"发行版"(distributions), 此处是获得 Debian 发布版本(releases)和已发布版本(pre-releases)的软件包的正规途径. 有些旧软件包及 packages.gz 文件仍在里面.
      • /pool/ 目录为软件包的物理地址. 软件包均放进一个巨大的 "池子(pool)", 按照源码包名称分类存放. 为了方便管理, pool 目录下按属性再分类("main", "contrib" 和 "non-free"), 分类下面再按源码包名称的首字母归档. 
      • /tools/ 用于创建启动盘, 磁盘分区, 压缩/解压文件, 启动 Linux 的 DOS 下的小工.
      • /doc/ 基本的 Debian 文档, 如 FAQ, 错误报告系统指导等..
      • /indices/ 维护人员文件和重载文件.
      • /project/ 大部分为开发人员的资源, 如:project/experimental/ 本目录包含了处于开发中的软件包和工具, 它们均处于 alpha 测试阶段
  • 最后这一区域的句法取决于仓库的结构
    • 仓库是用来简单地描述一个软件源的子目录 
    • 通常用 “./” 表示子目录不存在 - 这个软件源就位于给定的 URL上。
    • 不过一般来讲,仓库的结构类似于一个 Debian 的镜像, 包括很多分支,每一分支有很多组成部分。通常命名选定的分支,然后命名下面的组成部分(或分区)(从maincontrib 和non-free中选择) 来激活一个典型的 Debian 镜像。
故可以推测出cydia源解析方式为:
  • 普通仓库结构:http://源URL/dists/stable/Release
  • "./"仓库结构:http://源URL/Packages.*
  • cydia应用自身官方源“apt.saurik.com”例外,其源地址为安装cydia时写入
    • source.list:deb http://apt.saurik.com/ ios/1240.10 main
    • 故URL为:http://apt.saurik.com/dists/ios/1240.10/Release

6、下载验证

6.1 普通仓库结构

  • 源名称:bigboss
  • source.list:deb http://apt.thebigboss.org/repofiles/cydia/ stable main
  • 样本采集记录:
  • 推测URL:http://apt.thebigboss.org/repofiles/cydia/dists/stable/Release
  • 从Release解析Packages地址:http://apt.thebigboss.org/repofiles/cydia/dists/stable/main/binary-iphoneos-arm/Packages
  • 采集问题:没有对常规debian源正确解析

6.2"./"仓库结构

  • 源名称:insanelyiph0ne
  • source.list:deb http://repo.insanelyi.com/ ./
  • 采集记录:
  • 推测URL:http://repo.insanelyi.com/Packages.gz
  • 采集问题:部分墙外源网络状态较差,需多次下载测试

6.3 cydia官方源

  • 源名称:saurik(cydia作者名字)
  • source.list:deb http://apt.saurik.com/ ios/1240.10 main
  • 采集记录:
  • 故URL为:http://apt.saurik.com/dists/ios/1240.10/Release
  • 推测cydia官方源source.list记录地址应是根据ios版本 or cydia版本
  • 建议采集方式:整个爬取http://apt.saurik.com/网站

7、Release与Packages

7.1 Release文件

Release文件记录源、Packages等信息:
  • 如:http://apt.thebigboss.org/repofiles/cydia/dists/stable/Release

7.2 Packages文件

Packages文件记录源里面app的信息,而Packages.bz2 or Packages.gz文件则是其压缩包
  • 如从Bigboss源Release解析的Packages地址:http://apt.thebigboss.org/repofiles/cydia/dists/stable/main/binary-iphoneos-arm/Packages

7.3 deb文件地址

Packages中最重要的信息如上图:
  • Package为程序名
  • Filename为实际文件名
故解析实际deb下载URL为:
  • http://源URL/Filename
实测:
  • http://apt.thebigboss.org/repofiles/cydia/debs2.0/actionmenu_1.3.0_iphoneos-arm.deb
  • http://apt.thebigboss.org/repofiles/cydia/debs2.0/abgrouper_0.3.deb


0 评论:

发表评论