My Verizon App Requesting Root Access

Search This thread

hawkswind1

Senior Member
Jun 11, 2012
474
211
Anyone else notice that the new update for the my verizon app is asking for root? It didn't ask when I first updated and ran the app, but I just rebooted and it requested root.
 

tecsironman

Senior Member
Sep 12, 2009
477
88
Motorola Droid Ultra
Moto X
Damn.. That's the app I use to keep my data on check

Sent from my XT1080 using Tapatalk

---------- Post added at 12:29 AM ---------- Previous post was at 12:25 AM ----------

Are you sure it requested root permission? I just updated the app and ran it and I didn't receive a su request for it.

Sent from my XT1080 using Tapatalk
 

hawkswind1

Senior Member
Jun 11, 2012
474
211
Damn.. That's the app I use to keep my data on check

Sent from my XT1080 using Tapatalk

---------- Post added at 12:29 AM ---------- Previous post was at 12:25 AM ----------

Are you sure it requested root permission? I just updated the app and ran it and I didn't receive a su request for it.

Sent from my XT1080 using Tapatalk

Reboot and see if it asks. I found this guess it's not just me.

http://www.droid-life.com/2014/04/0...with-3-widgets-randomly-asks-for-root-access/
 

akellar

Senior Member
Jan 9, 2011
4,007
2,425
Iowa
It also requests camera permissions among other unnecessary things. Watch what you install people.
 

kcipopnevets

Senior Member
Oct 6, 2013
310
67
Brooklyn
Whoever unlocked their bootloaders should watch out! I have a feeling they're eyeing us more since we just had the whole Chinese incident.
 

akellar

Senior Member
Jan 9, 2011
4,007
2,425
Iowa
Whoever unlocked their bootloaders should watch out! I have a feeling they're eyeing us more since we just had the whole Chinese incident.

You really think Verizon updated their app to watch the micro-percent of people that used that service? BTW, root and unlocked bootloaders are not the same and you can't tell the unlocked status from root.
 
  • Like
Reactions: BMAF

xjack

Senior Member
Feb 21, 2010
101
18
Root request popped up here while I was on a call(voicemail).
Disallowed and disabled alerts in SuperSU.

Sent from my XT1080 using Tapatalk
 

aviwdoowks

Senior Member
Sep 18, 2012
3,174
617
So they have a determination of root by root-denied vs no root access, or is each the same?
 

kanagadeepan

Senior Member
Jul 27, 2011
189
40
Sivakasi
Just disable / freeze this app. I have uninstalled that one after getting root access... There are other ways to get the infos shown by this app, right??
 

Summersett

Senior Member
Apr 24, 2011
100
25
There's a thread in the MotoX forum about this as well, and iKrYpToNiTe decompiled the update for those interested in everything it's asking for. Root check is the second method from the bottom. Here's the [Source Link].

Code:
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";
      }
    }
  }
}
 
  • Like
Reactions: StarkRaving

aviwdoowks

Senior Member
Sep 18, 2012
3,174
617
No matter, the "devs" at moto/vzw can distinguish that you have root. The only way to stop their knowledge would be to prevent it running at all!
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    Whoever unlocked their bootloaders should watch out! I have a feeling they're eyeing us more since we just had the whole Chinese incident.

    You really think Verizon updated their app to watch the micro-percent of people that used that service? BTW, root and unlocked bootloaders are not the same and you can't tell the unlocked status from root.
    1
    There's a thread in the MotoX forum about this as well, and iKrYpToNiTe decompiled the update for those interested in everything it's asking for. Root check is the second method from the bottom. Here's the [Source Link].

    Code:
    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";
          }
        }
      }
    }
    1
    De-compilation says differently:

    Code:
      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";
          }
        }
      }