package info.androiddevice.deviceinventory.info; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.Signature; import org.json.JSONArray; import org.json.JSONObject; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; import info.androiddevice.deviceinventory.Application; import static info.androiddevice.deviceinventory.info.Utils.byteToHexString; public class PackageSigProperty implements Property { @Override public String getName() { return "package_signature"; } @Override public Object getProperty() { try { JSONArray result = new JSONArray(); PackageInfo packageInfo = Application.getContext().getPackageManager().getPackageInfo("android", PackageManager.GET_SIGNATURES); for(Signature item: Arrays.asList(packageInfo.signatures)) { MessageDigest digest = null; try { digest = MessageDigest.getInstance("SHA-256"); digest.update(item.toCharsString().getBytes()); result.put(byteToHexString(digest.digest())); } catch (NoSuchAlgorithmException e) {} } return result; } catch (PackageManager.NameNotFoundException e) { return JSONObject.NULL; } } }