]> git.cameronkatri.com Git - ldid.git/commitdiff
Change platform to a uint8_t
authorTeutates <103068388+Teutates@users.noreply.github.com>
Wed, 20 Jul 2022 20:56:49 +0000 (16:56 -0400)
committerTeutates <103068388+Teutates@users.noreply.github.com>
Wed, 20 Jul 2022 20:56:49 +0000 (16:56 -0400)
* Allows for arbitrary customization of the value

ldid.cpp
ldid.hpp

index 9a9339b916da0777baa0c5e76801f488439a5ffd..6bcc2482f545aa5303e900fac3fc828cdded0248 100644 (file)
--- a/ldid.cpp
+++ b/ldid.cpp
@@ -2093,7 +2093,7 @@ static void req(std::streambuf &buffer, uint8_t (&&data)[Size_]) {
     put(buffer, zeros, 3 - (Size_ + 3) % 4);
 }
 
-Hash Sign(const void *idata, size_t isize, std::streambuf &output, const std::string &identifier, const std::string &entitlements, bool merge, const std::string &requirements, const std::string &key, const Slots &slots, uint32_t flags, bool platform, const Progress &progress) {
+Hash Sign(const void *idata, size_t isize, std::streambuf &output, const std::string &identifier, const std::string &entitlements, bool merge, const std::string &requirements, const std::string &key, const Slots &slots, uint32_t flags, uint8_t platform, const Progress &progress) {
     Hash hash;
 
 
@@ -2327,7 +2327,7 @@ Hash Sign(const void *idata, size_t isize, std::streambuf &output, const std::st
             directory.nCodeSlots = Swap(normal);
             directory.hashSize = algorithm.size_;
             directory.hashType = algorithm.type_;
-            directory.platform = platform ? 0x01 : 0x00;
+            directory.platform = platform;
             directory.pageSize = PageShift_;
             directory.spare2 = Swap(uint32_t(0));
             directory.scatterOffset = Swap(uint32_t(0));
@@ -2797,7 +2797,7 @@ struct RuleCode {
     }
 };
 
-static Hash Sign(const uint8_t *prefix, size_t size, std::streambuf &buffer, Hash &hash, std::streambuf &save, const std::string &identifier, const std::string &entitlements, bool merge, const std::string &requirements, const std::string &key, const Slots &slots, size_t length, uint32_t flags, bool platform, const Progress &progress) {
+static Hash Sign(const uint8_t *prefix, size_t size, std::streambuf &buffer, Hash &hash, std::streambuf &save, const std::string &identifier, const std::string &entitlements, bool merge, const std::string &requirements, const std::string &key, const Slots &slots, size_t length, uint32_t flags, uint8_t platform, const Progress &progress) {
     // XXX: this is a miserable fail
     std::stringbuf temp;
     put(temp, prefix, size);
@@ -3198,7 +3198,7 @@ int main(int argc, char *argv[]) {
     bool flag_M(false);
 
     uint32_t flags(0);
-    bool platform(false);
+    uint8_t platform(0);
 
     uint32_t flag_CPUType(_not(uint32_t));
     uint32_t flag_CPUSubtype(_not(uint32_t));
@@ -3361,7 +3361,13 @@ int main(int argc, char *argv[]) {
             } break;
 
             case 'P':
-                platform = true;
+                if (argv[argi][2] != '\0') {
+                    char *platformchar = argv[argi] + 2;
+                    char *arge;
+                    platform = strtoul(platformchar, &arge, 0);
+                } else {
+                    platform = 13;
+                }
             break;
 
             case 's':
index ef7747793859bd0cf9d959ff03a73d2d80c7b201..861fbb37e9b74d1ef64b927c868dda5913b433f2 100644 (file)
--- a/ldid.hpp
+++ b/ldid.hpp
@@ -161,7 +161,7 @@ Bundle Sign(const std::string &root, Folder &folder, const std::string &key, con
 
 typedef std::map<uint32_t, Hash> Slots;
 
-Hash Sign(const void *idata, size_t isize, std::streambuf &output, const std::string &identifier, const std::string &entitlements, bool merge, const std::string &requirements, const std::string &key, const Slots &slots, uint32_t flags, bool platform, const Progress &progress);
+Hash Sign(const void *idata, size_t isize, std::streambuf &output, const std::string &identifier, const std::string &entitlements, bool merge, const std::string &requirements, const std::string &key, const Slots &slots, uint32_t flags, uint8_t platform, const Progress &progress);
 
 }