[Guide][w/o Root] Bypass Google's Signature Check - Android Software/Hacking General [Developers Only]

Bypass Google's Signature Check​​mod any Google application on your own and bypass Google GMS' signature checks!​
Hello everyone,
After the Pixel Launcher Backport success, today I wanted to share a little bit more on how I bypassed Google's Signature Check, in order to get it working after modding and re-signing it with my own key. Please, do keep in mind that Google's signature checks have nothing to do with standard Android systems keychecking, as those just validate the package is using a valid signature. However, Google's signature check is based on GMS, the commonly named Google Play Services framework, and ensures the application hasn't been previously tampered. For now, this is something (as far as I could see) only present in Google's own apps, but I see it could easily extend to other apps in the future.
However, be warned that by doing the following, the app you're using will believe there's no Google Account linked to your device, and thus will ask you to add it. And even if you add it, it will still not work, since this breaks the link between GMS and the app that's being modded. Keep also in mind that it won't work with all apps providing this reason.
This thread will be composed of: a brief explanation on what's going on, what knowledge you need, what we will do, explained in a brief way (which will be the first post), and many, MANY examples I've prepared for you to understand it, as I've seen it's not enough with just two.
Code:
#include <std/disclaimer.h>
/* No, your warranty doesn't need to be voided!
* The following tutorial will be used exclusively for educational purposes.
* It shall never be used to modify legitimate apps in malicious ways,
* to distribute malware, spyware and such.
*
* The intention is to open the doors to small developers that want to
* theme or add functionality to other apps, but face the Google Signature
* Check problem. Feel free to add suggestions in the comments.
* Oh, and... Sorry Google :P
*/
What you will need:
Medium knowledge of Android's SMALI: Control structures, methods, classes... (basically Java, but ugly ), decompilation of applications, signing applications, etc.
A work environment: Java JDK, APKtool by @iBotPeaches or any other similar tool that supplies baksmali and smali functionality (you can use vanilla JesusFreke's tools too, if you really want to).
Knowledge of Android's logcat: You'll be working with stacktraces and apps giving FCs (Force close) during the tutorial, so you need to know how to find/grab, open, interpret them, and know how to locate something in them.
An application that presents the Google Signature Check crash when you try to open after tampering it. For example:
Code:
05-18 10:57:13.561 9540 9540 E AndroidRuntime: java.lang.SecurityException: Signature check failed for com.google.android.apps.nexuslauncher
05-18 10:57:13.561 9540 9540 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1620)
05-18 10:57:13.561 9540 9540 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1573)
05-18 10:57:13.561 9540 9540 E AndroidRuntime: at com.google.android.gms.common.internal.o.zza(Unknown Source)
05-18 10:57:13.561 9540 9540 E AndroidRuntime: at com.google.android.gms.common.internal.x.fs(Unknown Source)
05-18 10:57:13.561 9540 9540 E AndroidRuntime: at com.google.android.gms.internal.cy.yQ(Unknown Source)
05-18 10:57:13.561 9540 9540 E AndroidRuntime: at com.google.android.gms.internal.bQ.run(Unknown Source)
05-18 10:57:13.561 9540 9540 E AndroidRuntime: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
05-18 10:57:13.561 9540 9540 E AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-18 10:57:13.561 9540 9540 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
05-18 10:57:13.561 9540 9540 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
05-18 10:57:13.561 9540 9540 E AndroidRuntime: at com.google.android.gms.internal.bk.run(Unknown Source)
05-18 10:57:13.561 9540 9540 E AndroidRuntime: at java.lang.Thread.run(Thread.java:818)
05-18 10:57:13.562 2070 2952 W ActivityManager: Force finishing activity com.google.android.apps.nexuslauncher/.NexusLauncherActivity
A WERKIN BRAIN ECKSDEE Meeting the above, I'm sure you already had that.
What are the steps? (briefly explained):
Decompile the application, then tamper it by resigning it with our own key or by adding any modifications you need to it.
Grab a log of what went wrong. Read it and locate the first class after the readException errors. The submethod reference is the one we need to "destroy" in order to know what class is actually invoking the signature verification.
Destroy the method in a way that it's still compilable, but will refuse to work on our phone.
Recompile, sign, install and check the logs it throws. Go to the class/method that is referenced right after the class rejection error, edit it in a way that makes it not to check the signature of the package.
Restore the "destroyed" method to it's original state. Recompile, sign, push, test, test and test a trillion times. If it works, then feel free to publish it.
However, during these steps you can find different situations. For instance:
The classes appear in the root of the smali folder named alphabetically, instead of their respective folders. This happens in: Gmail, YouTube...
The first method (the one you needed to "destroy") that you located in the stacktrace is present in that class over a million times, so you need to check the previous classes in the stacktrace to see the full header of the method where it's actually calling. This happens in: Pixel Launcher, Android Messages...
Once the class is destroyed, the first method that appears in the stacktrace is a onServiceConnected, which is harder to mod than if there was any other before it. This happens in: Gmail, YouTube...
Classification of the thread's posts
2nd post: Pixel Launcher O-3743572
3rd post: Android Messages 2.2.075 (4023518-30.phone)
4th post: Gmail 7.5.7.156101332.release
5th post: YouTube 12.19.56
And a few last words before getting to the thing:
I ain't asking for donations, because I really don't need them this time. This is (one of) my hobby, and I don't mind spending time (endless hours) on making high quality threads and explanations. However, if you really feel like I deserve it, you're free to donate, here. (Or you can also leave Thanks!)

Pixel Launcher O-3743572​​
​
Tamper the app with a new signature and/or code modifications you need, preferably using latest Google's Framework, if possible. This will make the app crash (forced by Google Play Services).
Grab a logcat of the crash. It'll show a code similar to this.
Code:
05-18 22:23:14.104 13300 13300 E AndroidRuntime: java.lang.SecurityException: Signature check failed for com.google.android.apps.nexuslauncher
05-18 22:23:14.104 13300 13300 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1620)
05-18 22:23:14.104 13300 13300 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1573)
05-18 22:23:14.104 13300 13300 E AndroidRuntime: [B]at com.google.android.gms.common.internal.p.zza(Unknown Source)[/B]
05-18 22:23:14.104 13300 13300 E AndroidRuntime: [B]at com.google.android.gms.common.internal.y.eU(Unknown Source)[/B]
05-18 22:23:14.104 13300 13300 E AndroidRuntime: at com.google.android.gms.internal.cr.wV(Unknown Source)
05-18 22:23:14.104 13300 13300 E AndroidRuntime: at com.google.android.gms.internal.bO.run(Unknown Source)
05-18 22:23:14.104 13300 13300 E AndroidRuntime: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
05-18 22:23:14.104 13300 13300 E AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-18 22:23:14.104 13300 13300 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
05-18 22:23:14.104 13300 13300 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
05-18 22:23:14.104 13300 13300 E AndroidRuntime: at com.google.android.gms.internal.bj.run(Unknown Source)
05-18 22:23:14.104 13300 13300 E AndroidRuntime: at java.lang.Thread.run(Thread.java:818)
05-18 22:23:14.105 2070 3515 W ActivityManager: Force finishing activity com.google.android.apps.nexuslauncher/.NexusLauncherActivity
Pay attention to the first two lines that mention com.google.android.gms inside the stacktrace, as we will need to check them later. We need to check those two since the first one presents many references called zza.
Now, we are going to locate the part of the code we need to "destroy" in order to locate the class that calls those functions. This is needed because, as explained, there are many methods called the same way in our code, but with different headers. If the method only appeared once, like in Gmail example, we don't need to do this. But, since it does,
Navigate to the folder that contains the mentioned files. According to the stacktrace, the route should be something like smali/com/google/android/gms/common/internal. With an advanced text editor, like Atom, Notepad++, Kate, etc., open the file mentioned in the second line that contains com.google.android.gms inside the stacktrace. In this case, y.smali.
The part that goes after the last dot inside the stacktrace lines are called methods. Inside the file you've opened, try to search for the method that is referenced in the first line in the stacktrace that mentions com.google.android.gms, which in this case is "zza".
You'll see that, right after the method we've searched for, there is another class mentioned in it, between parenthesis (in fact, it's the header of the method we're trying to find). Copy everything until you see the semicolon that means the end of it. In this case looks like this
Code:
Lcom/google/android/gms/common/internal/zzt;Lcom/google/android/gms/common/internal/GetServiceRequest
Now open the file mentioned in the first line that contains com.google.android.gms inside the stacktrace, which in this case is p.smali.
Inside the file you've just opened, try to search for the method header that you just copied from the other class. There should appear 1 single result.
Once you're finally in this method, you have to "destroy" it. What I did was just changing a const/4 value I found in it from 0x0 to 0x1, and it was more than enough to make my phone reject the class (which is what we're looking for). In case there aren't any const/4 values, you can also cut and paste some portions of the code to a new text document and that will also make our phone reject the class (but, if you do so, please be careful not to lose them and remember the exact spot they were located, since we will need to put them back later).
Using Apktool, build the application, sign it and install it in your device. If Apktool rejects to build the code, try changing other parts as explained in the point above.
Grab a new logcat of the crash. It will look something like this.
Code:
05-18 22:38:13.749 13541 13541 E AndroidRuntime: java.lang.VerifyError: Rejecting class com.google.android.gms.common.internal.p because it failed compile-time verification (declaration of 'com.google.android.gms.common.internal.p' appears in /data/app/com.google.android.apps.nexuslauncher-1/base.apk)
05-18 22:38:13.749 13541 13541 E AndroidRuntime: at [B]com.google.android.gms.common.internal.zzu$zza.zzha[/B](Unknown Source)
05-18 22:38:13.749 13541 13541 E AndroidRuntime: at com.google.android.gms.common.internal.f.onServiceConnected(Unknown Source)
05-18 22:38:13.749 13541 13541 E AndroidRuntime: at com.google.android.gms.common.internal.A.onServiceConnected(Unknown Source)
05-18 22:38:13.749 13541 13541 E AndroidRuntime: at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1224)
05-18 22:38:13.749 13541 13541 E AndroidRuntime: at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1241)
05-18 22:38:13.749 13541 13541 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:739)
05-18 22:38:13.749 13541 13541 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95)
05-18 22:38:13.749 13541 13541 E AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
05-18 22:38:13.749 13541 13541 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5461)
05-18 22:38:13.749 13541 13541 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
05-18 22:38:13.749 13541 13541 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
05-18 22:38:13.749 13541 13541 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-18 22:38:13.751 2070 3026 W ActivityManager: Force finishing activity com.google.android.apps.nexuslauncher/.NexusLauncherActivity
Pay attention to the first line of the stacktrace that mentions com.google.android.gms. Thankfully, there was another class/method just before onServiceConnected, so we are lucky to edit it.
Navigate to the folder in which the file is located. In this case, it'll look something like smali/com/google/android/gms/common/internal. Now, open the file mentioned in the stacktrace, which in this case is zzu$zza.smali (as you can see in this example, it can contain a dollar symbol in it).
Find the method referenced in the stacktrace (which could be the first method in the entire class, or even the only one). In my case, it's "zzha".
Inside the method, there are conditional tags, that look something like :cond_X, where X is a number. Find the conditional tag that, right below it, has just a return-object v0, in case it exist. In my case it exists, and it's :cond_1. Inside the method, you will see that there are sentences like if-eqz and if-nez, which make the application jump inside to a :cond_X tag if a variable contains zero in the first case, of if it doesn't contain a zero, like in the second case. Find the if-eqz or if-nez sentence that involves jumping to the :cond_X tag you just located. In my case the line looks something like this
Code:
if-eqz p0, :cond_1
Now that the line is located, change the kind of operation it does. If it's doing a if-eqz like in my case, change it to a if-nez. If it's doing a if-nez, change it to if-eqz. This will make the application jump and exit the code
(As another solution, you can remove the entire method, and just leave the generation of const/4 v0, 0x0 and the return-object v0. I'm not sure if, at this point, it will reject the class or not, but it can also be a solution if the above doesn't work).
Undo the changes you did before you recompiled the code, so you need to go back to the class you "destroyed" and put it back just as it was before (if you didn't close the text editor before, you can always Control+Z it )
Recompile, sign and try if it works. I hope it does
The workspace with the changes made is attached as reference.

Android Messages 2.2.075 (4023518-30.phone)​​
​
If you didn't understand quite well the procedure for the Pixel Launcher, here's a similar one.
Tamper the app and grab a log as explained for the Pixel Launcher, above.
Code:
06-01 11:12:09.077 17538 17538 E AndroidRuntime: java.lang.SecurityException: Signature check failed for com.google.android.apps.messaging
06-01 11:12:09.077 17538 17538 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1620)
06-01 11:12:09.077 17538 17538 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1573)
06-01 11:12:09.077 17538 17538 E AndroidRuntime: at [B]com.google.android.gms.common.internal.zzv$zza$a.zza[/B](Unknown Source)
06-01 11:12:09.077 17538 17538 E AndroidRuntime: at [B]com.google.android.gms.common.internal.zzf.a[/B](Unknown Source)
06-01 11:12:09.077 17538 17538 E AndroidRuntime: at com.google.android.gms.internal.cn$c.a(Unknown Source)
06-01 11:12:09.077 17538 17538 E AndroidRuntime: at com.google.android.gms.internal.cn$f.run(Unknown Source)
06-01 11:12:09.077 17538 17538 E AndroidRuntime: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
06-01 11:12:09.077 17538 17538 E AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-01 11:12:09.077 17538 17538 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
06-01 11:12:09.077 17538 17538 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
06-01 11:12:09.077 17538 17538 E AndroidRuntime: at com.google.android.gms.internal.o.run(Unknown Source)
If you have a glance at the first class mentioned that contains com.google.android.gms in it's name, you will see, like in the Pixel launcher, the first class that appears in the stacktrace presents various methods named the same way, in this case there are only two but we have no idea which one is used, so we will find it via the second class mentioned in the stacktrace.
Just like for the Pixel Launcher, we are going to locate the method we need to destroy by using the second file that appears in the stacktrace.
Navigate to the folder that contains the mentioned files. According to the stacktrace, the route should be something like smali/com/google/android/gms/common/internal. With an advanced text editor, like Atom, Notepad++, Kate, etc., open the file mentioned in the second line that contains com.google.android.gms inside the stacktrace. In this case, zzf.smali.
The part that goes after the last dot inside the stacktrace lines are called methods. Inside the file you've opened, try to search for the method that is referenced in the first line in the stacktrace that mentions com.google.android.gms, which in this case is "zzv".
However, unlike in the Pixel Launcher example, there are many references to zzv in our class, so we need to find the ones that are calling to zza (if you remember, the class is called "zzv$zza$a", so we will take advantage of that).
Now, try to find the occurrence in the search that has in the same line both "zzv" and "zza". You'll see they are joined by a ";->", so to short things out, you can search for "zzv;->zza".
You'll see that, right after the method we've searched for, there is another class mentioned in it, between parenthesis (in fact, it's the header of the method we're trying to find). Copy everything until you see the semicolon that means the end of it. In this case looks like this
Code:
Lcom/google/android/gms/common/internal/zzu;Lcom/google/android/gms/common/internal/r
Now open the file mentioned in the first line that contains com.google.android.gms inside the stacktrace, which in this case is zzv$zza$a.smali.
Inside the file you've just opened, try to search for the method header that you just copied from the other class. There should appear 1 single result.
Once you're finally in this method, you have to "destroy" it. In this case, the file fqn.smali, method zza(Lcom/google/android/gms/common/internal/zzu;Lcom/google/android/gms/common/internal/r;). Since there aren't any const/4 values, you can also cut and paste some portions of the code to a new text document and that will also make our phone reject the class (but, if you do so, please be careful not to lose them and remember the exact spot they were located, since we will need to put them back later).
Using Apktool, build the application, sign it and install it in your device. If Apktool rejects to build the code, try changing other parts as explained in the point above.
Grab a new logcat of the crash. It will look something like this.
Code:
06-01 11:17:25.822 18229 18229 E AndroidRuntime: java.lang.VerifyError: Rejecting class com.google.android.gms.common.internal.zzv$zza$a because it failed compile-time verification (declaration of 'com.google.android.gms.common.internal.zzv$zza$a' appears in /data/app/com.google.android.apps.messaging-2/base.apk)
06-01 11:17:25.822 18229 18229 E AndroidRuntime: at [B]com.google.android.gms.common.internal.zzv$zza.zzdf[/B](Unknown Source)
06-01 11:17:25.822 18229 18229 E AndroidRuntime: at com.google.android.gms.common.internal.zzf$g.onServiceConnected(Unknown Source)
06-01 11:17:25.822 18229 18229 E AndroidRuntime: at com.google.android.gms.common.internal.w$b$a.onServiceConnected(Unknown Source)
06-01 11:17:25.822 18229 18229 E AndroidRuntime: at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1224)
06-01 11:17:25.822 18229 18229 E AndroidRuntime: at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1241)
06-01 11:17:25.822 18229 18229 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:739)
06-01 11:17:25.822 18229 18229 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95)
06-01 11:17:25.822 18229 18229 E AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
06-01 11:17:25.822 18229 18229 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5461)
06-01 11:17:25.822 18229 18229 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
06-01 11:17:25.822 18229 18229 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
06-01 11:17:25.822 18229 18229 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Pay attention to the first line of the stacktrace that mentions com.google.android.gms. Thankfully, and just like for the Pixel Launcher, there was another class/method just before onServiceConnected, so we are lucky to edit it. Rest of the steps proceed just as the Pixel Launcher.
Navigate to the folder in which the file is located. In this case, it'll look something like smali/com/google/android/gms/common/internal. Now, open the file mentioned in the stacktrace, which in this case is zzv$zza.smali.
Find the method referenced in the stacktrace (which could be the first method in the entire class, or even the only one). In my case, it's "zzdf".
Inside the method, there are conditional tags, that look something like :cond_X, where X is a number. Find the conditional tag that, right below it, has just a return-object v0, in case it exist. In my case it exists, and it's :cond_1. Inside the method, you will see that there are sentences like if-eqz and if-nez, which make the application jump inside to a :cond_X tag if a variable contains zero in the first case, of if it doesn't contain a zero, like in the second case. Find the if-eqz or if-nez sentence that involves jumping to the :cond_X tag you just located. In my case the line looks something like this
Code:
if-eqz p0, :cond_1
Now that the line is located, change the kind of operation it does. If it's doing a if-eqz like in my case, change it to a if-nez. If it's doing a if-nez, change it to if-eqz. This will make the application jump and exit the code
(As another solution, you can remove the entire method, and just leave the generation of const/4 v0, 0x0 and the return-object v0. I'm not sure if, at this point, it will reject the class or not, but it can also be a solution if the above doesn't work).
Undo the changes you did before you recompiled the code, so you need to go back to the class you "destroyed" and put it back just as it was before (if you didn't close the text editor before, you can always Control+Z it )
Recompile, sign and try if it works. I hope it does
The workspace with the changes made is attached as reference.

Gmail 7.5.7.156101332.release​​
​
The procedure was very similar to the Pixel Launcher one, but some small parts changed.
Keep in mind, you won't be able to log-in with your Google account, but you can still use it for IMAP/POP3, Exchange and ActiveSync accounts.
Tamper the app and grab a log as explained for the Pixel Launcher.
Code:
05-18 23:47:35.127 14275 14275 E AndroidRuntime: java.lang.SecurityException: Signature check failed for com.google.android.gm
05-18 23:47:35.127 14275 14275 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1620)
05-18 23:47:35.127 14275 14275 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1573)
05-18 23:47:35.127 14275 14275 E AndroidRuntime: at [B]fqn.a[/B](Unknown Source)
05-18 23:47:35.127 14275 14275 E AndroidRuntime: at fox.a(Unknown Source)
05-18 23:47:35.127 14275 14275 E AndroidRuntime: at gpd.a(Unknown Source)
05-18 23:47:35.127 14275 14275 E AndroidRuntime: at gph.run(Unknown Source)
05-18 23:47:35.127 14275 14275 E AndroidRuntime: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
05-18 23:47:35.127 14275 14275 E AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-18 23:47:35.127 14275 14275 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
05-18 23:47:35.127 14275 14275 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
05-18 23:47:35.127 14275 14275 E AndroidRuntime: at gah.run(Unknown Source)
05-18 23:47:35.127 14275 14275 E AndroidRuntime: at java.lang.Thread.run(Thread.java:818)
05-18 23:47:35.128 2070 2951 W ActivityManager: Force finishing activity com.google.android.gm/.welcome.SetupAddressesActivity
05-18 23:47:35.132 2070 2951 W ActivityManager: Force finishing activity com.google.android.gm/.welcome.WelcomeTourActivity
As you can see, the files are not in folders but left outside, in the root of the Smali folder, which probably happens due to a missing framework in Apktool. That however, won't affect the rest of the tutorial.
Since the very first file that appears in logcat's crash only contains 1 single method, we don't need to locate it like we did on the Pixel Launcher, so we can go to it directly.
Open the file mentioned in the stacktrace and then, "destroy" the method that is referenced in it. In this case, the file fqn.smali, method a. (This time, there was no const/4 to change but removing the two first invoke-static and move-result-object lines totally did the trick for me).
Recompile, sign and install. Grab a log and check the first line where it crashes.
Code:
05-18 23:49:59.857 14406 14406 E AndroidRuntime: java.lang.VerifyError: Rejecting class fqn because it failed compile-time verification (declaration of 'fqn' appears in /data/app/com.google.android.gm-1/base.apk)
05-18 23:49:59.857 14406 14406 E AndroidRuntime: at [B]fpf.onServiceConnected[/B](Unknown Source)
05-18 23:49:59.857 14406 14406 E AndroidRuntime: at fpz.onServiceConnected(Unknown Source)
05-18 23:49:59.857 14406 14406 E AndroidRuntime: at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1224)
05-18 23:49:59.857 14406 14406 E AndroidRuntime: at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1241)
05-18 23:49:59.857 14406 14406 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:739)
05-18 23:49:59.857 14406 14406 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95)
05-18 23:49:59.857 14406 14406 E AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
05-18 23:49:59.857 14406 14406 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5461)
05-18 23:49:59.857 14406 14406 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
05-18 23:49:59.857 14406 14406 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
05-18 23:49:59.857 14406 14406 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
As you can see, unfortunately there is no class preceding the onServiceConnected methods, like there was in the Pixel Launcher, so we need to edit them directly.
Open the first file mentioned in the stacktrace, and locate the onServiceConnected method.
Inside it, we need to find where it calls the class we "destroyed" before, which in this case is named "fqn".
Check the name of the conditional tag :cond_X that appears right above. In this case, it is under :cond_2.
Find all the if-eqz and if-nez sentences that do redirect to the :cond_X you've found, and invert them, from if-eqz to if-nez, and from if-nez to if-eqz.
If the class name appears several times, repeat this for all the conditional tags that contain it.
Undo the changes you did to the "destroyed" class (in this case, fqn.smali).
Recompile, sign and try if it works. I hope it does
The workspace with the changes made is attached as reference.

YouTube 12.19.56-1219563300​​
​
Another one, very similar to Gmail example above.
Keep in mind, you won't be able to log-in with your Google account, but you can still play back any videos you want.
Tamper the app and grab a log as explained for the Pixel Launcher.
Code:
06-01 10:56:51.180 16805 16805 E AndroidRuntime: java.lang.SecurityException: Signature check failed for com.google.android.youtube
06-01 10:56:51.180 16805 16805 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1620)
06-01 10:56:51.180 16805 16805 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1573)
06-01 10:56:51.180 16805 16805 E AndroidRuntime: at [B]jsb.a[/B](Unknown Source)
06-01 10:56:51.180 16805 16805 E AndroidRuntime: at jqo.a(Unknown Source)
06-01 10:56:51.180 16805 16805 E AndroidRuntime: at kgs.a(Unknown Source)
06-01 10:56:51.180 16805 16805 E AndroidRuntime: at kgw.run(Unknown Source)
06-01 10:56:51.180 16805 16805 E AndroidRuntime: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
06-01 10:56:51.180 16805 16805 E AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-01 10:56:51.180 16805 16805 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
06-01 10:56:51.180 16805 16805 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
06-01 10:56:51.180 16805 16805 E AndroidRuntime: at kiu.run(Unknown Source)
06-01 10:56:51.180 16805 16805 E AndroidRuntime: at java.lang.Thread.run(Thread.java:818)
06-01 10:56:51.181 6035 6346 W ActivityManager: Force finishing activity com.google.android.youtube/com.google.android.apps.youtube.app.WatchWhileActivity
As you can see, once again the files are not in folders but left outside, in the root of the Smali folder, which probably happens due to a missing framework in Apktool.
Since the very first file that appears in logcat's crash only contains 1 single method, we don't need to locate it like we did on the Pixel Launcher, so we can go to it directly.
Open the file mentioned in the stacktrace and then, "destroy" the method that is referenced in it. In this case, the file jsb.smali, method a. (Once again, there was no const/4 to change but removing the two first invoke-static and move-result-object lines totally did the trick for me).
Recompile, sign and install. Grab a log and check the first line where it crashes.
Code:
06-01 11:00:57.877 16985 16985 E AndroidRuntime: java.lang.VerifyError: Rejecting class jsb because it failed compile-time verification (declaration of 'jsb' appears in /data/app/com.google.android.youtube-2/base.apk)
06-01 11:00:57.877 16985 16985 E AndroidRuntime: at [B]jqw.onServiceConnected[/B](Unknown Source)
06-01 11:00:57.877 16985 16985 E AndroidRuntime: at jrq.onServiceConnected(Unknown Source)
06-01 11:00:57.877 16985 16985 E AndroidRuntime: at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1224)
06-01 11:00:57.877 16985 16985 E AndroidRuntime: at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1241)
06-01 11:00:57.877 16985 16985 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:739)
06-01 11:00:57.877 16985 16985 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95)
06-01 11:00:57.877 16985 16985 E AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
06-01 11:00:57.877 16985 16985 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5461)
06-01 11:00:57.877 16985 16985 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
06-01 11:00:57.877 16985 16985 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
06-01 11:00:57.877 16985 16985 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
06-01 11:00:57.878 6035 8017 W ActivityManager: Force finishing activity com.google.android.youtube/com.google.android.apps.youtube.app.WatchWhileActivity
As you can see, once again there is no class preceding the onServiceConnected methods, like there was in the Pixel Launcher, so we need to edit them directly.
Open the first file mentioned in the stacktrace, "jqw.smali", and locate the onServiceConnected method.
Inside it, we need to find where it calls the class we "destroyed" before, which in this case is named "jsb".
Check the name of the conditional tag :cond_X that appears right above. In this case, it is under :cond_2.
Find all the if-eqz and if-nez sentences that do redirect to the :cond_X you've found, and invert them, from if-eqz to if-nez, and from if-nez to if-eqz.
If the class name appears several times, repeat this for all the conditional tags that contain it.
Undo the changes you did to the "destroyed" class (in this case, jsb.smali).
Recompile, sign and try if it works. I hope it does
The workspace with the changes made is attached here as reference.

After over a year, some people said they found my tutorial useful (up to today's APKs even) and that I should consider on leaving it opened for any kind of doubt or comment someone would like to say here. So I'll keep it opened.

Hello, do you have a solution to get around the waze signature?
Thank you

Related

[Q] Market FC after system restore

When I got the Nexus S (9023) I went to root it, put on Clockwork recovery and immediately made a backup. Meanwhile I played with different custom roms and today I went back to the original backup. All seems fine but the market does not work
Any idea what happened and how to get it back?
Code:
--------- beginning of /dev/log/system
05-27 06:23:11.792 2322 2322 E AndroidRuntime: FATAL EXCEPTION: main
05-27 06:23:11.792 2322 2322 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.vending/com.android.vending.TosActivity}: java.lang.NullPointerException
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at android.os.Looper.loop(Looper.java:130)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:3683)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:507)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: Caused by: java.lang.NullPointerException
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at com.android.vending.TosActivity.onCreate(TosActivity.java:47)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
05-27 06:23:11.792 2322 2322 E AndroidRuntime: ... 11 more
05-27 06:23:11.796 106 1905 W ActivityManager: Force finishing activity com.android.vending/.TosActivity
05-27 06:23:11.800 106 1905 W ActivityManager: Force finishing activity com.android.vending/.AssetBrowserActivity
05-27 06:23:12.300 106 119 W ActivityManager: Activity pause timeout for HistoryRecord{40875c60 com.android.vending/.TosActivity}
I had a similar problem today after restoring just "system". Doing a Full restore resolved it.
Phew! got it solved without going the wipe-and-reinstall route. Pushing a current vendor.apk on the phone did not help but then I figured that the latest (CM7) gapps package also has a vendor.apk and this is not the very latest version. So I installed this through adb and this indeed downgraded the market and it could be started again!
Problem solved. Althoug I'm still curious what might have cause the broken market in the backup

MIUI 12 keeps restarting

Hi Guys,
Friend asked me for help with his Mi10T Pro.
With no reason phone started to restart MIUI (12) after couple seconds (~10-15secs.) from turning it on.
I got home screen and suddenly it shows "5G MIUI" logo and launcher starts again.
Is there any way to recover the data? I tried using ADB pull - it lets me download around ~100 photos until connections drops.
Maybe there is a way to hold this restarts and let ADB to copy the data? I managed to collect some crash logs.
Any help will be much appreciated. Thx in advance!
09-08 10:49:05.937 1337 1337 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 1337 (init), pid 1337 (init)
09-08 10:49:06.006 1337 1337 F libc : crash_dump helper failed to exec
09-08 10:50:15.442 2041 3482 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: AsyncTask #2
09-08 10:50:15.442 2041 3482 E AndroidRuntime: android.util.proto.WireTypeMismatchException: Current wire type Fixed32 does not match expected wire type Length Delimited at offset 0x1
09-08 10:50:15.442 2041 3482 E AndroidRuntime: mFieldNumber : 0xc
09-08 10:50:15.442 2041 3482 E AndroidRuntime: mWireType : 0x5
09-08 10:50:15.442 2041 3482 E AndroidRuntime: mState : 0x1
09-08 10:50:15.442 2041 3482 E AndroidRuntime: mDiscardedBytes : 0x0
09-08 10:50:15.442 2041 3482 E AndroidRuntime: mOffset : 0x1
09-08 10:50:15.442 2041 3482 E AndroidRuntime: mExpectedObjectTokenStack : null
09-08 10:50:15.442 2041 3482 E AndroidRuntime: mDepth : 0xffffffff
09-08 10:50:15.442 2041 3482 E AndroidRuntime: mBuffer : [[email protected]
09-08 10:50:15.442 2041 3482 E AndroidRuntime: mBufferSize : 0x2000
09-08 10:50:15.442 2041 3482 E AndroidRuntime: mEnd : 0x665
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at android.util.proto.ProtoInputStream.assertWireType(ProtoInputStream.java:929)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at android.util.proto.ProtoInputStream.start(ProtoInputStream.java:494)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at com.android.server.usage.UsageStatsProto.loadCountAndTime(UsageStatsProto.java:157)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at com.android.server.usage.UsageStatsProto.read(UsageStatsProto.java:537)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:887)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:859)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:850)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.queryUsageStats(UsageStatsDatabase.java:659)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at com.android.server.usage.UserUsageStatsService.queryStats(UserUsageStatsService.java:350)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at com.android.server.usage.UserUsageStatsService.queryUsageStats(UserUsageStatsService.java:377)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at com.android.server.usage.UsageStatsService.queryUsageStats(UsageStatsService.java:631)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at com.android.server.usage.UsageStatsService$LocalService.queryUsageStatsForUser(UsageStatsService.java:1810)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy.getUnfulfilledRequests(CacheQuotaStrategy.java:178)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy.access$200(CacheQuotaStrategy.java:74)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy$1$1.run(CacheQuotaStrategy.java:136)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
09-08 10:50:15.442 2041 3482 E AndroidRuntime: at java.lang.Thread.run(Thread.java:919)
09-08 10:50:15.569 3227 3227 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:50:15.569 3227 3227 E AndroidRuntime: Process: com.google.android.gms.persistent, PID: 3227
09-08 10:50:15.569 3227 3227 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:15.569 4269 6891 E AndroidRuntime: FATAL EXCEPTION: [com.google.android.gms.chimera.GmsIntentOperationService$ChimeraService-Executor] idle
09-08 10:50:15.569 4269 6891 E AndroidRuntime: Process: com.google.android.gms, PID: 4269
09-08 10:50:15.569 4269 6891 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:15.575 4269 7662 E AndroidRuntime: FATAL EXCEPTION: [com.google.android.gms.chimera.GmsIntentOperationService$ChimeraService-Executor] idle
09-08 10:50:15.575 4269 7662 E AndroidRuntime: Process: com.google.android.gms, PID: 4269
09-08 10:50:15.575 4269 7662 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:15.587 4269 7765 E AndroidRuntime: FATAL EXCEPTION: [com.google.android.gms.chimera.GmsIntentOperationService$ChimeraService-Executor] idle
09-08 10:50:15.587 4269 7765 E AndroidRuntime: Process: com.google.android.gms, PID: 4269
09-08 10:50:15.587 4269 7765 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:15.591 4269 7566 E AndroidRuntime: FATAL EXCEPTION: [com.google.android.gms.chimera.GmsIntentOperationService$ChimeraService-Executor] idle
09-08 10:50:15.591 4269 7566 E AndroidRuntime: Process: com.google.android.gms, PID: 4269
09-08 10:50:15.591 4269 7566 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:15.604 2751 3175 E AndroidRuntime: FATAL EXCEPTION: ToggleManager
09-08 10:50:15.604 2751 3175 E AndroidRuntime: Process: com.android.systemui, PID: 2751
09-08 10:50:15.604 2751 3175 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:15.613 4313 7779 E AndroidRuntime: FATAL EXCEPTION: GoogleApiClient
09-08 10:50:15.613 4313 7779 E AndroidRuntime: Process: com.google.android.googlequicksearchbox:search, PID: 4313
09-08 10:50:15.613 4313 7779 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:15.621 3227 7684 E AndroidRuntime: FATAL EXCEPTION: lowpool[8]
09-08 10:50:15.621 3227 7684 E AndroidRuntime: Process: com.google.android.gms.persistent, PID: 3227
09-08 10:50:15.621 3227 7684 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:15.638 7442 7514 E AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
09-08 10:50:15.638 7442 7514 E AndroidRuntime: Process: com.google.android.gm, PID: 7442
09-08 10:50:15.638 7442 7514 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:50.103 7956 9254 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: AsyncTask #2
09-08 10:50:50.103 7956 9254 E AndroidRuntime: android.util.proto.WireTypeMismatchException: Current wire type Fixed32 does not match expected wire type Length Delimited at offset 0x1
09-08 10:50:50.103 7956 9254 E AndroidRuntime: mFieldNumber : 0xc
09-08 10:50:50.103 7956 9254 E AndroidRuntime: mWireType : 0x5
09-08 10:50:50.103 7956 9254 E AndroidRuntime: mState : 0x1
09-08 10:50:50.103 7956 9254 E AndroidRuntime: mDiscardedBytes : 0x0
09-08 10:50:50.103 7956 9254 E AndroidRuntime: mOffset : 0x1
09-08 10:50:50.103 7956 9254 E AndroidRuntime: mExpectedObjectTokenStack : null
09-08 10:50:50.103 7956 9254 E AndroidRuntime: mDepth : 0xffffffff
09-08 10:50:50.103 7956 9254 E AndroidRuntime: mBuffer : [[email protected]
09-08 10:50:50.103 7956 9254 E AndroidRuntime: mBufferSize : 0x2000
09-08 10:50:50.103 7956 9254 E AndroidRuntime: mEnd : 0x665
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at android.util.proto.ProtoInputStream.assertWireType(ProtoInputStream.java:929)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at android.util.proto.ProtoInputStream.start(ProtoInputStream.java:494)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at com.android.server.usage.UsageStatsProto.loadCountAndTime(UsageStatsProto.java:157)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at com.android.server.usage.UsageStatsProto.read(UsageStatsProto.java:537)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:887)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:859)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:850)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.queryUsageStats(UsageStatsDatabase.java:659)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at com.android.server.usage.UserUsageStatsService.queryStats(UserUsageStatsService.java:350)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at com.android.server.usage.UserUsageStatsService.queryUsageStats(UserUsageStatsService.java:377)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at com.android.server.usage.UsageStatsService.queryUsageStats(UsageStatsService.java:631)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at com.android.server.usage.UsageStatsService$LocalService.queryUsageStatsForUser(UsageStatsService.java:1810)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy.getUnfulfilledRequests(CacheQuotaStrategy.java:178)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy.access$200(CacheQuotaStrategy.java:74)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy$1$1.run(CacheQuotaStrategy.java:136)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
09-08 10:50:50.103 7956 9254 E AndroidRuntime: at java.lang.Thread.run(Thread.java:919)
09-08 10:50:50.224 9987 9987 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:50:50.224 9987 9987 E AndroidRuntime: Process: com.google.android.googlequicksearchbox:search, PID: 9987
09-08 10:50:50.224 9987 9987 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:50.234 13966 13966 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:50:50.234 13966 13966 E AndroidRuntime: Process: com.miui.core, PID: 13966
09-08 10:50:50.234 13966 13966 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:50.239 9928 12978 E AndroidRuntime: FATAL EXCEPTION: [com.google.android.gms.chimera.GmsIntentOperationService$ChimeraService-Executor] idle
09-08 10:50:50.239 9928 12978 E AndroidRuntime: Process: com.google.android.gms, PID: 9928
09-08 10:50:50.239 9928 12978 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:50.241 8825 8825 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:50:50.241 8825 8825 E AndroidRuntime: Process: com.google.android.gms.persistent, PID: 8825
09-08 10:50:50.241 8825 8825 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:50.243 13860 13860 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:50:50.243 13860 13860 E AndroidRuntime: Process: com.miui.cloudservice, PID: 13860
09-08 10:50:50.243 13860 13860 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:50.254 13910 13910 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:50:50.254 13910 13910 E AndroidRuntime: Process: com.xiaomi.simactivate.service, PID: 13910
09-08 10:50:50.254 13910 13910 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:50:50.255 8825 8943 E AndroidRuntime: FATAL EXCEPTION: lowpool[0]
09-08 10:50:50.255 8825 8943 E AndroidRuntime: Process: com.google.android.gms.persistent, PID: 8825
09-08 10:50:50.255 8825 8943 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:51:23.411 14173 19696 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: AsyncTask #6
09-08 10:51:23.411 14173 19696 E AndroidRuntime: android.util.proto.WireTypeMismatchException: Current wire type Fixed32 does not match expected wire type Length Delimited at offset 0x1
09-08 10:51:23.411 14173 19696 E AndroidRuntime: mFieldNumber : 0xc
09-08 10:51:23.411 14173 19696 E AndroidRuntime: mWireType : 0x5
09-08 10:51:23.411 14173 19696 E AndroidRuntime: mState : 0x1
09-08 10:51:23.411 14173 19696 E AndroidRuntime: mDiscardedBytes : 0x0
09-08 10:51:23.411 14173 19696 E AndroidRuntime: mOffset : 0x1
09-08 10:51:23.411 14173 19696 E AndroidRuntime: mExpectedObjectTokenStack : null
09-08 10:51:23.411 14173 19696 E AndroidRuntime: mDepth : 0xffffffff
09-08 10:51:23.411 14173 19696 E AndroidRuntime: mBuffer : [[email protected]
09-08 10:51:23.411 14173 19696 E AndroidRuntime: mBufferSize : 0x2000
09-08 10:51:23.411 14173 19696 E AndroidRuntime: mEnd : 0x665
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at android.util.proto.ProtoInputStream.assertWireType(ProtoInputStream.java:929)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at android.util.proto.ProtoInputStream.start(ProtoInputStream.java:494)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at com.android.server.usage.UsageStatsProto.loadCountAndTime(UsageStatsProto.java:157)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at com.android.server.usage.UsageStatsProto.read(UsageStatsProto.java:537)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:887)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:859)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:850)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.queryUsageStats(UsageStatsDatabase.java:659)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at com.android.server.usage.UserUsageStatsService.queryStats(UserUsageStatsService.java:350)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at com.android.server.usage.UserUsageStatsService.queryUsageStats(UserUsageStatsService.java:377)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at com.android.server.usage.UsageStatsService.queryUsageStats(UsageStatsService.java:631)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at com.android.server.usage.UsageStatsService$LocalService.queryUsageStatsForUser(UsageStatsService.java:1810)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy.getUnfulfilledRequests(CacheQuotaStrategy.java:178)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy.access$200(CacheQuotaStrategy.java:74)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy$1$1.run(CacheQuotaStrategy.java:136)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
09-08 10:51:23.411 14173 19696 E AndroidRuntime: at java.lang.Thread.run(Thread.java:919)
09-08 10:51:23.524 15040 15040 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:51:23.524 15040 15040 E AndroidRuntime: Process: com.google.android.gms.persistent, PID: 15040
09-08 10:51:23.524 15040 15040 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:51:56.668 20329 21438 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: AsyncTask #2
09-08 10:51:56.668 20329 21438 E AndroidRuntime: android.util.proto.WireTypeMismatchException: Current wire type Fixed32 does not match expected wire type Length Delimited at offset 0x1
09-08 10:51:56.668 20329 21438 E AndroidRuntime: mFieldNumber : 0xc
09-08 10:51:56.668 20329 21438 E AndroidRuntime: mWireType : 0x5
09-08 10:51:56.668 20329 21438 E AndroidRuntime: mState : 0x1
09-08 10:51:56.668 20329 21438 E AndroidRuntime: mDiscardedBytes : 0x0
09-08 10:51:56.668 20329 21438 E AndroidRuntime: mOffset : 0x1
09-08 10:51:56.668 20329 21438 E AndroidRuntime: mExpectedObjectTokenStack : null
09-08 10:51:56.668 20329 21438 E AndroidRuntime: mDepth : 0xffffffff
09-08 10:51:56.668 20329 21438 E AndroidRuntime: mBuffer : [[email protected]
09-08 10:51:56.668 20329 21438 E AndroidRuntime: mBufferSize : 0x2000
09-08 10:51:56.668 20329 21438 E AndroidRuntime: mEnd : 0x665
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at android.util.proto.ProtoInputStream.assertWireType(ProtoInputStream.java:929)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at android.util.proto.ProtoInputStream.start(ProtoInputStream.java:494)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at com.android.server.usage.UsageStatsProto.loadCountAndTime(UsageStatsProto.java:157)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at com.android.server.usage.UsageStatsProto.read(UsageStatsProto.java:537)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:887)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:859)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:850)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.queryUsageStats(UsageStatsDatabase.java:659)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at com.android.server.usage.UserUsageStatsService.queryStats(UserUsageStatsService.java:350)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at com.android.server.usage.UserUsageStatsService.queryUsageStats(UserUsageStatsService.java:377)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at com.android.server.usage.UsageStatsService.queryUsageStats(UsageStatsService.java:631)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at com.android.server.usage.UsageStatsService$LocalService.queryUsageStatsForUser(UsageStatsService.java:1810)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy.getUnfulfilledRequests(CacheQuotaStrategy.java:178)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy.access$200(CacheQuotaStrategy.java:74)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy$1$1.run(CacheQuotaStrategy.java:136)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
09-08 10:51:56.668 20329 21438 E AndroidRuntime: at java.lang.Thread.run(Thread.java:919)
09-08 10:51:56.752 26150 26150 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:51:56.752 26150 26150 E AndroidRuntime: Process: com.miui.cloudservice, PID: 26150
09-08 10:51:56.752 26150 26150 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:51:56.753 22160 22160 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:51:56.753 22160 22160 E AndroidRuntime: Process: com.google.android.googlequicksearchbox:search, PID: 22160
09-08 10:51:56.753 22160 22160 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:51:56.773 21201 21201 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:51:56.773 21201 21201 E AndroidRuntime: Process: com.google.android.gms.persistent, PID: 21201
09-08 10:51:56.773 21201 21201 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:51:56.775 26037 26037 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:51:56.775 26037 26037 E AndroidRuntime: Process: com.miui.bugreport, PID: 26037
09-08 10:51:56.775 26037 26037 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:51:56.791 23207 23207 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:51:56.791 23207 23207 E AndroidRuntime: Process: com.android.vending, PID: 23207
09-08 10:51:56.791 23207 23207 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:51:56.796 23207 23254 E AndroidRuntime: FATAL EXCEPTION: alyz
09-08 10:51:56.796 23207 23254 E AndroidRuntime: Process: com.android.vending, PID: 23207
09-08 10:51:56.796 23207 23254 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:52:30.474 26344 26779 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: AsyncTask #1
09-08 10:52:30.474 26344 26779 E AndroidRuntime: android.util.proto.WireTypeMismatchException: Current wire type Fixed32 does not match expected wire type Length Delimited at offset 0x1
09-08 10:52:30.474 26344 26779 E AndroidRuntime: mFieldNumber : 0xc
09-08 10:52:30.474 26344 26779 E AndroidRuntime: mWireType : 0x5
09-08 10:52:30.474 26344 26779 E AndroidRuntime: mState : 0x1
09-08 10:52:30.474 26344 26779 E AndroidRuntime: mDiscardedBytes : 0x0
09-08 10:52:30.474 26344 26779 E AndroidRuntime: mOffset : 0x1
09-08 10:52:30.474 26344 26779 E AndroidRuntime: mExpectedObjectTokenStack : null
09-08 10:52:30.474 26344 26779 E AndroidRuntime: mDepth : 0xffffffff
09-08 10:52:30.474 26344 26779 E AndroidRuntime: mBuffer : [[email protected]
09-08 10:52:30.474 26344 26779 E AndroidRuntime: mBufferSize : 0x2000
09-08 10:52:30.474 26344 26779 E AndroidRuntime: mEnd : 0x665
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at android.util.proto.ProtoInputStream.assertWireType(ProtoInputStream.java:929)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at android.util.proto.ProtoInputStream.start(ProtoInputStream.java:494)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at com.android.server.usage.UsageStatsProto.loadCountAndTime(UsageStatsProto.java:157)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at com.android.server.usage.UsageStatsProto.read(UsageStatsProto.java:537)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:887)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:859)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.readLocked(UsageStatsDatabase.java:850)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at com.android.server.usage.UsageStatsDatabase.queryUsageStats(UsageStatsDatabase.java:659)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at com.android.server.usage.UserUsageStatsService.queryStats(UserUsageStatsService.java:350)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at com.android.server.usage.UserUsageStatsService.queryUsageStats(UserUsageStatsService.java:377)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at com.android.server.usage.UsageStatsService.queryUsageStats(UsageStatsService.java:631)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at com.android.server.usage.UsageStatsService$LocalService.queryUsageStatsForUser(UsageStatsService.java:1810)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy.getUnfulfilledRequests(CacheQuotaStrategy.java:178)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy.access$200(CacheQuotaStrategy.java:74)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at com.android.server.storage.CacheQuotaStrategy$1$1.run(CacheQuotaStrategy.java:136)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
09-08 10:52:30.474 26344 26779 E AndroidRuntime: at java.lang.Thread.run(Thread.java:919)
09-08 10:52:30.798 27249 31720 E AndroidRuntime: FATAL EXCEPTION: lowpool[14]
09-08 10:52:30.798 27249 31720 E AndroidRuntime: Process: com.google.android.gms.persistent, PID: 27249
09-08 10:52:30.798 27249 31720 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:52:30.801 27249 27249 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:52:30.801 27249 27249 E AndroidRuntime: Process: com.google.android.gms.persistent, PID: 27249
09-08 10:52:30.801 27249 27249 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:52:30.803 27692 27692 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:52:30.803 27692 27692 E AndroidRuntime: Process: com.google.android.googlequicksearchbox:interactor, PID: 27692
09-08 10:52:30.803 27692 27692 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
09-08 10:52:30.804 32282 32282 E AndroidRuntime: FATAL EXCEPTION: main
09-08 10:52:30.804 32282 32282 E AndroidRuntime: Process: com.miui.cloudservice, PID: 32282
09-08 10:52:30.804 32282 32282 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
If phone is bootlooping it should be obvious that you can't get a stable USB-connection: adb pull operation aborts when bootloop re-starts.
Assumed phone's Android is rooted, you may use Android's dd command with seek / skip options.
Example:
Code:
adb exec-out "su -c 'dd if=BLOCK seek=NN skip=NN'" >> C:\IMG
Unfortunatelly its not rooted.

Smartphone App doesn't work on Tablet. Pioneer Smart Sync

Hello,
I bought a new Pioneer car stereo (SPH-20DAB), this (and some others from Pioneer) works together with an APP.
There are two Android Apps from Pioneer.
1. Pionneer Smart Sync
2. Pionner Smart Sync for Tablet.
The first smartphone app works great on many tested Smartphones.
The Second App won't work on any Testet Android Tablet.
I can Instal it, but never get any connection to the Stereo, i think it's because this App will exclusive work with with the SPH-t20BT mainunit which has its own Tablet (cheap Crap!)
So i desided to install the Smartphone app on my Tablet, but it is not possible. My Tablet (Lenovo P11 with Android 11) always says when i install the .apk "This App is not for your Device"
After this i tried to Root my P11, after many try's i was succesfull (After downgrading it Back to Android 10), and install TWRP Recovery an Magisk with Root. Now I changed my DeviceID to some other devices like my Oneplus 6T, now it is possible to install the smartphone version of the Pioneer app on my P11 Tablet, but it crashes on every start.
Why will this happen? is there any other difference between Tablets and Smartphones in Android development? Do i have to change some more parameters?.
On the other hand, the tablet version of the Pioneer app runs fine on my Oneplus 6T, but also can't connect (i think because this app only allows the SPH-T20BT tablet unit).
If you get message "This App is not for your Device" then this has good reasons. It's on an app's developer to define on what devices his app should work or not. Some apps only work on phones and not on tablets.
Of course you can try to trick the app, but it doesn't make sense as you could see for yourself.
To get the very reason why app in question crashes do a LOGCAT.
What is the technical Background, the app maybe won't work on tablets? is there an Option the Developer can say "i don't wan't this" so the app will crash ? maybe a reason in my opinion can be the bigger screen an so the app can become optical awfull. Or is there a real difference in the Andrid Api or in the Hardware design?
The Tablet app still exists, but will be not updatet anymore, so that will be no further way for me the solution in this case.
I will test it tommorow with the Logcat, i forget the Tablet somewhere and can't test it now.
I try to install the app on Bluestacks (works fine, but only Phones are availible), and on Genymotion where i can set off a Tablet device with Android 10 an the Same Hardware specs. On the first try i wasn't able to install the .apk (something with ARM native code) but after i install an arm code translator it works fine. Slow, but this is another problem i think.
Maybe a reason, or is this another Problem between 32 Bit an Arm, and has nothing to do with my Problem ?
I made a log an tryed to cut out the necessary parts i think.
Can you maybe explain for which parts i can look? are there any keywords i can search for ?
I attached the log below.
I don't know why, but i can't add files.
I read threw the log an i think it hapens here
11-05 08:36:40.897 30015 30015 E AndroidRuntime: FATAL EXCEPTION: main
11-05 08:36:40.897 30015 30015 E AndroidRuntime: Process: jp.pioneer.carsync, PID: 30015
11-05 08:36:40.897 30015 30015 E AndroidRuntime: java.lang.ExceptionInInitializerError
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.di.module.AppModule.provideAppSharedPreference(Unknown Source:0)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.di.module.AppModule_ProvideAppSharedPreferenceFactory.provideAppSharedPreference(Unknown Source:0)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.di.module.AppModule_ProvideAppSharedPreferenceFactory.get(Unknown Source:10)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.di.module.AppModule_ProvideAppSharedPreferenceFactory.get(Unknown Source:0)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at dagger.internal.DoubleCheck.get(Unknown Source:15)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.domain.model.StatusHolder_Factory.get(Unknown Source:4)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.domain.model.StatusHolder_Factory.get(Unknown Source:0)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.infrastructure.repository.StatusHolderRepositoryImpl_Factory.get(Unknown Source:7)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.infrastructure.repository.StatusHolderRepositoryImpl_Factory.get(Unknown Source:0)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at dagger.internal.DoubleCheck.get(Unknown Source:15)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.di.component.DaggerAppComponent.injectStatusUpdateListener(Unknown Source:2)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.di.component.DaggerAppComponent.getStatusUpdateListener(Unknown Source:4)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.di.component.DaggerAppComponent.injectDomainInitializer(Unknown Source:0)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.di.component.DaggerAppComponent.getDomainInitializer(Unknown Source:4)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.di.component.DaggerAppComponent.injectApp(Unknown Source:0)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.di.component.DaggerAppComponent.inject(Unknown Source:0)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.App.initialize(Unknown Source:31)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.App.onCreate(Unknown Source:5)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1190)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6479)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at android.app.ActivityThread.access$1300(ActivityThread.java:220)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1860)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7397)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:502)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: Caused by: android.content.res.Resources$NotFoundException: Unable to find resource ID #0x7f08014b
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at android.content.res.ResourcesImpl.getResourceEntryName(ResourcesImpl.java:300)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at android.content.res.Resources.getResourceEntryName(Resources.java:2112)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.presentation.model.MenuKeyItem.<init>(Unknown Source:25)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.content.AppSharedPreference$1.<init>(Unknown Source:16)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: at jp.pioneer.carsync.application.content.AppSharedPreference.<clinit>(Unknown Source:323)
11-05 08:36:40.897 30015 30015 E AndroidRuntime: ... 28 more
So after all it works fine, the reason was only a broken .apk
After Severall trys, i was able to download the actuall version (3.5.0) of the Pioneer Smart Sync smartphone .apk and it works fine on my Lenovo P11 Tablet.
DeinOpa said:
So after all it works fine, the reason was only a broken .apk
After Severall trys, i was able to download the actuall version (3.5.0) of the Pioneer Smart Sync smartphone .apk and it works fine on my Lenovo P11 Tablet.
Click to expand...
Click to collapse
Oh Yes it is absolutly cheap Crap and damm slow but thanks for the hint with the Smartphone APP.

Unlocking the bootloader: Help me interpreting this logcat

Hi guys. I've been trying to unlock the bootloader. So far I installed an useful app to open android settings https://m.apkpure.com/hidden-settings-for-android/com.jami.tool.hiddensetting.
I enabled developer settings trough ADB:
Bash:
adb shell settings put global development_settings_enabled 1
But I think I could've also enable it by clicking 5 times the build version... Anyway then I opened the Settings app and Developer Options appeared, unfortunately, when I open it, the whole Settings app crashes. Here is the what I think it is the relevant logcat:
Code:
03-12 22:59:30.047 12645 12645 E ndroid.setting: Can't find memory status under: /sys/block/zram0/
03-12 22:59:30.047 12645 12645 D AndroidRuntime: Shutting down VM
03-12 22:59:30.033 12645 12645 W ndroid.settings: type=1400 audit(0.0:129): avc: denied { read } for name="pagetypeinfo" dev="proc" ino=4026531857 scontext=u:r:system_app:s0 tcontext=u:object_r:proc_pagetypeinfo:s0 tclass=file permissive=0
03-12 22:59:30.047 12645 12645 E AndroidRuntime: FATAL EXCEPTION: main
03-12 22:59:30.047 12645 12645 E AndroidRuntime: Process: com.android.settings, PID: 12645
03-12 22:59:30.047 12645 12645 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.settings/com.android.settings.SubSettings}: java.lang.RuntimeException: SysMemInfo read failed
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3279)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3418)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2025)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7389)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:933)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: Caused by: java.lang.RuntimeException: SysMemInfo read failed
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.os.Debug.getZoneWatermarks(Native Method)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.internal.util.MemInfoReader.readMemInfo(MemInfoReader.java:37)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.applications.ProcStatsData$MemInfo.calculateWeightInfo(ProcStatsData.java:423)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.applications.ProcStatsData$MemInfo.<init>(ProcStatsData.java:383)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.applications.ProcStatsData$MemInfo.<init>(ProcStatsData.java:362)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.applications.ProcStatsData.refreshStats(ProcStatsData.java:156)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.applications.ProcStatsData.setDuration(ProcStatsData.java:128)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.development.MemoryUsagePreferenceController.setDuration(MemoryUsagePreferenceController.java:76)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.development.MemoryUsagePreferenceController.displayPreference(MemoryUsagePreferenceController.java:54)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.dashboard.DashboardFragment.lambda$displayResourceTiles$5(DashboardFragment.java:313)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.dashboard.-$$Lambda$DashboardFragment$Tn5-YvXfafHUTSTeQyMxdmcExvo.accept(Unknown Source:4)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1390)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:604)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:283)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at java.util.Iterator.forEachRemaining(Iterator.java:116)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:475)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:133)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:236)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:435)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.dashboard.DashboardFragment.displayResourceTiles(DashboardFragment.java:312)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.dashboard.DashboardFragment.refreshAllPreferences(DashboardFragment.java:360)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.dashboard.DashboardFragment.onCreatePreferences(DashboardFragment.java:160)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at androidx.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:160)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settingslib.core.lifecycle.ObservablePreferenceFragment.onCreate(ObservablePreferenceFragment.java:61)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.SettingsPreferenceFragment.onCreate(SettingsPreferenceFragment.java:133)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.dashboard.DashboardFragment.onCreate(DashboardFragment.java:137)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.dashboard.RestrictedDashboardFragment.onCreate(RestrictedDashboardFragment.java:104)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.development.DevelopmentSettingsDashboardFragment.onCreate(DevelopmentSettingsDashboardFragment.java:145)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at androidx.fragment.app.Fragment.performCreate(Fragment.java:2596)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:831)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at androidx.fragment.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1197)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at androidx.fragment.app.FragmentTransition.calculateFragments(FragmentTransition.java:1080)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:119)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1853)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1811)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1717)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at androidx.fragment.app.FragmentManagerImpl.executePendingTransactions(FragmentManagerImpl.java:183)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.SettingsActivity.switchToFragment(SettingsActivity.java:600)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.SettingsActivity.launchSettingFragment(SettingsActivity.java:393)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at com.android.settings.SettingsActivity.onCreate(SettingsActivity.java:301)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:7825)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:7814)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1306)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3254)
03-12 22:59:30.047 12645 12645 E AndroidRuntime: ... 11 more
03-12 22:59:30.033 12645 12645 W ndroid.settings: type=1400 audit(0.0:130): avc: denied { search } for name="zram0" dev="sysfs" ino=46795 scontext=u:r:system_app:s0 tcontext=u:object_r:sysfs_zram:s0 tclass=dir permissive=0
03-12 22:59:30.033 12645 12645 W ndroid.settings: type=1400 audit(0.0:131): avc: denied { search } for name="zram0" dev="sysfs" ino=46795 scontext=u:r:system_app:s0 tcontext=u:object_r:sysfs_zram:s0 tclass=dir permissive=0
03-12 22:59:30.033 12645 12645 W ndroid.settings: type=1400 audit(0.0:132): avc: denied { read } for name="zoneinfo" dev="proc" ino=4026531859 scontext=u:r:system_app:s0 tcontext=u:object_r:proc_zoneinfo:s0 tclass=file permissive=0
03-12 22:59:30.052 1044 4585 W ActivityTaskManager: Force finishing activity com.android.settings/.SubSettings
My first impression is that's related to some kernel build flags. Does someone knows more?
I think it is possible to unlock the bootloader normally with developer options because ro.oem_unlock_supported is set to 1. Bye.
Edit: Here is a relevant stackoverflow issue https://stackoverflow.com/questions...h-when-opening-developer-options-programmatic It may depends on the app used to open the settings.
you can access some settings with SetEdit
SetEdit SettingsDatabaseEditor – Apps bei Google Play
Provides direct access to the Android settings database
play.google.com
here you can shutdown some services:
Download Package Disabler Pro(com.ospolice.packagedisablerpro)11.0 free APK - Android Games_APKsHub
Download Package Disabler Pro(com.ospolice.packagedisablerpro)11.0 free APK - Android Games_APKsHub APKShub
www.apkshub.com
also i think the developer options page just isnt there so it cant load into memory so it cant be read by the os.
even when developer options page is accessible, we only need the OEM unlock option and USB debugging. somewhere in the settingstable is a line for OEM unlock but its a closed table.
also:
huawei had a bootloader mastercodes like 2222222222222222 for example. and some of the indias are hacking the bootloadercode of android phones with some special dongle/software. wouldnt it be possible to get in touch with those (mostly moneymakers)? they have to have some magic knowledge which result is only shared over crypted payed and timelimited programms and/or dongles.
what about the oculus go, it has root isnt that the quest os just for 3DOF?
(i had the feeling that no one tries to get root on the quest, because its so silent here.
if we know the length of the code we can try fastboot bruteforce )
codes are server sided bud....either you hack Facebook private servers or nothing at all.... also bootloader codes ever since Facebook took over, change at random, unspecified intervals, generated by thief servers...hence why you need to mostly setup the device using. an app for on a phone or pc,.....this syncs up each new bootloader code when it changes.... its called Oculus companion server" if you browse running system processes...used to be able to force kill the process but as soon as you did, oculus home would crash and you get a unresponsive blank screen until reboot....
thats why all those legit "unlock" phone providers like SamPwnd, work because the guy running it is either a current samsung employee, former and still has server access, or has an inside guy at samsung.....they dont hack the bootloaader codes...they get them straight from private servers
ok, not thought about it. maybe we dont need an unlocked bootloader, but for that i need someone who can programm android launchers or apps.
wazzu232 said:
codes are server sided bud....either you hack Facebook private servers or nothing at all.... also bootloader codes ever since Facebook took over, change at random, unspecified intervals, generated by thief servers...hence why you need to mostly setup the device using. an app for on a phone or pc,.....this syncs up each new bootloader code when it changes.... its called Oculus companion server" if you browse running system processes...used to be able to force kill the process but as soon as you did, oculus home would crash and you get a unresponsive blank screen until reboot....
thats why all those legit "unlock" phone providers like SamPwnd, work because the guy running it is either a current samsung employee, former and still has server access, or has an inside guy at samsung.....they dont hack the bootloaader codes...they get them straight from private servers
Click to expand...
Click to collapse
We could find a vuln in android to gain root access and then find the code using root like we did on huaweis

Question Text-to-speech on nio with LOS 19 microG

I'm using the latest LOS 19 with microG from here on my nio and I'm trying to get text-to-speech to work (to use it in OSMAnd~). However, non of the TTS engines I tried works (Google Speech Services, flite, RHVoice). They all suffer from the same problem: Once I go to Settings > System > Languages > Text-to-speech output the Settings app jumps back to the System category. If I try navigating there again, it crashes.
Here's the log when the crash happens:
Code:
05-27 14:56:35.644 16812 16812 D SettingsActivity: Starting to set activity title
05-27 14:56:35.644 16812 16812 D SettingsActivity: Done setting title
05-27 14:56:35.644 16812 16812 D SettingsActivity: Switching to fragment com.android.settings.tts.TextToSpeechSettings
05-27 14:56:35.644 16812 16812 D SubSettings: Launching fragment com.android.settings.tts.TextToSpeechSettings
05-27 14:56:35.645 1494 2865 E UserRestrictionsUtils: Unknown restriction queried by uid 1000 (org.lineageos.lineagesettings et al): null
05-27 14:56:35.646 1494 2865 E UserRestrictionsUtils: Unknown restriction queried by uid 1000 (org.lineageos.lineagesettings et al): null
05-27 14:56:35.646 1494 2865 E UserRestrictionsUtils: Unknown restriction queried by uid 1000 (org.lineageos.lineagesettings et al): null
05-27 14:56:35.650 1494 2865 I ActivityTaskManager: START u0 {act=android.speech.tts.engine.CHECK_TTS_DATA cmp=com.github.olga_yakovleva.rhvoice.android/.CheckTTSData} from uid 1000
05-27 14:56:35.655 1202 1202 I android.hardware.power-service-qti: Power setMode: 5 to: 1
05-27 14:56:35.659 16812 16812 D SettingsActivity: Executed frag manager pendingTransactions
05-27 14:56:35.681 16812 16834 D SettingsActivity: No enabled state changed, skipping updateCategory call
05-27 14:56:35.685 1494 7986 W ActivityTaskManager: Tried to set launchTime (0) < mLastActivityLaunchTime (6736388)
05-27 14:56:35.691 1022 12398 I netd : bandwidthAddNiceApp(10263) <0.04ms>
05-27 14:56:35.742 1494 1737 I ActivityTaskManager: Displayed com.android.settings/.SubSettings: +129ms
05-27 14:56:35.743 16812 16812 D CompatibilityChangeReporter: Compat change id reported: 78294732; UID 1000; state: ENABLED
05-27 14:56:35.743 16812 16812 E TextToSpeechSettings: Voice data check complete, but no engine bound
05-27 14:56:35.743 16812 16812 D AndroidRuntime: Shutting down VM
05-27 14:56:35.744 16812 16812 E AndroidRuntime: FATAL EXCEPTION: main
05-27 14:56:35.744 16812 16812 E AndroidRuntime: Process: com.android.settings, PID: 16812
05-27 14:56:35.744 16812 16812 E AndroidRuntime: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1230932445, result=1, data=Intent { (has extras) }} to activity {com.android.settings/com.android.settings.SubSettings}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:5368)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.app.ActivityThread.handleSendResult(ActivityThread.java:5407)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:67)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2253)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:201)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.os.Looper.loop(Looper.java:288)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7870)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.speech.tts.TtsEngines.parseEnginePrefFromList(TtsEngines.java:510)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.speech.tts.TtsEngines.isLocaleSetToDefaultForEngine(TtsEngines.java:372)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at com.android.settings.tts.TextToSpeechSettings.updateDefaultLocalePref(TextToSpeechSettings.java:524)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at com.android.settings.tts.TextToSpeechSettings.onActivityResult(TextToSpeechSettings.java:507)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at androidx.fragment.app.FragmentManager$9.onActivityResult(FragmentManager.java:3011)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at androidx.fragment.app.FragmentManager$9.onActivityResult(FragmentManager.java:2991)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at androidx.activity.result.ActivityResultRegistry.doDispatch(ActivityResultRegistry.java:362)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at androidx.activity.result.ActivityResultRegistry.dispatchResult(ActivityResultRegistry.java:322)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at androidx.activity.ComponentActivity.onActivityResult(ComponentActivity.java:634)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.onActivityResult(FragmentActivity.java:164)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at com.android.settings.SettingsActivity.onActivityResult(SettingsActivity.java:476)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.app.Activity.dispatchActivityResult(Activity.java:8385)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:5361)
05-27 14:56:35.744 16812 16812 E AndroidRuntime: ... 13 more
05-27 14:56:35.745 1494 2865 W ActivityTaskManager: Force finishing activity com.android.settings/.SubSettings
05-27 14:56:35.745 1494 16960 I DropBoxManagerService: add tag=system_app_crash isTagEnabled=true flags=0x2
05-27 14:56:35.746 1494 2865 W ActivityTaskManager: Force finishing activity com.android.settings.intelligence/.search.SearchActivity
05-27 14:56:35.747 16812 16812 I Process : Sending signal. PID: 16812 SIG: 9
05-27 14:56:35.789 0 0 I binder : undelivered transaction 2177669, process died.
05-27 14:56:35.790 0 0 I binder : undelivered transaction 2177654, process died.
05-27 14:56:35.799 1494 2865 I ActivityManager: Process com.android.settings (pid 16812) has died: fg TOP
05-27 14:56:35.800 1494 1777 I libprocessgroup: Successfully killed process cgroup uid 1000 pid 16812 in 0ms
05-27 14:56:35.802 1494 5392 I WindowManager: WIN DEATH: Window{4c195a8 u0 com.android.settings/com.android.settings.Settings}
05-27 14:56:35.802 1494 5392 W InputManager-JNI: Input channel object '4c195a8 com.android.settings/com.android.settings.Settings (client)' was disposed without first being removed with the input manager!
05-27 14:56:35.804 1023 1023 I Zygote : Process 16812 exited due to signal 9 (Killed)
05-27 14:56:35.804 1494 6205 W WindowManager: Cannot find window which accessibility connection is added to
05-27 14:56:35.805 1494 6204 I WindowManager: WIN DEATH: Window{e8cb5a7 u0 com.android.settings/com.android.settings.SubSettings}
05-27 14:56:35.805 1494 6204 W InputManager-JNI: Input channel object 'e8cb5a7 com.android.settings/com.android.settings.SubSettings (client)' was disposed without first being removed with the input manager!
05-27 14:56:35.807 1494 1759 W UsageStatsService: Unexpected activity event reported! (com.android.settings/com.android.settings.homepage.SettingsHomepageActivity event : 23 instanceId : 216578729)
Anybody got any hints on what I could do to fix it?
Anybody got an idea against which which project / repo / etc this could be reported (while not playing 'You should report this elsewhere' ping pong? )
I was able to fix my problem by installing Google Speech Services via Aurora, rebooting, installing eSpeak via F-Droid, starting eSpeak and going to 'General TTS settings' via the eSpeak menu. Possibly eSpeak sets itself as the default TTS if none is configured.
Afterwards I was also able to select Speech Services as the default without issues.

Categories

Resources