[Moto X General] iKrYpToNiTe:
Just a heads up for VZW customers, I updated the MyVerizon app today and was doing something on my phone when SuperSU popped up asking to grant MyVerizon root access. I denied it of course and the toast message informed me it was trying to run the ls command as root. This got me suspicious, so I decompiled the new update and went looking for the ls command in the code. Needless to say I found out that they are apparently gathering information about each device and one thing they are checking is if your phone is rooted or not. So if you get the Superuser prompt you might want to deny it!

Here is the dex2jar output of the class file that gathers information about your phone the root check is the second method from the bottom.

package com.vzw.hss.myverizon.rdd.a;

import android.content.Context;
import android.location.LocationManager;
import android.nfc.NfcAdapter;
import android.nfc.NfcManager;
import android.os.Build;
import android.os.Build.VERSION;
import android.provider.Settings.Secure;
import android.provider.Settings.System;
import android.telephony.TelephonyManager;
import android.view.Display;
import android.view.WindowManager;
import com.vzw.hss.connectionmanager.e;
import com.vzw.hss.myverizon.MyVerizonApplication;
import com.vzw.hss.myverizon.rdd.a;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Locale;
import java.util.TimeZone;
import org.json.JSONObject;

public final class d
{
private static String a(Context paramContext)
{
try
{
int j = Settings.Secure.getInt(paramContext.getContentResolver(), "adb_enabled");
i = j;
}
catch (Exception localException)
{
for (;;)
{
a.a("Exception: " + localException.getMessage());
int i = 0;
continue;
String str = "YES";
}
}
if (i == 0)
{
str = "NO";
return str;
}
}

public static JSONObject a()
{
Context localContext = MyVerizonApplication.a();
JSONObject localJSONObject1 = new JSONObject();
try
{
localJSONObject1.put("Model", Build.MODEL);
localJSONObject1.put("Manufacturer", Build.MANUFACTURER.toUpperCase());
localJSONObject1.put("Kernel Version", System.getProperty("os.version", "NOT RETRIEVABLE"));
localJSONObject1.put("Build ID", Build.ID);
localJSONObject1.put("Android Debug Enabled", a(localContext));
String str1 = Settings.Secure.getString(localContext.getContentResolver(), "android_id");
String str2;
String str3;
if (str1 == null)
{
str2 = "NOT RETRIEVABLE";
localJSONObject1.put("Device ID", str2);
if (Build.VERSION.SDK_INT < 14) {
break label497;
}
if (Build.getRadioVersion() != null) {
break label489;
}
str3 = "NOT RETRIEVABLE";
}
TelephonyManager localTelephonyManager3;
String str12;
label184:
TelephonyManager localTelephonyManager4;
String str13;
label213:
label222:
String str6;
label281:
String str8;
label387:
label426:
String str9;
for (;;)
{
localJSONObject1.put("Baseband Version", str3.toUpperCase());
if (!e.f(localContext)) {
break label589;
}
String str10 = g.b(localContext);
if ((str10 == null) || (str10.isEmpty())) {
break label518;
}
localJSONObject1.put("IMEI", str10);
localTelephonyManager3 = (TelephonyManager)localContext.getSystemService("phone");
if (localTelephonyManager3 != null) {
break label569;
}
str12 = "NOT RETRIEVABLE";
localJSONObject1.put("IMSI", str12);
localTelephonyManager4 = (TelephonyManager)localContext.getSystemService("phone");
if (localTelephonyManager4 != null) {
break label579;
}
str13 = "NOT RETRIEVABLE";
localJSONObject1.put("ICCID", str13);
WindowManager localWindowManager = (WindowManager)localContext.getSystemService("window");
if (localWindowManager == null) {
break label697;
}
str6 = localWindowManager.getDefaultDisplay().getWidth() + " x " + localWindowManager.getDefaultDisplay().getHeight();
localJSONObject1.put("Screen Size", str6);
localJSONObject1.put("Language", Locale.getDefault().getDisplayName());
localJSONObject1.put("Time Zone", TimeZone.getDefault().getDisplayName());
localJSONObject1.put("OS Version", Build.VERSION.RELEASE);
localJSONObject1.put("Rooted", b());
localJSONObject1.put("Screen Timeout", b(localContext));
NfcManager localNfcManager = (NfcManager)localContext.getSystemService("nfc");
if (localNfcManager == null) {
break label673;
}
NfcAdapter localNfcAdapter = localNfcManager.getDefaultAdapter();
if (localNfcAdapter == null) {
break label748;
}
if (!localNfcAdapter.isEnabled()) {
break label740;
}
str7 = "ON";
localJSONObject1.put("NFC", str7);
LocationManager localLocationManager1 = (LocationManager)localContext.getSystemService("location");
if ((localLocationManager1 == null) || (!localLocationManager1.isProviderEnabled("gps"))) {
break label689;
}
str8 = "ON";
localJSONObject1.put("Standalone GPS", str8);
LocationManager localLocationManager2 = (LocationManager)localContext.getSystemService("location");
if ((localLocationManager2 == null) || (!localLocationManager2.isProviderEnabled("network"))) {
break label681;
}
str9 = "ON";
label465:
localJSONObject1.put("Network Location Provider", str9);
localJSONObject2 = localJSONObject1;
break label704;
str2 = str1.toUpperCase();
break;
label489:
str3 = Build.getRadioVersion();
continue;
label497:
if (Build.RADIO == null) {
str3 = "NOT RETRIEVABLE";
} else {
str3 = Build.RADIO;
}
}
label518:
TelephonyManager localTelephonyManager2 = (TelephonyManager)localContext.getSystemService("phone");
if (localTelephonyManager2 != null)
{
str11 = localTelephonyManager2.getDeviceId();
if ((str11 != null) && (!str11.isEmpty())) {}
for (;;)
{
localJSONObject1.put("IMEI", str11);
break;
label569:
str12 = localTelephonyManager3.getSubscriberId();
break label184;
label579:
str13 = localTelephonyManager4.getSimSerialNumber();
break label213;
label589:
String str4 = g.b(localContext);
if ((str4 != null) && (!str4.isEmpty()))
{
localJSONObject1.put("MEID", str4);
break label222;
}
TelephonyManager localTelephonyManager1 = (TelephonyManager)localContext.getSystemService("phone");
if (localTelephonyManager1 == null) {
break label733;
}
str5 = localTelephonyManager1.getDeviceId();
if ((str5 == null) || (str5.isEmpty())) {
break label726;
}
localJSONObject1.put("MEID", str5);
break label222;
label673:
str7 = "Feature Not Supported";
break label387;
label681:
str9 = "OFF";
break label465;
label689:
str8 = "OFF";
break label426;
label697:
str6 = "NOT RETRIEVABLE";
break label281;
label704:
return localJSONObject2;
str11 = "NOT RETRIEVABLE";
}
}
}
catch (Exception localException)
{
for (;;)
{
JSONObject localJSONObject2 = null;
continue;
String str11 = "NOT RETRIEVABLE";
continue;
label726:
String str5 = "NOT RETRIEVABLE";
continue;
label733:
str5 = "NOT RETRIEVABLE";
continue;
label740:
String str7 = "OFF";
continue;
label748:
str7 = "Feature Not Supported";
}
}
}

private static String b()
{
String str = "YES";
try
{
BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader(Runtime.getRuntime().exec("su -c ls").getErrorStream()));
char[] arrayOfChar = new char[17];
if ((localBufferedReader.read(arrayOfChar) == arrayOfChar.length) && (new String(arrayOfChar, 0, arrayOfChar.length).trim().equalsIgnoreCase("permission denied"))) {
str = "NO";
}
return str;
}
catch (Exception localException)
{
for (;;)
{
str = "NO";
}
}
}

private static String b(Context paramContext)
{
int i = 0;
try
{
i = Settings.System.getInt(paramContext.getContentResolver(), "screen_off_timeout");
if (i > 0) {
i /= 1000;
}
if (i < 0)
{
str = "NEVER";
return str;
}
}
catch (Exception localException)
{
for (;;)
{
a.a("Exception: " + localException.getMessage());
continue;
String str = i + " SECONDS";
}
}
}
}