[Galaxy S 4 Themes and Apps] saurik:
I believe the issue here is that the version tested by adyscorpius was 0.9.4003. I quickly found a regression in 0.9.4003, and followed it up with a version 0.9.4004. However, it turns out (I did not realize this at the time) that the regression was actually part of the fix for the S4: Samsung mixed some symbols that are normally only in libcutils.so into liblog.so; as the fix for the S4 involved a number of extra symbols, it seemed like these would likely not be required.

I then got word that it no longer worked correctly on the S4, and I came up with a solution that works on any device (I forward symbols to either liblog.so or libcutils.so as a fallback), and this was released as 0.9.4005. It is highly likely that as 0.9.4004 came fairly quickly after 0.9.4003 (due to the large number of people testing on non-S4 devices, including myself: I caught it before I even published 0.9.4003 to the Play Store) many people here tried 0.9.4004.

FWIW, I would have guessed that while some background daemons on the S4 were affected (I pulled a stock ROM and did some static analysis to figure out what would have been broken) adb and USB would still have worked, allowing Substrate to be easily uninstalled. If this was not the case, and you were operating with a locked bootloader (and thereby were unable to just pull the resulting files via custom recovery), then I'm really (really) terribly sorry :(.

In order to keep issues like this from ever happening again, in 0.9.4005 I also developed a system that would be able to detect symbol conflicts: the setup application now would have detected the issue, both the original pre-0.9.4003 conflict, as well as the 0.9.4004 conflict, and would present a message to the user telling them that Substrate is unlikely to work. With this change, I'm pretty certain that Substrate is now able to detect all possible harmful conflicts.

---------- Post added at 08:16 PM ---------- Previous post was at 07:37 PM ----------

Oh, another detail: a few days ago, I ran into a friend of mine at a meetup thing that had just gotten an S4; I took the opportunity to root it, and verify that things worked on it: it did (tested at the time 0.9.4006, I believe). However, Samsung seems to have some one-off (Samsung-specific) programs on their devices that I currently beleving are using unitialized memory. I saw this both in reports of people testing 0.9.400[34] as well as myself when I had a chance to work with the device.

In 0.9.4005 I took the solution of blacklisting one of the processes (/system/bin/ks) and in 0.9.4008 (probably coming out tomorrow) I'm going to be blacklisting another one (/system/bin/mcDriverDaemon). The latter process doesn't seem to have any side effects when it fails, but the former causes the radio to not work (in case anyone saw that symptom with 0.9.4003, so that's fixed in 0.9.4005 and later). Neither of these failures keep the device from bringing up USB, adb, and su access.

I apparently am not going to be able to test personally on an S4 again until Thursday (six days from now), but when I do I hope to be able to remove the couple blacklists and allow modifications to those apps. (As these issues aren't fatal, the latter doesn't seem to even have a symptom, and in both cases was trivially fixed by blacklisting, I'm having a difficult time justifying going out and purchasing an S4 for this test--which I'd normally do, but Thursday isn't that long from now.)