Dear Maintainer, I tried to get some more information to this crash and could reproduce it on a Raspberry 3 running a Debian Buster armhf image created by following script (with "arch: armhf" and linux-image-armmp):
https://salsa.debian.org/raspi-team/image-specs The crash seems to happen at least on the initial key creation, therefore is maybe just visible with an empty ~/.android. "dmesg" shows following after the crash has happened: [ 339.344841] Alignment trap: not handling instruction ecd6cb04 at [<b6c59278>] [ 339.345111] Unhandled fault: alignment exception (0x001) at 0xb6c58ba1 [ 339.345328] pgd = 72cfb493 [ 339.345426] [b6c58ba1] *pgd=33fe8835 The backtrace from "coredumpctl gdb ..." just shows the last two frames: (gdb) bt #0 _bsaes_key_convert () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1037 #1 0xb6c5960e in bsaes_ctr32_encrypt_blocks () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1371 Backtrace stopped: previous frame identical to this frame (corrupt stack?) When running in an debugger short before the crash the backtrace shows this: (gdb) bt #0 bsaes_ctr32_encrypt_blocks () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1351 #1 0xb6c476ba in CTR_DRBG_generate (drbg=0x436570, out=<optimized out>, out_len=<optimized out>, additional_data=0xbeffd67c "\321,(L\262[\270\344\242\353Zp<\234\372\266\200U:\354\314\237\220r\033\252\002[P\vUban\216\024.J\020\305#g\r\345w\243q-Z\305\201\b~\245U\324\005^\310j\223\221H\370t\356\301\352\323ze\267\063\211\006\332\004\017\320\217w", additional_data_len=32) at src/crypto/fipsmodule/rand/ctrdrbg.c:169 #2 0xb6c47832 in RAND_bytes_with_additional_data (out=0x4364e8 "", out_len=out_len@entry=128, user_additional_data=user_additional_data@entry=0xb6c80dc8 <kDefaultAdditionalData> "") at src/crypto/fipsmodule/rand/rand.c:330 #3 0xb6c479f6 in RAND_bytes_with_additional_data (user_additional_data=0xb6c80dc8 <kDefaultAdditionalData> "", out_len=128, out=0x4364e8 "") at src/crypto/fipsmodule/bn/random.c:143 #4 bn_rand_with_additional_data (rnd=0x436460, bits=1024, top=0, bottom=1, additional_data=0xb6c80dc8 <kDefaultAdditionalData> "") at src/crypto/fipsmodule/bn/random.c:162 #5 0xb6c47a8e in BN_rand (rnd=rnd@entry=0x436460, bits=bits@entry=1024, top=top@entry=0, bottom=bottom@entry=1) at src/crypto/fipsmodule/bn/random.c:199 #6 0xb6c4be42 in generate_prime (out=0x436460, bits=bits@entry=1024, e=0x436448, p=p@entry=0x0, ctx=ctx@entry=0x436a18, cb=cb@entry=0x0) at src/crypto/fipsmodule/rsa/rsa_impl.c:837 #7 0xb6c4c132 in RSA_generate_key_ex (rsa=0x4361a8, bits=2048, e_value=<optimized out>, cb=0x0) at src/crypto/fipsmodule/rsa/rsa_impl.c:964 #8 0xb6f947ac in ?? () from /usr/lib/arm-linux-gnueabihf/android/libadb.so.0 #9 0xb6f95d80 in adb_auth_init() () from /usr/lib/arm-linux-gnueabihf/android/libadb.so.0 #10 0x00408608 in adb_server_main (is_daemon=is_daemon@entry=1, socket_spec="tcp:5037", ack_reply_fd=ack_reply_fd@entry=4) at adb/client/main.cpp:130 #11 0x0040bd10 in adb_commandline (argc=<optimized out>, argv=0xbefffdd0) at /usr/include/c++/8/bits/basic_string.h:252 #12 0xb6cc2524 in __libc_start_main (main=0x404e11 <main(int, char**)>, argc=7, argv=0xbefffdb4, init=<optimized out>, fini=0x41812d <__libc_csu_fini>, rtld_fini=0xb6fe16c5 <_dl_fini>, stack_end=0xbefffdb4) at libc-start.c:308 #13 0x00404e80 in _start () at adb/client/main.cpp:186 The causing instruction seems to be following (complete debug session attached): (gdb) 1034 vldmia r6, {q14} @ .LM0 1: x/i $pc => 0xb6c6f278 <_bsaes_key_convert+40>: vldmia r6, {d28-d29} (gdb) info reg ... r6 0xb6c6eba1 3066489761 ... (gdb) stepi Thread 1 "adb" received signal SIGBUS, Bus error. _bsaes_key_convert () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1037 1037 vrev32.8 q7, q7 1: x/i $pc => 0xb6c6f27c <_bsaes_key_convert+44>: vrev32.8 q7, q7 (gdb) Upstream appears to have an patch integrated that touches _bsaes_key_convert: [1] [2] A package android-libboringssl build with that patch applied could successfuly create the keys and did no crash on "adb devices" (just tested without a device connected). Kind regards, Bernhard [1] https://android.googlesource.com/platform/external/boringssl/+/ab8b888152733533e60c1ebbe8438594a3a2e3d7%5E%21/linux-arm/crypto/fipsmodule/bsaes-armv7.S [2] https://boringssl.googlesource.com/boringssl/+/672f6fc2486745d0cabc3aaeb4e0a3cd13b37b12%5E%21/crypto/fipsmodule/aes/asm/bsaes-armv7.pl
# Buster/stable armhf Raspberry Pi 3, 2019-08-06 apt update apt dist-ugprade apt install systemd-coredump gdb fakeroot adb adb-dbgsym android-libboringssl-dbgsym apt build-dep android-libboringssl The following NEW packages will be installed: adb android-libadb android-libbase android-libboringssl android-libcrypto-utils android-libcutils android-liblog android-sdk-platform-tools-common libatomic1 libusb-1.0-0 gdb libbabeltrace1 libc6-dbg libglib2.0-0 libglib2.0-data libicu63 libpython3.7 libxml2 shared-mime-info xdg-user-dirs adb-dbgsym android-libboringssl-dbgsym autoconf automake autopoint autotools-dev binutils binutils-arm-linux-gnueabihf binutils-common build-essential cpp cpp-8 debhelper dh-autoreconf dh-exec dh-strip-nondeterminism dpkg-dev dwz g++ g++-8 gcc gcc-8 gettext gettext-base groff-base intltool-debian libarchive-zip-perl libasan5 libbinutils libc-dev-bin libc6-dev libcc1-0 libcroco3 libdpkg-perl libfile-stripnondeterminism-perl libgcc-8-dev libgdbm-compat4 libgdbm6 libgomp1 libisl19 libmpc3 libmpfr6 libperl5.28 libpipeline1 libsigsegv2 libstdc++-8-dev libtool libubsan1 libuchardet0 linux-libc-dev m4 make man-db patch perl perl-modules-5.28 po-debconf fakeroot mkdir /home/benutzer/source/android-libboringssl/orig -p cd /home/benutzer/source/android-libboringssl/orig apt source android-libboringssl cd ############ root@raspi3-armhf:~# adb devices List of devices attached * daemon not running; starting now at tcp:5037 ADB server didn't ACK Full server startup log: /tmp/adb.0.log Server had pid: 635 --- adb starting (pid 635) --- adb I 08-06 11:48:30 635 635 main.cpp:57] Android Debug Bridge version 1.0.39 adb I 08-06 11:48:30 635 635 main.cpp:57] Version 1:8.1.0+r23-5 adb I 08-06 11:48:30 635 635 main.cpp:57] Installed as /usr/lib/android-sdk/platform-tools/adb adb I 08-06 11:48:30 635 635 main.cpp:57] adb I 08-06 11:48:30 635 635 adb_auth_host.cpp:416] adb_auth_init... adb I 08-06 11:48:30 635 635 adb_auth_host.cpp:262] User key '/root/.android/adbkey' does not exist... adb I 08-06 11:48:30 635 635 adb_auth_host.cpp:109] generate_key(/root/.android/adbkey)... * failed to start daemon error: cannot connect to daemon root@raspi3-armhf:~# dmesg [ 339.344841] Alignment trap: not handling instruction ecd6cb04 at [<b6c59278>] [ 339.345111] Unhandled fault: alignment exception (0x001) at 0xb6c58ba1 [ 339.345328] pgd = 72cfb493 [ 339.345426] [b6c58ba1] *pgd=33fe8835 root@raspi3-armhf:~# journalctl --no-pager Aug 06 11:48:30 raspi3-armhf kernel: Alignment trap: not handling instruction ecd6cb04 at [<b6c59278>] Aug 06 11:48:30 raspi3-armhf kernel: Unhandled fault: alignment exception (0x001) at 0xb6c58ba1 Aug 06 11:48:30 raspi3-armhf kernel: pgd = 72cfb493 Aug 06 11:48:30 raspi3-armhf kernel: [b6c58ba1] *pgd=33fe8835 Aug 06 11:48:30 raspi3-armhf systemd[1]: Created slice system-systemd\x2dcoredump.slice. Aug 06 11:48:30 raspi3-armhf systemd[1]: Started Process Core Dump (PID 638/UID 0). Aug 06 11:48:30 raspi3-armhf systemd-coredump[639]: Process 635 (adb) of user 0 dumped core. Stack trace of thread 635: #0 0x00000000b6c5927c n/a (libcrypto.so.0) Aug 06 11:48:30 raspi3-armhf systemd[1]: systemd-coredump@0-638-0.service: Succeeded. root@raspi3-armhf:~# coredumpctl list TIME PID UID GID SIG COREFILE EXE Tue 2019-08-06 11:48:30 UTC 635 0 0 7 present /usr/lib/android-sdk/platform-tools/adb root@raspi3-armhf:~# coredumpctl gdb 635 PID: 635 (adb) UID: 0 (root) GID: 0 (root) Signal: 7 (BUS) Timestamp: Tue 2019-08-06 11:48:30 UTC (8min ago) Command Line: adb -L tcp:5037 fork-server server --reply-fd 4 Executable: /usr/lib/android-sdk/platform-tools/adb Control Group: /user.slice/user-1000.slice/session-1.scope Unit: session-1.scope Slice: user-1000.slice Session: 1 Owner UID: 1000 (benutzer) Boot ID: 077d6116498b47b4b651016f58fca742 Machine ID: a032f7e2cc6d46aeb3121af91c290808 Hostname: raspi3-armhf Storage: /var/lib/systemd/coredump/core.adb.0.077d6116498b47b4b651016f58fca742.635.1565092110000000.lz4 Message: Process 635 (adb) of user 0 dumped core. Stack trace of thread 635: #0 0x00000000b6c5927c n/a (libcrypto.so.0) GNU gdb (Debian 8.2.1-2) 8.2.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "arm-linux-gnueabihf". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /usr/lib/android-sdk/platform-tools/adb...(no debugging symbols found)...done. [New LWP 635] [New LWP 637] [New LWP 636] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". Core was generated by `adb -L tcp:5037 fork-server server --reply-fd 4'. Program terminated with signal SIGBUS, Bus error. #0 0xb6c5927c in ?? () from /usr/lib/arm-linux-gnueabihf/android/libcrypto.so.0 [Current thread is 1 (Thread 0xb6fde4d0 (LWP 635))] (gdb) set width 0 (gdb) set pagination off (gdb) bt #0 0xb6c5927c in ?? () from /usr/lib/arm-linux-gnueabihf/android/libcrypto.so.0 #1 0xb6c5960e in ?? () from /usr/lib/arm-linux-gnueabihf/android/libcrypto.so.0 Backtrace stopped: previous frame identical to this frame (corrupt stack?) Core was generated by `adb -L tcp:5037 fork-server server --reply-fd 4'. Program terminated with signal SIGBUS, Bus error. #0 _bsaes_key_convert () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1037 1037 linux-arm/crypto/fipsmodule/bsaes-armv7.S: No such file or directory. [Current thread is 1 (Thread 0xb6fde4d0 (LWP 635))] (gdb) set width 0 (gdb) set pagination off (gdb) bt #0 _bsaes_key_convert () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1037 #1 0xb6c5960e in bsaes_ctr32_encrypt_blocks () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1371 Backtrace stopped: previous frame identical to this frame (corrupt stack?) root@raspi3-armhf:~# gdb -q --args adb -L tcp:5037 fork-server server --reply-fd 4 Reading symbols from adb...Reading symbols from /usr/lib/debug/.build-id/4f/8b8b5131b4bfbfc8beb31092b44e810860e7da.debug...done. done. (gdb) set width 0 (gdb) set pagination off (gdb) directory /home/benutzer/source/android-libboringssl/orig/android-platform-external-boringssl-8.1.0+r23 Source directories searched: /home/benutzer/source/android-libboringssl/orig/android-platform-external-boringssl-8.1.0+r23:$cdir:$cwd (gdb) b bsaes_ctr32_encrypt_blocks Function "bsaes_ctr32_encrypt_blocks" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (bsaes_ctr32_encrypt_blocks) pending. (gdb) run Starting program: /usr/bin/adb -L tcp:5037 fork-server server --reply-fd 4 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". [New Thread 0xb6b31440 (LWP 11710)] [New Thread 0xb6330440 (LWP 11711)] Thread 1 "adb" hit Breakpoint 1, bsaes_ctr32_encrypt_blocks () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1351 1351 cmp r2, #8 @ use plain AES for (gdb) bt #0 bsaes_ctr32_encrypt_blocks () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1351 #1 0xb6c476ba in CTR_DRBG_generate (drbg=0x436570, out=<optimized out>, out_len=<optimized out>, additional_data=0xbeffd67c "\321,(L\262[\270\344\242\353Zp<\234\372\266\200U:\354\314\237\220r\033\252\002[P\vUban\216\024.J\020\305#g\r\345w\243q-Z\305\201\b~\245U\324\005^\310j\223\221H\370t\356\301\352\323ze\267\063\211\006\332\004\017\320\217w", additional_data_len=32) at src/crypto/fipsmodule/rand/ctrdrbg.c:169 #2 0xb6c47832 in RAND_bytes_with_additional_data (out=0x4364e8 "", out_len=out_len@entry=128, user_additional_data=user_additional_data@entry=0xb6c80dc8 <kDefaultAdditionalData> "") at src/crypto/fipsmodule/rand/rand.c:330 #3 0xb6c479f6 in RAND_bytes_with_additional_data (user_additional_data=0xb6c80dc8 <kDefaultAdditionalData> "", out_len=128, out=0x4364e8 "") at src/crypto/fipsmodule/bn/random.c:143 #4 bn_rand_with_additional_data (rnd=0x436460, bits=1024, top=0, bottom=1, additional_data=0xb6c80dc8 <kDefaultAdditionalData> "") at src/crypto/fipsmodule/bn/random.c:162 #5 0xb6c47a8e in BN_rand (rnd=rnd@entry=0x436460, bits=bits@entry=1024, top=top@entry=0, bottom=bottom@entry=1) at src/crypto/fipsmodule/bn/random.c:199 #6 0xb6c4be42 in generate_prime (out=0x436460, bits=bits@entry=1024, e=0x436448, p=p@entry=0x0, ctx=ctx@entry=0x436a18, cb=cb@entry=0x0) at src/crypto/fipsmodule/rsa/rsa_impl.c:837 #7 0xb6c4c132 in RSA_generate_key_ex (rsa=0x4361a8, bits=2048, e_value=<optimized out>, cb=0x0) at src/crypto/fipsmodule/rsa/rsa_impl.c:964 #8 0xb6f947ac in ?? () from /usr/lib/arm-linux-gnueabihf/android/libadb.so.0 #9 0xb6f95d80 in adb_auth_init() () from /usr/lib/arm-linux-gnueabihf/android/libadb.so.0 #10 0x00408608 in adb_server_main (is_daemon=is_daemon@entry=1, socket_spec="tcp:5037", ack_reply_fd=ack_reply_fd@entry=4) at adb/client/main.cpp:130 #11 0x0040bd10 in adb_commandline (argc=<optimized out>, argv=0xbefffdd0) at /usr/include/c++/8/bits/basic_string.h:252 #12 0xb6cc2524 in __libc_start_main (main=0x404e11 <main(int, char**)>, argc=7, argv=0xbefffdb4, init=<optimized out>, fini=0x41812d <__libc_csu_fini>, rtld_fini=0xb6fe16c5 <_dl_fini>, stack_end=0xbefffdb4) at libc-start.c:308 #13 0x00404e80 in _start () at adb/client/main.cpp:186 Backtrace stopped: previous frame identical to this frame (corrupt stack?) (gdb) b _bsaes_key_convert Breakpoint 2 at 0xb6c6f250: file linux-arm/crypto/fipsmodule/bsaes-armv7.S, line 1019. (gdb) display/i $pc 1: x/i $pc => 0xb6c6f5e0 <bsaes_ctr32_encrypt_blocks>: cmp r2, #8 (gdb) nexti 1352 blo .Lctr_enc_short @ small sizes 1: x/i $pc => 0xb6c6f5e2 <bsaes_ctr32_encrypt_blocks+2>: bcc.w 0xb6c6f780 <bsaes_ctr32_encrypt_blocks+416> (gdb) 1354 mov ip, sp 1: x/i $pc => 0xb6c6f5e6 <bsaes_ctr32_encrypt_blocks+6>: mov r12, sp (gdb) 1355 stmdb sp!, {r4,r5,r6,r7,r8,r9,r10, lr} 1: x/i $pc => 0xb6c6f5e8 <bsaes_ctr32_encrypt_blocks+8>: stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} (gdb) bsaes_ctr32_encrypt_blocks () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1356 1356 VFP_ABI_PUSH 1: x/i $pc => 0xb6c6f5ec <bsaes_ctr32_encrypt_blocks+12>: vpush {d8-d15} (gdb) bsaes_ctr32_encrypt_blocks () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1357 1357 ldr r8, [ip] @ ctr is 1st arg on the stack 1: x/i $pc => 0xb6c6f5f0 <bsaes_ctr32_encrypt_blocks+16>: ldr.w r8, [r12] (gdb) 1358 sub sp, sp, #0x10 @ scratch space to carry over the ctr 1: x/i $pc => 0xb6c6f5f4 <bsaes_ctr32_encrypt_blocks+20>: sub sp, #16 (gdb) bsaes_ctr32_encrypt_blocks () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1359 1359 mov r9, sp @ save sp 1: x/i $pc => 0xb6c6f5f6 <bsaes_ctr32_encrypt_blocks+22>: mov r9, sp (gdb) 1361 ldr r10, [r3, #240] @ get # of rounds 1: x/i $pc => 0xb6c6f5f8 <bsaes_ctr32_encrypt_blocks+24>: ldr.w r10, [r3, #240] ; 0xf0 (gdb) 1364 sub r12, sp, r10, lsl#7 @ 128 bytes per inner round key 1: x/i $pc => 0xb6c6f5fc <bsaes_ctr32_encrypt_blocks+28>: sub.w r12, sp, r10, lsl #7 (gdb) 1365 add r12, #96 @ size of bit-sliced key schedule 1: x/i $pc => 0xb6c6f600 <bsaes_ctr32_encrypt_blocks+32>: add.w r12, r12, #96 ; 0x60 (gdb) 1368 mov r4, r3 @ pass key 1: x/i $pc => 0xb6c6f604 <bsaes_ctr32_encrypt_blocks+36>: mov r4, r3 (gdb) 1369 mov r5, r10 @ pass # of rounds 1: x/i $pc => 0xb6c6f606 <bsaes_ctr32_encrypt_blocks+38>: mov r5, r10 (gdb) 1370 mov sp, r12 @ sp is sp 1: x/i $pc => 0xb6c6f608 <bsaes_ctr32_encrypt_blocks+40>: mov sp, r12 (gdb) bsaes_ctr32_encrypt_blocks () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1371 1371 bl _bsaes_key_convert 1: x/i $pc => 0xb6c6f60a <bsaes_ctr32_encrypt_blocks+42>: bl 0xb6c6f250 <_bsaes_key_convert> (gdb) stepi Thread 1 "adb" hit Breakpoint 2, _bsaes_key_convert () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1019 1019 adr r6,_bsaes_key_convert 1: x/i $pc => 0xb6c6f250 <_bsaes_key_convert>: subw r6, pc, #3 (gdb) nexti 1020 vld1.8 {q7}, [r4]! @ load round 0 key 1: x/i $pc => 0xb6c6f254 <_bsaes_key_convert+4>: vld1.8 {d14-d15}, [r4]! (gdb) 1024 sub r6,r6,#_bsaes_key_convert-.LM0 1: x/i $pc => 0xb6c6f258 <_bsaes_key_convert+8>: sub.w r6, r6, #1712 ; 0x6b0 (gdb) 1026 vld1.8 {q15}, [r4]! @ load round 1 key 1: x/i $pc => 0xb6c6f25c <_bsaes_key_convert+12>: vld1.8 {d30-d31}, [r4]! (gdb) 1028 vmov.i8 q8, #0x01 @ bit masks 1: x/i $pc => 0xb6c6f260 <_bsaes_key_convert+16>: vmov.i8 q8, #1 ; 0x01 (gdb) 1029 vmov.i8 q9, #0x02 1: x/i $pc => 0xb6c6f264 <_bsaes_key_convert+20>: vmov.i8 q9, #2 ; 0x02 (gdb) 1030 vmov.i8 q10, #0x04 1: x/i $pc => 0xb6c6f268 <_bsaes_key_convert+24>: vmov.i8 q10, #4 ; 0x04 (gdb) 1031 vmov.i8 q11, #0x08 1: x/i $pc => 0xb6c6f26c <_bsaes_key_convert+28>: vmov.i8 q11, #8 ; 0x08 (gdb) 1032 vmov.i8 q12, #0x10 1: x/i $pc => 0xb6c6f270 <_bsaes_key_convert+32>: vmov.i8 q12, #16 ; 0x10 (gdb) 1033 vmov.i8 q13, #0x20 1: x/i $pc => 0xb6c6f274 <_bsaes_key_convert+36>: vmov.i8 q13, #32 ; 0x20 (gdb) 1034 vldmia r6, {q14} @ .LM0 1: x/i $pc => 0xb6c6f278 <_bsaes_key_convert+40>: vldmia r6, {d28-d29} (gdb) info reg r0 0x4364e8 4416744 r1 0x4364e8 4416744 r2 0x8 8 r3 0x436570 4416880 r4 0x436590 4416912 r5 0xe 14 r6 0xb6c6eba1 3066489761 r7 0xb6c6f5e1 3066492385 r8 0x43666c 4417132 r9 0xbeffd478 3204437112 r10 0xe 14 r11 0xbeffd67c 3204437628 r12 0xbeffcdd8 3204435416 sp 0xbeffcdd8 0xbeffcdd8 lr 0xb6c6f60f -1228474865 pc 0xb6c6f278 0xb6c6f278 <_bsaes_key_convert+40> cpsr 0x600d0030 1611464752 fpscr 0x60000000 1610612736 (gdb) stepi Thread 1 "adb" received signal SIGBUS, Bus error. _bsaes_key_convert () at linux-arm/crypto/fipsmodule/bsaes-armv7.S:1037 1037 vrev32.8 q7, q7 1: x/i $pc => 0xb6c6f27c <_bsaes_key_convert+44>: vrev32.8 q7, q7 (gdb) Unable to fetch general registers.: No such process. Unable to fetch general registers.: No such process. (gdb) [Thread 0xb6330440 (LWP 11711) exited] [Thread 0xb6b31440 (LWP 11710) exited] Program terminated with signal SIGBUS, Bus error. The program no longer exists. (gdb) list bsaes-armv7.S:1014,1040 1014 bx lr 1015 .size _bsaes_encrypt8,.-_bsaes_encrypt8 1016 .type _bsaes_key_convert,%function 1017 .align 4 1018 _bsaes_key_convert: 1019 adr r6,_bsaes_key_convert 1020 vld1.8 {q7}, [r4]! @ load round 0 key 1021 #ifdef __APPLE__ 1022 adr r6,.LM0 1023 #else 1024 sub r6,r6,#_bsaes_key_convert-.LM0 1025 #endif 1026 vld1.8 {q15}, [r4]! @ load round 1 key 1027 1028 vmov.i8 q8, #0x01 @ bit masks 1029 vmov.i8 q9, #0x02 1030 vmov.i8 q10, #0x04 1031 vmov.i8 q11, #0x08 1032 vmov.i8 q12, #0x10 1033 vmov.i8 q13, #0x20 1034 vldmia r6, {q14} @ .LM0 1035 1036 #ifdef __ARMEL__ 1037 vrev32.8 q7, q7 1038 vrev32.8 q15, q15 1039 #endif 1040 sub r5,r5,#1 (gdb) list bsaes-armv7.S:1345,1375 1345 1346 .globl bsaes_ctr32_encrypt_blocks 1347 .hidden bsaes_ctr32_encrypt_blocks 1348 .type bsaes_ctr32_encrypt_blocks,%function 1349 .align 5 1350 bsaes_ctr32_encrypt_blocks: 1351 cmp r2, #8 @ use plain AES for 1352 blo .Lctr_enc_short @ small sizes 1353 1354 mov ip, sp 1355 stmdb sp!, {r4,r5,r6,r7,r8,r9,r10, lr} 1356 VFP_ABI_PUSH 1357 ldr r8, [ip] @ ctr is 1st arg on the stack 1358 sub sp, sp, #0x10 @ scratch space to carry over the ctr 1359 mov r9, sp @ save sp 1360 1361 ldr r10, [r3, #240] @ get # of rounds 1362 #ifndef BSAES_ASM_EXTENDED_KEY 1363 @ allocate the key schedule on the stack 1364 sub r12, sp, r10, lsl#7 @ 128 bytes per inner round key 1365 add r12, #96 @ size of bit-sliced key schedule 1366 1367 @ populate the key schedule 1368 mov r4, r3 @ pass key 1369 mov r5, r10 @ pass # of rounds 1370 mov sp, r12 @ sp is sp 1371 bl _bsaes_key_convert 1372 veor q7,q7,q15 @ fix up last round key 1373 vstmia r12, {q7} @ save last round key 1374 1375 vld1.8 {q0}, [r8] @ load counter set width 0 set pagination off directory /home/benutzer/source/android-libboringssl/orig/android-platform-external-boringssl-8.1.0+r23 b bsaes_ctr32_encrypt_blocks y run bt b _bsaes_key_convert display/i $pc root@raspi3-armhf:~# cat /proc/cpu/alignment User: 6 System: 0 ( (null)) Skipped: 6 Half: 0 Word: 0 DWord: 0 Multi: 0 User faults: 2 (fixup) root@raspi3-armhf:~# echo 2 > /proc/cpu/alignment root@raspi3-armhf:~# cat /proc/cpu/alignment User: 6 System: 0 ( (null)) Skipped: 6 Half: 0 Word: 0 DWord: 0 Multi: 0 User faults: 2 (fixup) -> nothing changed at armhf ... seems just for armel http://infocenter.arm.com/help/topic/com.arm.doc.dui0646a/CHDCAEDE.html Floating-point Load Multiple. https://android.googlesource.com/platform/external/boringssl/+/ab8b888152733533e60c1ebbe8438594a3a2e3d7%5E%21/linux-arm/crypto/fipsmodule/bsaes-armv7.S https://boringssl.googlesource.com/boringssl/+/672f6fc2486745d0cabc3aaeb4e0a3cd13b37b12%5E%21/crypto/fipsmodule/aes/asm/bsaes-armv7.pl