diff options
author | Jay Freeman (saurik) <saurik@saurik.com> | 2013-09-02 22:55:37 -0700 |
---|---|---|
committer | Jay Freeman (saurik) <saurik@saurik.com> | 2013-09-02 22:55:37 -0700 |
commit | e58574abf6529058ed277b13c8af3bff3c126186 (patch) | |
tree | 1ed237d17ec1650ff98a21c630488cdc02b5d047 | |
parent | 9b4ef9a50c9de548ddb65bdc8d157d4b8155b9e7 (diff) | |
download | ldid-e58574abf6529058ed277b13c8af3bff3c126186.tar.gz ldid-e58574abf6529058ed277b13c8af3bff3c126186.tar.zst ldid-e58574abf6529058ed277b13c8af3bff3c126186.zip |
Add special cases to support old codesign_allocate.v1.1.0
-rw-r--r-- | ldid.cpp | 34 |
1 files changed, 29 insertions, 5 deletions
@@ -946,13 +946,37 @@ int main(int argc, const char *argv[]) { args.push_back(path); _foreach (allocation, allocations) { - args.push_back("-A"); + if (allocation.type_ == 12 && ( + allocation.subtype_ == 0 || + allocation.subtype_ == 6 || + false)) { + // Telesphoreo codesign_allocate + args.push_back("-a"); + + const char *arch; + switch (allocation.subtype_) { + case 0: + arch = "arm"; + break; + case 6: + arch = "armv6"; + break; + default: + arch = NULL; + break; + } - asprintf(&arg, "%u", allocation.type_); - args.push_back(arg); + _assert(arch != NULL); + args.push_back(arch); + } else { + args.push_back("-A"); - asprintf(&arg, "%u", allocation.subtype_); - args.push_back(arg); + asprintf(&arg, "%u", allocation.type_); + args.push_back(arg); + + asprintf(&arg, "%u", allocation.subtype_); + args.push_back(arg); + } size_t alloc(0); alloc += sizeof(struct SuperBlob); |