Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7c1193a5 authored by narinder Rana's avatar narinder Rana
Browse files

Merge branch 'issue_1892' into 'master'

handle exception issue_1892

See merge request e/apps/apps!57
parents ed6b5066 47045398
Loading
Loading
Loading
Loading
Loading
+44 −27
Original line number Diff line number Diff line
@@ -19,6 +19,10 @@ package foundation.e.apps.application.model

import android.content.Context
import android.os.AsyncTask
import android.os.Handler
import android.os.Looper
import android.widget.Toast
import foundation.e.apps.R
import foundation.e.apps.application.model.data.FullData
import foundation.e.apps.utils.Constants
import org.bouncycastle.jce.provider.BouncyCastleProvider
@@ -53,6 +57,7 @@ class IntegrityVerificationTask(
            } else {
                Security.addProvider(BouncyCastleProvider())
                verifyAPKSignature(
                        context[0],
                        BufferedInputStream(FileInputStream(
                                applicationInfo.getApkFile(context[0],
                                        fullData.basicData).absolutePath)),
@@ -88,9 +93,11 @@ class IntegrityVerificationTask(
    }

    private fun verifyAPKSignature(
            context: Context,
            apkInputStream: BufferedInputStream,
            apkSignatureInputStream: InputStream,
            publicKeyInputStream: InputStream): Boolean {
        try {

            var jcaPGPObjectFactory =
                    JcaPGPObjectFactory(PGPUtil.getDecoderStream(apkSignatureInputStream))
@@ -124,8 +131,18 @@ class IntegrityVerificationTask(
            apkInputStream.close()
            apkSignatureInputStream.close()
            publicKeyInputStream.close()

            return signature.verify()
        } catch (e: Exception) {
            e.printStackTrace()

            Handler(Looper.getMainLooper()).post {
                val toast = Toast.makeText(context, context.resources.getString(R.string.Signature_verification_failed),  Toast.LENGTH_LONG)
                toast.show()
            }

        }

        return false;

    }
}
+5 −0
Original line number Diff line number Diff line
@@ -184,4 +184,9 @@
    <string name="microg_not_installed">Not Installed</string>
    <string name="microg_installed">Installed</string>


    <string name="Signature_verification_failed">Signature verification failed, aborting install</string>



</resources>