[lldb] Code sign binaries with entitlements
authorJonas Devlieghere <jonas@devlieghere.com>
Wed, 19 Aug 2020 17:19:03 +0000 (10:19 -0700)
committerJonas Devlieghere <jonas@devlieghere.com>
Wed, 19 Aug 2020 18:55:36 +0000 (11:55 -0700)
Binaries need to be code signed with entitlements to run on device.

Differential revision: https://reviews.llvm.org/D86237

lldb/packages/Python/lldbsuite/test/builders/darwin.py
lldb/packages/Python/lldbsuite/test/make/entitlements.plist [new file with mode: 0644]

index 704897d..470ea5d 100644 (file)
@@ -1,4 +1,5 @@
 import re
+import os
 import subprocess
 
 from .builder import Builder
@@ -53,9 +54,12 @@ class BuilderDarwin(Builder):
         if configuration.dsymutil:
             args['DSYMUTIL'] = configuration.dsymutil
 
-        os, _ = self.getOsAndEnv()
-        if os and os != "macosx":
-            args['CODESIGN'] = 'codesign'
+        operating_system, _ = self.getOsAndEnv()
+        if operating_system and operating_system != "macosx":
+            builder_dir = os.path.dirname(os.path.abspath(__file__))
+            test_dir = os.path.dirname(builder_dir)
+            entitlements = os.path.join(test_dir, 'make', 'entitlements.plist')
+            args['CODESIGN'] = 'codesign --entitlements {}'.format(entitlements)
 
         # Return extra args as a formatted string.
         return ' '.join(
diff --git a/lldb/packages/Python/lldbsuite/test/make/entitlements.plist b/lldb/packages/Python/lldbsuite/test/make/entitlements.plist
new file mode 100644 (file)
index 0000000..3c009ff
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+    <key>com.apple.security.get-task-allow</key>
+    <true/>
+    <key>com.apple.private.security.no-sandbox</key>
+    <true/>
+</dict>
+</plist>