package info.androiddevice.deviceinventory.info; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; import name.unused.android.utils.systemproperties.SystemProperty; import name.unused.android.utils.systemproperties.exception.NoSuchPropertyException; import info.androiddevice.deviceinventory.Application; public class GetPropProperty implements Property { static List<String> whitelist = new ArrayList<String>() {{ add("ro.product.device"); add("ro.product.manufacturer"); add("ro.product.model"); add("ro.product.name"); add("ro.board.platform"); add("ro.boot.hardware"); add("ro.build.description"); add("ro.build.display.id"); add("ro.build.fingerprint"); add("ro.build.host"); add("ro.build.id"); add("ro.build.product"); add("ro.build.tags"); add("ro.build.type"); add("ro.build.user"); add("ro.build.version.codename"); add("ro.build.version.incremental"); add("ro.build.version.release"); add("ro.build.version.sdk"); add("ro.product.board"); add("ro.product.brand"); add("ro.product.cpu.abi2"); add("ro.product.cpu.abi"); add("ro.revision"); }}; @Override public Object getProperty() { JSONObject jsonObject = new JSONObject(); SystemProperty property = new SystemProperty(Application.getContext()); for(String key: whitelist) { try { String value = property.getOrThrow(key); jsonObject.put(key, value); } catch (NoSuchPropertyException e) { try { jsonObject.put(key, JSONObject.NULL); } catch (JSONException e1) {} } catch (JSONException e) { try { jsonObject.put(key, JSONObject.NULL); } catch (JSONException e1) {} } } return jsonObject; } @Override public String getName() { return "properties"; } }