teensyduino 1.51 on OSX causes arduino ide to crash after reboot

Installing the latest version of teensyduino 1.51 works well on OSX 10.13.6
Everythings works as intended.
However, after rebooting the mac, Arduino IDE will fail (crash)
Only fresh rei-nstalling Arduino IDE and Teensyduino will solve the problem.
To only reappear on the next reboot.

Anyone any hints as how to solve this?
Thanks!
Floris


from the crash log:


Process: Arduino [616]
Path: /Applications/Arduino.app/Contents/MacOS/Arduino
Identifier: cc.arduino.Arduino.teensyduino
Version: ???
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Arduino [616]
User ID: 502

...


System Integrity Protection: enabled

Crashed Thread: 0

Exception Type: EXC_CRASH (Code Signature Invalid)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Termination Reason: Namespace CODESIGNING, Code 0x1

kernel messages:

VM Regions Near 0 (cr2):
-->
__TEXT 000000010967c000-0000000109681000 [ 20K]
r-x/r-x SM=COW 3 []

Thread 0 Crashed:
0 ??? 0x000000010bbdd19c _dyld_start + 0

Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x0000000000000000 rcx:
0x0000000000000000 rdx: 0x0000000000000000
rdi: 0x0000000000000000 rsi: 0x0000000000000000 rbp:
0x0000000000000000 rsp: 0x00007ffee6583c20
r8: 0x0000000000000000 r9: 0x0000000000000000 r10:
0x0000000000000000 r11: 0x0000000000000000
r12: 0x0000000000000000 r13: 0x0000000000000000 r14:
0x0000000000000000 r15: 0x0000000000000000
rip: 0x000000010bbdd19c rfl: 0x0000000000000200 cr2: 0x0000000000000000

Logical CPU: 0
Error Code: 0x00000000
Trap Number: 0


Binary Images:
0x10967c000 - 0x109680fff +??? (???)
<2AE2040B-3408-3208-B101-5825B8F425F0> (null)
0x10bbdc000 - 0x10bc26adf +??? (551.5)
<ACC6AC7F-EAD9-340E-B2A8-AD26FE5B387B> (null)

External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 123
thread_create: 0
thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=452K resident=0K(0%)
swapped_out_or_unallocated=452K(100%)
Writable regions: Total=8404K written=0K(0%) resident=0K(0%)
swapped_out=0K(0%) unallocated=8404K(100%)

VIRTUAL REGION
REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
STACK GUARD 56.0M 2
Stack 8192K 2
__DATA 228K 4
__LINKEDIT 132K 3
__TEXT 320K 3
shared memory 8K 3
=========== ======= =======
TOTAL 64.7M 11
 
Hello Floris,

I've had the same problem on Mac OS 10.14.6. I followed the instruction on the download page to start the Arduino IDE once before installing Teensyduino, but after rebooting the machine the Arduino IDE crashed.

There is already another thread about this problem, but the solution posted there did not work for me.

The error message "Code Signature Invalid" tells us that the Teensyduino installer changed the Arduino application in a way that broke the code signature. So I opened the terminal and verified the signature:

Code:
macpaddy2:~ pdaehne$ codesign -v /Applications/Arduino.app
/Applications/Arduino.app: invalid Info.plist (plist or signature have been modified)
In architecture: x86_64

That tells us that "Info.plist" is not valid anymore. Then I compared that file with the original version:

Code:
macpaddy2:~ pdaehne$ diff /Applications/Arduino.app/Contents/Info.plist ~/Downloads/Arduino.app/Contents/Info.plist
12c12
< <string>cc.arduino.Arduino.teensyduino</string>
---
> <string>cc.arduino.Arduino</string>

So obviously the Teensyduino installer changed the bundle identifier. Then I opened "Info.plist" with a text editor (right-click on "Arduino" in the Finder, select "Show Package Contents" and change into the "Contents" directory) and changed the bundle identifier back to the original version. Now the Arduino IDE is working again. Don't know for how long, I did not reboot the machine yet.

Bye,

Patrick
 
Last edited:
Hello Patrick,

After the reboot the Arduino UIDE will now work again as intende
Thank you !

(Your first post and that makes it a 100% score ;-)

.F
 
Yes, the old Mac installer breaks the code signature.

The newer copy of Teensyduino, which is a complete copy of Arduino with all Teensyduino stuff already installed, has a proper code signature. It is also properly notarized with Apple.

Until now, that only seemed to be necessary for 10.15 Catalina. While it's hard to make any solid conclusions from only these few reports, my gut feeling says we're now starting to see Apple bring these security requirements onto the older versions of MacOS which they're still updating.

Sadly, there is a problem with new build of the Teensy Loader application when run on 10.13. Even though its Info.plist tries to tell MacOS to allow it to run on older versions, for reasons I don't understand it won't run on 10.13, because it was built with 10.14. It does run on 10.12 (the oldest MacOS I have here, besides 10.7) and I've been told it runs on 10.11 and 10.10 (but 10.9 is too old).

If anyone can help with understanding why the newer build of Teensy Loader won't run on 10.13, please help. Until now I've considered it a low priority since Catalina was the only version of MacOS requiring the new properly signed package. But now if 10.14 and 10.13 are needing code signatures, I'm afraid this leaves us without a way to get everything working on 10.13. :(
 
I found the cause of the Catalina version not running on MacOS 10.13. The makefile was missing "-mmacosx-version-min=10.10" for the Catalina build of Teensy Loader.

Why it's able to run on 10.10 to 10.12, but not 10.13 is a mystery to me. Maybe those older versions look only at LSMinimumSystemVersion in the Info.plist and not the version info embedded in the executable? 10.13 is definitely rejecting the Catalina builds because xcode 10 (running on Mojave) is defaulting to 10.14 in the binary image without that extra compiler flag.
 
Back
Top