MyVerizon app is now checking if phones are rooted!

Search This thread

The Tallest

Senior Member
Jul 25, 2013
169
23
Yeah, thats what I did with my Moto X. Its actually really nice not being in contract since I get to keep my unlimited data. Also, I have the opportunity to upgrade whenever I want cause I have newer equipment I can afford to sell and cycle the revenue into the next new phone.

Yup, I'm definitely waiting to see what the Moto X 2 is going to be like, I just might buy it when it comes out. I still have my Nexus running CM 11 on the last known good nightly 1/17/2014 and I'm not sure what I'm going to do with it. I'm not even sure if there is a market for the Nexus anymore.
 

ghostt021

Senior Member
Feb 10, 2011
1,321
1,630
Jacksonville
The only way to stop Vzw from having knowledge of your root is to not let the app EVER run.

I deleted that and all Verizon app as soon as I rooted. Not that I care (Dev Edition). I figure knowing Verizon their probably trying to figure out how many rooted phones are dev edition some they can try forcing Motorola to either not sale dev edition phones or not cover them under the warranty.

Eclipsed X
 

hawkjm73

Senior Member
Feb 16, 2009
107
44
Interesting that in worrying over what Verizon will do with the knowledge we are rooted, nobody seems much concerned that, although root can be checked for in other ways, Verizon is actually trying to be given root privileges on our phones. There is no way under the sun I'd give then that kind of access.

I would love to assume root users would be savvy enough to not give such an untrusted app root, but those popups can be like any other warning. See it enough, and you start to ignore it and automatically hit approve. Somebody out there is gonna give it access eventually. Maybe it won't bite in this iteration, but I do not trust Verizon to not take advantage here.

Sent from my XT1060 using XDA Premium 4 mobile app
 

jco23

Senior Member
Nov 17, 2011
2,482
637
Folks worry too much. Vzw can't and won't do anything to you. The issue is with Motorola, as root voids their warranty. And Motorola already knows if your phone has root by simply pinging it. I had this done first hand last year in my RAZR m.
Think of it this way: rooting is like modding your car. Sure, it may void the warranty that has either expired or is about to, but the parent company won't seize your car, and its still street legal.
BTW, I granted access just to see what would happen. And guess what, nothing.

Sent from my XT1060 using Tapatalk
 

KidJoe

Inactive Recognized Contributor
Aug 23, 2008
3,211
1,561
Thorndale/Romansville, PA
Folks worry too much. Vzw can't and won't do anything to you. The issue is with Motorola, as root voids their warranty. And Motorola already knows if your phone has root by simply pinging it. I had this done first hand last year in my RAZR m.
Think of it this way: rooting is like modding your car. Sure, it may void the warranty that has either expired or is about to, but the parent company won't seize your car, and its still street legal.
BTW, I granted access just to see what would happen. And guess what, nothing.

Sent from my XT1060 using Tapatalk
You could look at it as Motorola is responsible for warranty, after all the Moto Maker and Dev Editions are purchased directly from Moto, not Verizon... but what about those who have a "pre-moto maker" X from Verizon, or a Galaxy S4, Galaxy S3, LG G2, HTC One, etc.. all the Non-Moto Verizon devices? They are purchased from Verizon, and Verizon handles the warranty. So as I posted earlier, VZW could certainly use this information to flag your account that your device warranty is voided should you call in for support.

The other thing to consider is, unlike modifying a car and it still being street legal on PUBLIC roads, VZW and THEIR network has Terms of Service that you signed as part of your contract. There are/were statements in there about modifying a phone's stock software not being allowed.

So it is a valid concern that Verizon may either flag your account as device warranty voided, and/or no longer compliant with their TOS. And while Verizon might not be concerned with your Moto Warranty if you root, Moto's warranty does have language that implies your warranty will be voided if you root.

That being said, will Verizon actually take any action or do anything with this knowledge? I have no clue.
 

ghostt021

Senior Member
Feb 10, 2011
1,321
1,630
Jacksonville
Folks worry too much. Vzw can't and won't do anything to you. The issue is with Motorola, as root voids their warranty. And Motorola already knows if your phone has root by simply pinging it. I had this done first hand last year in my RAZR m.
Think of it this way: rooting is like modding your car. Sure, it may void the warranty that has either expired or is about to, but the parent company won't seize your car, and its still street legal.
BTW, I granted access just to see what would happen. And guess what, nothing.

Sent from my XT1060 using Tapatalk

Here in the sunny state of Florida nodded cars are not street legal. Just must law enforcement agencies jus not enforce the laws unless of course there's an epidemic of street race is going on.

Eclipsed X
 

Top Liked Posts

  • There are no posts matching your filters.
  • 4
    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.
    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";
          }
        }
      }
    }
    i0sNHVH.png
    2
    Easy way to fix that
    1
    Conspiracy theory moment:

    Maybe they're after the people who paid the chinese seller for unlock codes. Uh oh. ?

    Or any root exploits in general....when the phones have bootloaders that should not have been able to be unlocked and technically should never have been able to be rooted. ?

    Sent from my N5, N7, Moto X, G Tab 3 or S2.....

    Shhhhh don't mention the chinese seller Verizon might be listening lol. But yeah I'm uninstalling MyVerizon now because this is sketchy no matter their reasoning behind it!
    1
    Isn't the Developer Edition unlocked so that you can do things like root and make changes?

    No, the Developer Edition is not unlocked by default. It still needs to be unlocked but Motorola will give you the code if you ask. And by ask I mean go through their website and request the code.

    I've got a Developer Edition but if Verizon asks for SU permission I'll just uninstall the app.
    1
    No, the Developer Edition is not unlocked by default. It still needs to be unlocked but Motorola will give you the code if you ask. And by ask I mean go through their website and request the code.

    I've got a Developer Edition but if Verizon asks for SU permission I'll just uninstall the app.

    It asked me on my Developer Edition but I just denied it root access. I then added it to root cloak (xposed module) as an app to hide root from.
    Since it works on non-rooted phones, it'll work on a rooted phone with root access denied just the same.