diff --git a/NOTES b/NOTES
index 1b44584..91beabd 100644
--- a/NOTES
+++ b/NOTES
@@ -1303,6 +1303,8 @@ Also, it turns out to be trivial to honor the MY_PACKAGE_REPLACED
(package upgrade) intent using the same receiver as BOOT_COMPLETED, which
is going to be great for people going forward.
+...
+
I have been banging on the problem people have reported with
"Non-matching signing type." with older versions of OpenSSH. I've been
told it's the OpenSSH 7.2p2 that ships stock with Ubuntu 16.04 and Mint
@@ -1329,6 +1331,12 @@ sense from grepping around the dropbear source:
So confusion between those two sounds likely to me.
+...
+
+Triaged the crashes again. crash.20200109 is the only one that bothers
+me. It will probably continue at a low incidence until I figure out
+what's causing it.
+
XXX - crash.20200109
XXX - on android 6 (duckling moto g2), the notification is white-on-white?
diff --git a/crash.20200109 b/crash.20200109
index 3874c18..4b4a905 100644
--- a/crash.20200109
+++ b/crash.20200109
@@ -2,7 +2,7 @@ Yesterday, 7:03 PM on app version 24
OnePlus OnePlus 7T (OnePlus7T), Android 10
Report 1 of 3
-android.app.RemoteServiceException:
+android.app.RemoteServiceException:
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2038)
at android.os.Handler.dispatchMessage (Handler.java:107)
at android.os.Looper.loop (Looper.java:214)
@@ -10,3 +10,56 @@ android.app.RemoteServiceException:
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:950)
+
+
+2021/01/17 - confirmed this is still happening with version 26 of the
+app, reported on Android 8.1 (SDK 27) and Android 10 (SDK 29).
+
+https://stackoverflow.com/questions/51222082/why-do-i-get-remoteserviceexception-for-creating-updating-a-notification
+suggests it has something to do with the Notification passed to
+startForeground(), but their "workaround" was to only modify the
+Notification from the Service thread, which we already do.
+
+I could not reproduce it under the emulator with Android 8.1 and starting
+the service is several different contexts, including using the START
+broadcast after the app had been force stopped, or when the service had
+started because the package had just been updated (UI not displayed yet).
+I also tested launching the PendingIntent from those contexts.
+
+Looking at ActivityThread.java that came with my SDK and it looks like
+RemoteServiceException() is just called whenever handleMessage() is
+passed a msg.what == SCHEDULE_CRASH, which is sent from
+ApplicationThread.scheduleCrash(), which is called (indirectly) from:
+ ActivityStackSupervisor.PendingActivityLaunch.sendErrorResult()
+ ... ultimately called when there's an exception during a
+ PendingIntent launch, with the string from that exception??
+ BroadcastQueue.performReceiveLocked() on a RemoteException with the
+ string "can't deliver broadcast"
+ ActivityManagerShellCommand.runCrash() with "shell-induced crash"
+ ServiceRecord.postNotification() with "Bad notification for startForeground:"
+ ActiveServices.serviceForegroundCrash() with
+ "Context.startForegroundService() did not then call
+ Service.startForeground():"
+ NativeCrashListener.NativeCrashReporter.run() but I'm not sure it
+ actually makes it into the same crashApplication() or not?
+ RuntimeInit.wtf() not sure where this error winds up either but
+
+Most of those, I think, would be pretty good about putting a message
+there so I'm not clear why no message is provided.
+
+Googling some more:
+ https://github.com/commons-app/apps-android-commons/issues/1877
+ failed to set a NotificationChannel but I think I've already
+ crossed that bridge.
+ https://www.xspdf.com/resolution/50183960.html
+ the XML layout for their Notification specified a manual height for
+ the root element?? the outer element for mine is wrap_content, but
+ one of the contents is an ImageView with a manual size (60dp x
+ 60dp) ?? (and many others at this URL) Could maybe be a problem
+ with the res/drawable for the notification icon?
+
+Crashlytics would apparently provide more info -- I'm not clear why
+Google's crash reporter isn't giving me the RemoteServiceException
+message on its own though! But Crashlytics smells like bloatware to me
+and from looking at the source (/usr/src/firebase-android-sdk), I didn't
+immediately see how it could change the reporting of this sort of crash.
diff --git a/crash.20200122 b/crash.20200122
index e68ecd5..9006357 100644
--- a/crash.20200122
+++ b/crash.20200122
@@ -7,3 +7,7 @@ pid: 0, tid: 0 >>> org.galexander.sshd <<<
backtrace:
#00 pc 000000000001a6ac /system/lib/libc.so (abort+63)
#01 pc 0000000000020c79 /system/lib/libc.so (sigprocmask+48)
+
+
+2021/01/17 - Looking at the play console today, this crash is not in the
+last 60 days which is all it will show me. So I guess it's rare.
diff --git a/crash.20201123 b/crash.20201123
new file mode 100644
index 0000000..3517347
--- /dev/null
+++ b/crash.20201123
@@ -0,0 +1,23 @@
+java.lang.IllegalStateException:
+ at android.os.Parcel.createException (Parcel.java:1958)
+ at android.os.Parcel.readException (Parcel.java:1918)
+ at android.os.Parcel.readException (Parcel.java:1868)
+ at android.app.IActivityManager$Stub$Proxy.reportAssistContextExtras (IActivityManager.java:7107)
+ at android.app.ActivityThread.handleRequestAssistContextExtras (ActivityThread.java:3212)
+ at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1764)
+ at android.os.Handler.dispatchMessage (Handler.java:106)
+ at android.os.Looper.loop (Looper.java:193)
+ at android.app.ActivityThread.main (ActivityThread.java:6669)
+ at java.lang.reflect.Method.invoke (Native Method)
+ at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
+ at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)
+Caused by: android.os.RemoteException:
+ at android.app.ContextImpl.startServiceCommon (ContextImpl.java:1577)
+ at android.app.ContextImpl.startServiceAsUser (ContextImpl.java:1549)
+ at com.android.server.am.ActivityManagerService.reportAssistContextExtras (ActivityManagerService.java:14185)
+ at android.app.IActivityManager$Stub.onTransact$reportAssistContextExtras$ (IActivityManager.java:10882)
+ at android.app.IActivityManager$Stub.onTransact (IActivityManager.java:1953)
+
+
+2021/01/17 - reported exactly once on an unknown Android 9 device with
+version 24 of SimpleSSHD. A mystery I will leave unless it recurs.
diff --git a/crash.20201225 b/crash.20201225
new file mode 100644
index 0000000..b57e548
--- /dev/null
+++ b/crash.20201225
@@ -0,0 +1,33 @@
+java.lang.UnsatisfiedLinkError:
+ at java.lang.Runtime.loadLibrary0 (Runtime.java:1016)
+ at java.lang.System.loadLibrary (System.java:1669)
+ at org.galexander.sshd.SimpleSSHDService.
You may need to specify --user 0 depending on the context:
am broadcast --user 0 -a org.galexander.sshd.START org.galexander.sshd+
And if Android is ignoring your broadcasts because the app was never started yet (or was force stopped), you may try (it's all arbitrary to me!): +
am broadcast --user 0 -a org.galexander.sshd.START org.galexander.sshd/.StartReceiver+ +
If you are getting an error from am like:
cmd: Failure calling service activity: Failed transaction (2147483646)it can probably be solved by disassociating am from the ssh