[Q] advances 1.1 send IMEI to server

Search This thread

Dys66

Member
Oct 16, 2010
16
15
Hi all,

I searched the forum but cannot find one thread about this topic.

has anyone noticed that the app AdvanceS 1.1 send the IMEI to a server called loc.lidroid.com ?
Can anyone explain why this should nessesary ???

Thx in advance

Dys
 
Last edited:

buster041284

Senior Member
Feb 6, 2011
1,866
1,124
Whitehaven
Hi all,

I searched the forum but cannot find one thread about this topic.

has anyone noticed that the app AdvanceS 1.1 (which is probably part of Omega-ROM) send the IMEI to a server called loc.lidroid.com ?
Can anyone explain why this should nessesary ???

Thx in advance

Dys

I would get rid of that app no one should have your IMEI number that is really bad for you

Sent from my Nexus 4 using Tapatalk 2
 

Dys66

Member
Oct 16, 2010
16
15
......and report it too Google while you are at it, if it came from the play store

I froze it for now with Titanium.
But AdvanceS seems to be part of lidroid Mod which is probably included with Omega and other ROMS and is NOT out of Google Play.
Seems to be a config-tool for SystemUI. I don't used it so far ...
Therefore I think it will reactivated when I flash a new version of the ROM.
 
  • Like
Reactions: deom2i

buster041284

Senior Member
Feb 6, 2011
1,866
1,124
Whitehaven
I froze it for now with Titanium.
But AdvanceS seems to be part of lidroid Mod which is probably included with Omega and other ROMS and is NOT out of Google Play.
Seems to be a config-tool for SystemUI. I don't used it so far ...
Therefore I think it will reactivated when I flash a new version of the ROM.

I see what it is control toggles app for lidroid delete it no matter what should not be uploading your IMEI number dev or no dev

Sent from my Nexus 4 using Tapatalk 2
 

graffixnyc

Retired Forum Mod / Inactive Recognized Developer
Jan 21, 2011
6,627
6,486
New York City
www.graffixnyc.com
OP Was this mod something you got off XDA? If so could you point me to it. I know of the mod and I've used it in my own roms but like others have said, It shouldn't be uploading your IMEI number anywhere. If it is, you might have gotten a hacked version of the mod with maliciousness code. If the source is XDA please let me know ASAP so we can look into it. If it's not from XDA then there really isn't much we can do about it
 

buster041284

Senior Member
Feb 6, 2011
1,866
1,124
Whitehaven
OP Was this mod something you got off XDA? If so could you point me to it. I know of the mod and I've used it in my own roms but like others have said, It shouldn't be uploading your IMEI number anywhere. If it is, you might have gotten a hacked version of the mod with maliciousness code. If the source is XDA please let me know ASAP so we can look into it. If it's not from XDA then there really isn't much we can do about it

Now That's what i call swift action :thumbup: he did say he mite of come woth omega rom so that could mean he did not install a apk

Sent from my Nexus 4 using Tapatalk 2
 
Last edited:

Dys66

Member
Oct 16, 2010
16
15
just looked at loc.lidroid.com - seems to list phone numbers, all seem to be in China though ...

Hmm, it seems NOT inside my Omega Package.
But I never installed any apps from other locations than XDA or google play.
I will try to find the app in the files i got on my harddisk ...
The app is named "com.lidroid.settings" when I see it right in Titanium
It maintains a database "telocation.db" ... the content seems to be chinese :S
I exported the content for further investigation and will uninstall and delete that crap from my phone ...
Hope that droidwall has blocked the network access :S
 

DSA

Senior Member
May 15, 2011
4,740
5,777
Hmm, it seems NOT inside my Omega Package.
But I never installed any apps from other locations than XDA or google play.
I will try to find the app in the files i got on my harddisk ...
The app is named "com.lidroid.settings" when I see it right in Titanium
It maintains a database "telocation.db" ... the content seems to be chinese :S
I exported the content for further investigation and will uninstall and delete that crap from my phone ...
Hope that droidwall has blocked the network access :S

Info - im assuming omegarom uses 23 toggle mod from lidroid - that app is the options app, deleting it will disable 23 toggle customization

and the app is called LidroidSettings.apk - its in v38 which i have
 

Dys66

Member
Oct 16, 2010
16
15
Info - im assuming omegarom uses 23 toggle mod from lidroid - that app is the options app, deleting it will disable 23 toggle customization

and the app is called LidroidSettings.apk - its in v38 which i have

I checked it with "LogMan logcat" from google play ...
It was pretty lucky that I tested this tool ...
If you want to check your phone you can start LogMan right after a phone reboot ...
 
  • Like
Reactions: slaphead20

graffixnyc

Retired Forum Mod / Inactive Recognized Developer
Jan 21, 2011
6,627
6,486
New York City
www.graffixnyc.com
Hmm, it seems NOT inside my Omega Package.
But I never installed any apps from other locations than XDA or google play.
I will try to find the app in the files i got on my harddisk ...
The app is named "com.lidroid.settings" when I see it right in Titanium
It maintains a database "telocation.db" ... the content seems to be chinese :S
I exported the content for further investigation and will uninstall and delete that crap from my phone ...
Hope that droidwall has blocked the network access :S

The apk for Lidroid is in /system/framework

I don't have my GS3 with me today (I also have the mod) so I can't check. I'll shoot a PM over to the Dev who created Lidroid and ask him

the other app it uses is Quicksettings.apk (I believe that's the name off the top of my head)
 
  • Like
Reactions: slaphead20

wanam

Recognized Developer / Inactive RC
Jan 26, 2011
6,209
30,012
Toulouse
wanam.net
OnePlus 7T
Sony Xperia 5 III
I don't have the device on my hand to check, but i guess it's because of the Telocation service, i used to hide this tab on my ports, but i didn't remove the services, because i tough it uses the local database.

Anyway i will repack a new one asap.

Edit : i repacked a new one (attached), i removed all telocation dependencies, i had to remove others tab for safety.
 

Attachments

  • GT-I9300_WanamLite.AdvanceS.DisabledTelocation.zip
    703 KB · Views: 271
Last edited:

graffixnyc

Retired Forum Mod / Inactive Recognized Developer
Jan 21, 2011
6,627
6,486
New York City
www.graffixnyc.com
I don't have the device on my hand to check, but i guess it's because of the Telocation service, i used to hide this tab on my ports, but i didn't remove the services, because i tough it uses the local database.

Anyway i will repack a new one asap.

Edit : i repacked a new one (attached), i removed all telocation dependencies, i had to remove others tab for safety.

Thanks wanam. Is there any need for people to be worried about this from a security perspective?
 

wanam

Recognized Developer / Inactive RC
Jan 26, 2011
6,209
30,012
Toulouse
wanam.net
OnePlus 7T
Sony Xperia 5 III
Thanks wanam. Is there any need for people to be worried about this from a security perspective?

In my opinion no need to worry, this service was included in all Lidroid Roms since GS2 days for Chinese users only, i can't confirm that Lidroid save any information remotely.

I need to check the telocation sources, this may give us more information about this issue.



Sent from my GT-N7100 using Tapatalk 2
 

wanam

Recognized Developer / Inactive RC
Jan 26, 2011
6,209
30,012
Toulouse
wanam.net
OnePlus 7T
Sony Xperia 5 III
I just decompiled telocation sources here is the content of the guilty file:
Code:
package com.lidroid.settings.telocation;

import android.content.*;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.telephony.TelephonyManager;
import android.util.Log;
import com.google.protobuf.InvalidProtocolBufferException;
import com.lidroid.providers.telocation.DatabaseHelper;
import java.io.InputStream;
import java.net.URL;

// Referenced classes of package com.lidroid.settings.telocation:
//            HttpReader

public class UpdateUtils
{

    public UpdateUtils(Context context)
    {
        mOpenHelper = new DatabaseHelper(context, null);
        mDeviceId = ((TelephonyManager)context.getSystemService("phone")).getDeviceId();
        mContext = context;
    }

    private void updateMob(Telocation.mob_location mob_location)
    {
        ContentResolver contentresolver = mContext.getContentResolver();
        Uri uri = Uri.parse((new StringBuilder()).append("content://com.lidroid.providers.telocation/mobile/").append(mob_location.getTel()).toString());
        Cursor cursor = contentresolver.query(uri, null, null, null, null);
        boolean flag;
        ContentValues contentvalues;
        if(cursor != null && cursor.getCount() > 0)
            flag = true;
        else
            flag = false;
        if(cursor != null)
            cursor.close();
        contentvalues = new ContentValues();
        contentvalues.put("_id", mob_location.getTel());
        contentvalues.put("location", mob_location.getLocation());
        contentvalues.put("areacode", mob_location.getAreacode());
        if(flag)
            contentresolver.update(uri, contentvalues, null, null);
        else
            contentresolver.insert(Uri.parse("content://com.lidroid.providers.telocation/mobile"), contentvalues);
    }

    private void updateSp(Telocation.sp_info sp_info)
    {
        ContentResolver contentresolver = mContext.getContentResolver();
        Uri uri = Uri.parse((new StringBuilder()).append("content://com.lidroid.providers.telocation/sp/").append(sp_info.getTel()).toString());
        Cursor cursor = contentresolver.query(uri, null, null, null, null);
        boolean flag;
        ContentValues contentvalues;
        if(cursor != null && cursor.getCount() > 0)
            flag = true;
        else
            flag = false;
        if(cursor != null)
            cursor.close();
        contentvalues = new ContentValues();
        contentvalues.put("addr", sp_info.getTel());
        contentvalues.put("name", sp_info.getName());
        if(flag)
            contentresolver.update(uri, contentvalues, null, null);
        else
            contentresolver.insert(Uri.parse("content://com.lidroid.providers.telocation/sp"), contentvalues);
    }

    public long upgrade()
    {
        InputStream inputstream;
        HttpReader httpreader;
        inputstream = null;
        httpreader = null;
        Uri uri;
        HttpReader httpreader1;
        uri = Uri.parse("content://com.lidroid.providers.telocation/ver");
        int i = mContext.getContentResolver().update(uri, null, null, null);
        [COLOR="Red"]URL url = new URL((new StringBuilder()).append("http://loc.lidroid.com/update/").append(i).append("/").append(Build.DISPLAY).append("/").append(mDeviceId).toString());[/COLOR]
        Log.d("xiaoym", (new StringBuilder()).append("http://loc.lidroid.com/update/").append(i).append("/").append(Build.DISPLAY).append("/").append(mDeviceId).toString());
        httpreader1 = new HttpReader(url);
        Telocation.update update;
        int j;
        int k;
        inputstream = httpreader1.getStream();
        update = Telocation.update.parseFrom(inputstream);
        j = update.getMobCount();
        k = update.getSpCount();
        if(update.getMobCount() != 0) goto _L2; else goto _L1
_L1:
        int k1 = update.getSpCount();
        if(k1 != 0) goto _L2; else goto _L3
_L3:
        long l;
        l = 0L;
        if(inputstream == null)
            break MISSING_BLOCK_LABEL_197;
        inputstream.close();
        if(httpreader1 != null)
            httpreader1.close();
_L6:
        return l;
_L2:
        int i1 = 0;
_L5:
        if(i1 >= j)
            break; /* Loop/switch isn't completed */
        updateMob(update.getMob(i1));
        i1++;
        if(true) goto _L5; else goto _L4
_L13:
        int j1;
        for(; j1 < k; j1++)
            updateSp(update.getSp(j1));

        Uri uri1 = ContentUris.withAppendedId(uri, update.getVersion());
        mContext.getContentResolver().update(uri1, null, null, null);
        l = j + k;
        if(inputstream == null)
            break MISSING_BLOCK_LABEL_306;
        inputstream.close();
        if(httpreader1 != null)
            httpreader1.close();
          goto _L6
        InvalidProtocolBufferException invalidprotocolbufferexception;
        invalidprotocolbufferexception;
_L12:
        l = -2L;
        if(inputstream == null)
            break MISSING_BLOCK_LABEL_334;
        inputstream.close();
        if(httpreader != null)
            httpreader.close();
          goto _L6
        Exception exception4;
        exception4;
          goto _L6
        Exception exception2;
        exception2;
_L11:
        l = -3L;
        if(inputstream == null)
            break MISSING_BLOCK_LABEL_365;
        inputstream.close();
        if(httpreader != null)
            httpreader.close();
          goto _L6
        Exception exception3;
        exception3;
          goto _L6
        Exception exception;
        exception;
_L10:
        if(inputstream == null)
            break MISSING_BLOCK_LABEL_390;
        inputstream.close();
        if(httpreader != null)
            httpreader.close();
_L8:
        throw exception;
        Exception exception1;
        exception1;
        if(true) goto _L8; else goto _L7
_L7:
        exception;
        httpreader = httpreader1;
        if(true) goto _L10; else goto _L9
_L9:
        Exception exception5;
        exception5;
        httpreader = httpreader1;
          goto _L11
        InvalidProtocolBufferException invalidprotocolbufferexception1;
        invalidprotocolbufferexception1;
        httpreader = httpreader1;
          goto _L12
        Exception exception6;
        exception6;
          goto _L6
        Exception exception7;
        exception7;
          goto _L6
_L4:
        j1 = 0;
          goto _L13
    }

    public static final long CONNECT_LIDROID_FAILED = -3L;
    public static final long INVALID_TELOCATION_DATA = -2L;
    public static final long NO_UPDATE = 0L;
    public static final long OPEN_WRITABLE_DATABASE_ERROR = -1L;
    private Context mContext;
    private String mDeviceId;
    private DatabaseHelper mOpenHelper;
}

Lidroid uses this class to collect stats about his users build, this classe call a remote service and save the installed build number for each device ID.

For stats purposes? maybe, i think he wouldn't logged it if he want to use it for bad purposes, Lidroid is the only one who can give us more lights about this.

Anyway the new repacked one is safe to use, i will update my toggles threads asap.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 18
    I just decompiled telocation sources here is the content of the guilty file:
    Code:
    package com.lidroid.settings.telocation;
    
    import android.content.*;
    import android.database.Cursor;
    import android.net.Uri;
    import android.os.Build;
    import android.telephony.TelephonyManager;
    import android.util.Log;
    import com.google.protobuf.InvalidProtocolBufferException;
    import com.lidroid.providers.telocation.DatabaseHelper;
    import java.io.InputStream;
    import java.net.URL;
    
    // Referenced classes of package com.lidroid.settings.telocation:
    //            HttpReader
    
    public class UpdateUtils
    {
    
        public UpdateUtils(Context context)
        {
            mOpenHelper = new DatabaseHelper(context, null);
            mDeviceId = ((TelephonyManager)context.getSystemService("phone")).getDeviceId();
            mContext = context;
        }
    
        private void updateMob(Telocation.mob_location mob_location)
        {
            ContentResolver contentresolver = mContext.getContentResolver();
            Uri uri = Uri.parse((new StringBuilder()).append("content://com.lidroid.providers.telocation/mobile/").append(mob_location.getTel()).toString());
            Cursor cursor = contentresolver.query(uri, null, null, null, null);
            boolean flag;
            ContentValues contentvalues;
            if(cursor != null && cursor.getCount() > 0)
                flag = true;
            else
                flag = false;
            if(cursor != null)
                cursor.close();
            contentvalues = new ContentValues();
            contentvalues.put("_id", mob_location.getTel());
            contentvalues.put("location", mob_location.getLocation());
            contentvalues.put("areacode", mob_location.getAreacode());
            if(flag)
                contentresolver.update(uri, contentvalues, null, null);
            else
                contentresolver.insert(Uri.parse("content://com.lidroid.providers.telocation/mobile"), contentvalues);
        }
    
        private void updateSp(Telocation.sp_info sp_info)
        {
            ContentResolver contentresolver = mContext.getContentResolver();
            Uri uri = Uri.parse((new StringBuilder()).append("content://com.lidroid.providers.telocation/sp/").append(sp_info.getTel()).toString());
            Cursor cursor = contentresolver.query(uri, null, null, null, null);
            boolean flag;
            ContentValues contentvalues;
            if(cursor != null && cursor.getCount() > 0)
                flag = true;
            else
                flag = false;
            if(cursor != null)
                cursor.close();
            contentvalues = new ContentValues();
            contentvalues.put("addr", sp_info.getTel());
            contentvalues.put("name", sp_info.getName());
            if(flag)
                contentresolver.update(uri, contentvalues, null, null);
            else
                contentresolver.insert(Uri.parse("content://com.lidroid.providers.telocation/sp"), contentvalues);
        }
    
        public long upgrade()
        {
            InputStream inputstream;
            HttpReader httpreader;
            inputstream = null;
            httpreader = null;
            Uri uri;
            HttpReader httpreader1;
            uri = Uri.parse("content://com.lidroid.providers.telocation/ver");
            int i = mContext.getContentResolver().update(uri, null, null, null);
            [COLOR="Red"]URL url = new URL((new StringBuilder()).append("http://loc.lidroid.com/update/").append(i).append("/").append(Build.DISPLAY).append("/").append(mDeviceId).toString());[/COLOR]
            Log.d("xiaoym", (new StringBuilder()).append("http://loc.lidroid.com/update/").append(i).append("/").append(Build.DISPLAY).append("/").append(mDeviceId).toString());
            httpreader1 = new HttpReader(url);
            Telocation.update update;
            int j;
            int k;
            inputstream = httpreader1.getStream();
            update = Telocation.update.parseFrom(inputstream);
            j = update.getMobCount();
            k = update.getSpCount();
            if(update.getMobCount() != 0) goto _L2; else goto _L1
    _L1:
            int k1 = update.getSpCount();
            if(k1 != 0) goto _L2; else goto _L3
    _L3:
            long l;
            l = 0L;
            if(inputstream == null)
                break MISSING_BLOCK_LABEL_197;
            inputstream.close();
            if(httpreader1 != null)
                httpreader1.close();
    _L6:
            return l;
    _L2:
            int i1 = 0;
    _L5:
            if(i1 >= j)
                break; /* Loop/switch isn't completed */
            updateMob(update.getMob(i1));
            i1++;
            if(true) goto _L5; else goto _L4
    _L13:
            int j1;
            for(; j1 < k; j1++)
                updateSp(update.getSp(j1));
    
            Uri uri1 = ContentUris.withAppendedId(uri, update.getVersion());
            mContext.getContentResolver().update(uri1, null, null, null);
            l = j + k;
            if(inputstream == null)
                break MISSING_BLOCK_LABEL_306;
            inputstream.close();
            if(httpreader1 != null)
                httpreader1.close();
              goto _L6
            InvalidProtocolBufferException invalidprotocolbufferexception;
            invalidprotocolbufferexception;
    _L12:
            l = -2L;
            if(inputstream == null)
                break MISSING_BLOCK_LABEL_334;
            inputstream.close();
            if(httpreader != null)
                httpreader.close();
              goto _L6
            Exception exception4;
            exception4;
              goto _L6
            Exception exception2;
            exception2;
    _L11:
            l = -3L;
            if(inputstream == null)
                break MISSING_BLOCK_LABEL_365;
            inputstream.close();
            if(httpreader != null)
                httpreader.close();
              goto _L6
            Exception exception3;
            exception3;
              goto _L6
            Exception exception;
            exception;
    _L10:
            if(inputstream == null)
                break MISSING_BLOCK_LABEL_390;
            inputstream.close();
            if(httpreader != null)
                httpreader.close();
    _L8:
            throw exception;
            Exception exception1;
            exception1;
            if(true) goto _L8; else goto _L7
    _L7:
            exception;
            httpreader = httpreader1;
            if(true) goto _L10; else goto _L9
    _L9:
            Exception exception5;
            exception5;
            httpreader = httpreader1;
              goto _L11
            InvalidProtocolBufferException invalidprotocolbufferexception1;
            invalidprotocolbufferexception1;
            httpreader = httpreader1;
              goto _L12
            Exception exception6;
            exception6;
              goto _L6
            Exception exception7;
            exception7;
              goto _L6
    _L4:
            j1 = 0;
              goto _L13
        }
    
        public static final long CONNECT_LIDROID_FAILED = -3L;
        public static final long INVALID_TELOCATION_DATA = -2L;
        public static final long NO_UPDATE = 0L;
        public static final long OPEN_WRITABLE_DATABASE_ERROR = -1L;
        private Context mContext;
        private String mDeviceId;
        private DatabaseHelper mOpenHelper;
    }

    Lidroid uses this class to collect stats about his users build, this classe call a remote service and save the installed build number for each device ID.

    For stats purposes? maybe, i think he wouldn't logged it if he want to use it for bad purposes, Lidroid is the only one who can give us more lights about this.

    Anyway the new repacked one is safe to use, i will update my toggles threads asap.
    17
    I don't have the device on my hand to check, but i guess it's because of the Telocation service, i used to hide this tab on my ports, but i didn't remove the services, because i tough it uses the local database.

    Anyway i will repack a new one asap.

    Edit : i repacked a new one (attached), i removed all telocation dependencies, i had to remove others tab for safety.
    12
    At the beginning this is used statistics on how many people use my tel location service, but now I removed the statistics.
    In order to ensure that the older user is also able to use this service, this interface is still retained.
    I promise I didn't save any information about the user.:p
    9
    OP Was this mod something you got off XDA? If so could you point me to it. I know of the mod and I've used it in my own roms but like others have said, It shouldn't be uploading your IMEI number anywhere. If it is, you might have gotten a hacked version of the mod with maliciousness code. If the source is XDA please let me know ASAP so we can look into it. If it's not from XDA then there really isn't much we can do about it
    8
    Hi all,

    I searched the forum but cannot find one thread about this topic.

    has anyone noticed that the app AdvanceS 1.1 send the IMEI to a server called loc.lidroid.com ?
    Can anyone explain why this should nessesary ???

    Thx in advance

    Dys