package fuzion24.device.vulnerability.test; import android.net.Uri; import org.json.JSONException; import org.json.JSONObject; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class ShareViaGoogleForm { private static final String mFormUrl; private static Map<String, String> submitMapping = new HashMap<>(); private final JSONObject mCombinedResults; static { mFormUrl = "https://docs.google.com/forms/d/1hAoRFCmPmIEzKD_gQBZhne2Jkr24E5VTuI_yGXKnVyE/formResponse"; submitMapping.put("fingerprint", "entry.957780611"); submitMapping.put("kernelVersion", "entry.173229528"); submitMapping.put("brand", "entry.1413588413"); submitMapping.put("manufacturer", "entry.2048857005"); submitMapping.put("model", "entry.2054096086"); submitMapping.put("release", "entry.1474130928"); submitMapping.put("sdk", "entry.1701379105"); submitMapping.put("versionCode", "entry.275175001"); submitMapping.put("versionName", "entry.506488905"); submitMapping.put("id", "entry.218715471"); submitMapping.put("combinedResults", "entry.2112177772"); } public ShareViaGoogleForm(JSONObject combinedResults) { mCombinedResults = combinedResults; } public Uri buildUri() throws JSONException { JSONObject buildInfo = mCombinedResults.getJSONObject("buildInfo"); Uri.Builder builder = Uri.parse(mFormUrl).buildUpon(); Iterator<String> keys = buildInfo.keys(); while (keys.hasNext()) { String curKey = keys.next(); if (!submitMapping.containsKey(curKey)) { continue; } String result = buildInfo.getString(curKey); String formKey = submitMapping.get(curKey); builder.appendQueryParameter(formKey, result); } // lastly put the JSON string as the combinedResults form value String combinedResultsFormKey = submitMapping.get("combinedResults"); String results = mCombinedResults.toString(); builder.appendQueryParameter(combinedResultsFormKey, results); return builder.build(); } }