Nutomic/movecerts

FC on Lollipop when opening

SanderGit opened this issue · 5 comments

When opening Move Certs! on Lollipop (5.0.1) on a HTC One M7 GPE, the app immediately crashes.
It has been granted root (after 2 tries it prompted for it) but did not help.
Just purchased version 1.0.2 from the Play Store.

E/AndroidRuntime(23065): FATAL EXCEPTION: AsyncTask #1
E/AndroidRuntime(23065): Process: com.nutomic.zertman, PID: 23065
E/AndroidRuntime(23065): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(23065):        at android.os.AsyncTask$3.done(AsyncTask.java:300)
E/AndroidRuntime(23065):        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
E/AndroidRuntime(23065):        at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
E/AndroidRuntime(23065):        at java.util.concurrent.FutureTask.run(FutureTask.java:242)
E/AndroidRuntime(23065):        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
E/AndroidRuntime(23065):        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
E/AndroidRuntime(23065):        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
E/AndroidRuntime(23065):        at java.lang.Thread.run(Thread.java:818)
E/AndroidRuntime(23065): Caused by: java.lang.NullPointerException: Attempt to get length of null array
E/AndroidRuntime(23065):        at com.nutomic.zertman.CertificateManager.getCertificates(CertificateManager.java:73)
E/AndroidRuntime(23065):        at com.nutomic.zertman.CertificateAdapter$UpdateListTask.doInBackground(CertificateAdapter.java:103)
E/AndroidRuntime(23065):        at com.nutomic.zertman.CertificateAdapter$UpdateListTask.doInBackground(CertificateAdapter.java:100)
E/AndroidRuntime(23065):        at android.os.AsyncTask$2.call(AsyncTask.java:288)
E/AndroidRuntime(23065):        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
E/AndroidRuntime(23065):        ... 4 more

This app is based on a hack, which doesn't seem to work with your phone.

Unfortunately, there's nothing I can do about this, but if anyone finds a similar, working hack, I'll happily implement that.

It likewise immediately quits on a Samsung Galaxy S7.

The problem seems to be that some manufacturers moved the user certificate store to a different folder. Unfortunately I don't have any of the affected devices. If you can find the new path on your device, I'll implement that.

on my S5+ with new Marshmallow the app also crashes on startup. With Lollipop it was working....
I checked the folder /system/etc/security/cacerts/ and it still exist and has files inside.
I think it would be a good idea to catch the crash at startup and display a message depending on the error (path xy could not be opened for reading or what ever..)

okay, i search in your code for paths and found where you are searching for user cert:

https://github.com/Nutomic/movecerts/blob/master/app/src/main/java/com/nutomic/zertman/CertificateManager.java

On Marshmallow/S5+ the user certs moved to: /data/misc/keystore/user_0/
You need more information?

screenshot_2016-06-03-15-38-19