My Verizon App Requesting Root Access

Search This thread

Dragon31337

Senior Member
Sep 27, 2010
153
47
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";
      }
    }
  }
 
  • Like
Reactions: aviwdoowks

2THEXTRM

Member
Feb 1, 2012
24
5
Syracuse
I have updated to last Verizon app and did not receive a prompt to allow root privileges. I am unlocked and rooted on stock Rom. I double checked my Super SU and verified the usual apps are listed.

Sent from my XT1080 using Xparent Skyblue Tapatalk 2
 

marinegundoctor

Senior Member
Nov 21, 2011
514
202
Iowa
Here's what I did:

I had this issue pop up after installing 'My Verizon' after I flashed Hyperdrive15 to my GS4. I didn't respond to the request and just let it time out.
I then force-closed My Verizon.
Using Xposed Framework:
I added it to the RootCloak module.
I used the module 'App Settings' (ver 1.8) and removed the following permissions from 'My Verizon Mobile':
  • CAMERA
  • GET_TASKS
  • KILL_BACKGROUND_PROCESSES
  • READ_EXTENAL_STORAGE
  • WRITE_EXTERNAL_STORAGE
I believe these are most likely so the app can act as a security app in case the phone is lost or stolen. VZW offers a 'premium' insurance for US$10 a month that provides the features. They try and push it down your throat every time you ask about insurance or add a phone. I keep telling them there are plenty of free apps that do the same things and more for free.
Anyhow, that's what these perms are most likely for, however, like most things in life they can be used for other things by big red I'm sure. Especially the GET_TASKS perm.
 

jrobin

Member
Apr 8, 2010
22
2
They are attempting to get root for the purpose of logging your rooted status only they know what they will use the information for. I forget who but someone on XDA has already examined the apk I determine what it was doing.

Sent from my XT1080 using Tapatalk
 

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