File tree Expand file tree Collapse file tree 1 file changed +28
-0
lines changed
Ports/Android/src/com/codename1/impl/android Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Original file line number Diff line number Diff line change 4545import com .codename1 .ui .Toolbar ;
4646import com .codename1 .ui .events .ActionEvent ;
4747
48+ import java .util .Arrays ;
49+ import java .util .List ;
4850import java .util .Vector ;
4951
5052public class CodenameOneActivity extends Activity {
@@ -110,7 +112,33 @@ protected void onResume() {
110112 billingSupport .consumeAndAcknowlegePurchases ();
111113 }
112114 background = false ;
115+
116+ /*VERIFY-CODE-START
117+ verifySignature("EXPECTED_SIGNATURE_VALUE");
118+ VERIFY-CODE-END*/
119+ }
120+
121+ /*VERIFY-CODE-START
122+ private void verifySignature(String expectedSignature) {
123+ try {
124+ String[] split = expectedSignature.split(",");
125+ List<String> splitString = Arrays.asList(split);
126+ android.content.pm.PackageInfo packageInfo =
127+ getPackageManager().getPackageInfo(getPackageName(),
128+ PackageManager.GET_SIGNATURES);
129+ for (android.content.pm.Signature signature : packageInfo.signatures) {
130+ java.security.MessageDigest md = java.security.MessageDigest.getInstance("SHA");
131+ md.update(signature.toByteArray());
132+ String currentSignature = android.util.Base64.encodeToString(md.digest(), android.util.Base64.DEFAULT);
133+ if (!splitString.contains(currentSignature)) {
134+ throw new RuntimeException("App integrity check failed for: " + currentSignature);
135+ }
136+ }
137+ } catch (Exception e) {
138+ throw new RuntimeException(e);
139+ }
113140 }
141+ VERIFY-CODE-END*/
114142
115143 /**
116144 * Overriden by subclasses to return true if billing is supported on this
You can’t perform that action at this time.
0 commit comments