.YOPA format 1. File Structure ---------------- [7zip stuff] ... [patch information] [actual patch package] ... [header info] 2. Header Information ----------------- struct YOPA_header { uint32_t supported_archs[10]; fpos_t patch_offsets[50]; int package_version; char package_signature; char cracker_name[100]; char cracker_message[4096]; } package_signature - unique signature of this package cracker_name - self explainatory cracker_message - message that will be presented to the user upon installation supported_archs - supported architectures of app 3. Patch Information -------------------- struct YOPA_patch { char old_package_signature; int old_package_version; int patch_size; } 3. download process --------------------- downloader will first download the header and parse the plist if an update is possible, it'll download the patch files and complete if an update isn't possible, it'll continue to download the patch files but not save it and only save the installation portion if the user is using