EM app in DVP - Windows Phone 7 Development and Hacking

Hi guys, using the Webserver app by davux (thanks heaps!) I found Dell's EM diagnostic program in the Windows directory with the license file (not that its of much use)
Unfortunately my programming skills aren't up to scratch (java 2.0...i know its old) and I'm not very good with VS2010
maybe someone can pick apart the DLLs in the XAP file and hopefully figure out how to SIM unlock the DVP and gain access to other password protected parts of the diagnostic program

do i see...native??? Someone drop a PM to xbox asap

Some real good code you got here, able to get:
App.EMInterface.polling("EM:RESET_SCREENLOCK_TIMER;", new PollingDataHandler(this.handler), 25000);
App.EMInterface.sync("EM:COMPASS_GET;", 1);
App.EMInterface.sync("EM:LCD_OFF", 1, false);
public const string ValidComAssemblyName = "OurCOM.dll"; (the native)
public const string ValidComGuid = "E2A22F82-0E6A-4ee9-A56D-2677EBE81F2E";
Code:
case "#CIT_END":
page.changeContent(new Cit_end());
return;
case "#SDCARD":
page.changeContent(new SDCard());
return;
case "#FM_RADIO":
page.changeContent(new CITFMRadio());
return;
case "#AUDIO_LOOP":
page.changeContent(new AudioLoopEarphone());
return;
case "#KEYPAD":
page.changeContent(new Keypad());
return;
case "#KEYPAD_NOFOCUS":
page.changeContent(new Keypad_nofocus());
return;
case "#LCD_DISPLAY":
page.changeContent(new LCDDisplayTest());
return;
case "#CAMERA":
page.changeContent(new Cameratest());
return;
case "#TOUCH_PAD":
page.changeContent(new SingleFingerTest());
return;
case "#LED_TEST":
page.changeContent(new LED());
return;
case "#VIBRATOR":
page.changeContent(new Vibrator());
return;
case "#BACKLIGHT":
page.changeContent(new Backlight());
return;
case "#SIMCARD":
page.changeContent(new simcard());
return;
case "#BATTERY":
if (str.Length > 1)
{
rootVisual.DataContext = str;
}
page.changeContent(new Battery(str));
return;
case "#CHARGING":
page.changeContent(new charging());
return;
case "#ECOMPASS":
page.changeContent(new CITECompassTest());
return;
case "#GSENSOR":
page.changeContent(new CITGsensorTest());
return;
case "#L/PSENSOR":
page.changeContent(new CITLightProximityTest());
return;
case "#SLIDER":
page.changeContent(new slider());
return;
more to come.

bigger question beyond code
anything useful for registry backdoors or native dll like htc?

OH YEAH! this.IEmToCom.sync("EM:REGISTRY_GET:" HKEY > etc

Code:
this.sync_result = this.IEmToCom.sync("EM:FILE_COPY:" + this.TB_file_path.Text + ";", 1, false);
if (this.sync_result.IsSuccessed == 0)
{
this.TB_result.Text = this.sync_result.content;
}
else
{
this.TB_result.Text = this.sync_result.IsSuccessed.ToString();
}

fiinix said:
OH YEAH! this.IEmToCom.sync("EM:REGISTRY_GET:" HKEY > etc
Click to expand...
Click to collapse
THAT'S WHAT I WANTED TO SEE
so unlike provxml that string gets direct registry access?

domineus said:
THAT'S WHAT I WANTED TO SEE
so unlike provxml that string gets direct registry access?
Click to expand...
Click to collapse
looks like it
this.sync_result = this.IEmToCom.sync("EM:REGISTRY_SET:"
also:
this.IEmToCom.polling(@"EM:REGISTRY_GET:System\Platform\DeviceTargetingInfo,MODeviceName,REG_SZ,2;"

...I just came...and hard...
wow okay that's hot
but it looks like to make changes we may have to uninstall and reinstall em.xap no?

dont you just make your own app and use the dlls? no need to reinstall EM?

The EM:Registry Set only works for new entries. It doesn't work for updating current entries..Still deep diving.

There is also a app /page within EM called EM_2010_03_24..Has anyone gotten around invoking it?

Those hacks for windows phone is based om COM wrappers that are microsoft signed with public methods to the c++ dll's.
Just copy the signed dll+com wrapper in to a new project, not harder than that (add reference to com wrapper).
Good explanation for u?

Did some digging in reflector, here are the about pages you can get to from within EM and what they do:
RD Test > *#6336#
RD Test > About EM > *#301#
Bootloader Composite / Zune
Teleport Mode Enable / Disable
Unlock Sensor Key
CIT Order
Cold Boot
EM [Clickable]
DRIVER
UISOCKET
RD Test > About EM > *#684#
NV Read/Write Page
RD Test > About EM > 6814
EM in EM
Run 'EM:' commands
Sync OR Polling calls
File Copy
Just wires up the EM:FILE_COPY command to a UI
RD Test > About EM > *#734#
Registry Read/Write [Write only works for new values?]

can verify register does not work for old values...only for new values

domineus said:
can verify register does not work for old values...only for new values
Click to expand...
Click to collapse
Can you give an example for a new value working? I tried the 'enabling wireless N' and nothing happened.

notebookgrail said:
Can you give an example for a new value working? I tried the 'enabling wireless N' and nothing happened.
Click to expand...
Click to collapse
I think it has more to do with where you're writing to, it doesn't seem that EM has rights to change or add keys that require privileges.

Any new information on this one? Has anyone gotten a new/changed entry to work?

Can we use this app on DVP?
http://forum.xda-developers.com/showthread.php?t=1238519

Ephez said:
Can we use this app on DVP?
http://forum.xda-developers.com/showthread.php?t=1238519
Click to expand...
Click to collapse
No.. This is samsung specific as HTC phones have easier workarounds to use provxmls. It uses the GPRS Manager within the Samsung Focus/Omnia's Diagnosis App which isn't available for the DVP.

Related

[Q] How to delete/add an item from a ListBox?

Hi there,
I have a ListBox bounded to a query (linq to xml)
Dim CASDAs XDocument = XDocument.Load("./Data/CASD.xml")
Dim CAS_Query As System.Collections.IEnumerable = From query In Cartridge_Doc.Descendants("Cartridges") Order By _
CStr(query.Element("AA")) Descending, CStr(query.Element("AA"))
Select New Cartridge_Data With {.AA1 = CStr(query.Element("AA")), _
.BB1= CStr(query.Element("BB")), _
.CC1 = CStr(query.Element("CC"))}
Me.ListBox_1.ItemsSource = CAS_Query
Now, what I need to do is to select an item and have the option to delete it.
So far, I always got a run-time exception when trying this
Me.ListBox_1.Items.Remove(Me.ListBox_1.SelectedItem)
System.InvalidOperationException was unhandled
Message=Operation not supported on read-only collection.
So far I have tried a lot of options without any luck.
Any help will be greatly appreciated!
Thanks in advance.
Stick your Linq result in an ObservableCollection, bind this to the Listbox and delete the item directly from the underlaying collection.
emigrating said:
Stick your Linq result in an ObservableCollection, bind this to the Listbox and delete the item directly from the underlaying collection.
Click to expand...
Click to collapse
Please, can you poost a little code to do that? I'm fairly new to this collections world.
On the other hand, once the item got deleted, how the Listbox gets refreshed?
Thanks!
You have to set up an NotifyPropertyChanged class to keep the listbox updated with your collection. The default phone list application template that comes with Visual Studio shows you how to do this. I think its's in c# though and it looks like you're coding in VB. I'm sure there's examples in VB you can find on the web with a little searching.
Ren13B said:
You have to set up an NotifyPropertyChanged class to keep the listbox updated with your collection. The default phone list application template that comes with Visual Studio shows you how to do this. I think its's in c# though and it looks like you're coding in VB. I'm sure there's examples in VB you can find on the web with a little searching.
Click to expand...
Click to collapse
My ListBox takes its data from an XML file via query.
Which strategy do you think is the best?
To first delete the Xelement then refresh the ListBox?
Or deleting from the item from the ListBox, then update the XML file?
Sorry but I have all the samples from MS and didn't find any phone list one.
Any code will be greatly appreciated!
Oops. It's called "Windows Phone Databound Application". Attached is a screenshot of the project if it makes it easier for you to find it.
It's hard to post code because I don't know what your xaml looks like and bindings have to be set there for it to work. The best thing you can do is load the above project and play around with it.
You never have to refresh the items in the listbox. A bound listbox updates itself when an item in the collection changes. Change the collection and your listbox will reflect those changes. The NotifyPropertyChanged class is what triggers the listbox to update itself.
I do C#, not VB but the following should give you some idea.
Code:
public class Model : INotifyPropertyChanged
{
public string Title { get; set; }
public string Blurb { get; set; }
public event PropertyChangedEventHandler PropChanged;
public void NotifyPropertyChanged(String _propName)
{
if (null!=PropChanged)
{ PropChanged(this, new PropertyChangedEventArgs(_propName)); }
}
}
The above is your model, create any properties you need there - i.e. one per item of data in your XML file.
Next, you need to create an ObservableCollection somewhere, for the sake of simplicity let's stick it in your MainPage.xaml.cs file for now, so;
Code:
public partial class MainPage : PhoneApplicationPage
{
public ObservableCollection<Model> Items { get; set; }
public MainPage()
{
InitializeComponent();
this.Items = new ObservableCollection<Model>();
MyListBox.ItemsSource = this.Items;
WebClient wc = new WebClient();
wc.OpenReadCompleted += wc_OpenReadCompleted;
wc.OpenReadAsync(new Uri("http://your.server.here/datafile.xml");
}
public void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
using (Stream s = e.Result)
{
XDocument xd = Xdocument.Load(s);
var XMLdata = (from q in doc.Descendants("Item") select new Model()
{
Title = (string)q.Element("Title"),
Blurb = (string)q.Element("Blurb")
}
foreach (Model m in XMLdata)
{
this.Items.Add(m);
}
}
}
public MyListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBox lb = (ListBox)sender;
if (lb.SelectedIndex == -1)
return;
this.Items.Remove(lb.SelectedItem)
}
}
This will create a collection named Items as well as tell your ListBox (named MyListBox) to get it's data from said collection. Then it will read (asynchroniously) the XML file from the web and copy each item of data into your collection.
When you select an item in your ListBox it will be deleted from the ObservableCollection which in turn will remove it from the view (ListBox). At this stage you want to include code to also remove this from your actual XML file and so on of course. But the idea is that you work on your Collection only and your View will update based on what is changed - automagically.
Please note, the above code may or may not work out of the box. Written directly here on the forums so it hasn't gone thru VS2010's excellent IntelliSense. Also, the above code is in no way the most efficient way of doing certain things, but it gives you an idea as to what code you need to write to handle your scenario.
While I wrote this I see you've got an answer above which directs you to the VS template - use that and everything should become clear. All you have to remember is that perform operations on the Collection - not directly on the ListBox and you'll be fine.
Emigrating and Ren13B,
Thanks to both of you for the help. Very appreciated!
Will take both advices to see what comes up.
Thanks!

[Q] ListBox Binding Error with Observable Collection

Hi all!
Since days I have a problem now. I have an app that manage Entries in a list A. If one of these entries End-Date is today I whant that entry to be shown in a second list B. This is checked when I return from the "addNewItem" Window so I use onNavigatedTo.
Code:
// Static Variables
public static ObservableCollection<Item> lstToday = new ObservableCollection<Item>();
public static ObservableCollection<Item> lstWeek = new ObservableCollection<Item>();
public static ObservableCollection<Item> lstAll = new ObservableCollection<Item>();
// Constructor
public MainPage()
{
InitializeComponent();
MessageBox.Show("Initialize Component");
lbToday.ItemsSource = lstToday;
lbWeek.ItemsSource = lstWeek;
lbAll.ItemsSource = lstAll;
}
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
DateTime currentDate = DateTime.Now;
foreach (Item item in lstAll)
{
if (item.endDate.ToString("yyyy'-'MM'-'dd").Equals(currentDate.ToString("yyyy'-'MM'-'dd")))
{
lstToday.Add(item);
MessageBox.Show("Item '" + item.name + "' added to Todaylist");
}
}
}
private void appBarNew_Click(object sender, EventArgs e)
{
NavigationService.Navigate(new Uri(string.Format("/EditAddItem.xaml"), UriKind.Relative));
}
After that I get an "System.Diagnostics.Debugger.Break();" error that doesn't occur when I delete "lbToday.ItemsSource = lstToday;" to avoid the ListBox Binding.
With lbAll ist runs without any problems!
Can I bind the Listbox direct to the ObservableCollection in XAML=
I really don't know, whats to do. So do you?
It would make my day!
Thanks!
What is the exception message and stack trace when the exception is thrown? (you can browse the properties of the exception using visual studio).
Your code actually works for me (although I had to make some assumptions about what is in lstAll as you don't mention that, and you may have an error in the DataTemplate for the listbox for binding your Item class)
Things to try:
Have you tried it with non static observable collections?
Use binding assignments in the xaml rather than setting the itemssource directly (e.g. using a viewmodel). Then you can let the phone engine worry about when to do the assigments. If you do that don't forget to set the page's datacontext property.
Try it with simple collections of strings first (rather than binding an 'item' class) so you can check it's working without a datatemplate.
Hope you fix it.
Ian

Successful TCP Connection via CoreCon

So during my break today I added a few more registry paths to check on my HTC Radar and I found HKCU\Software\Microsoft\ConMan\HostLauncher\HostData\. There I found a few Service entries:
Code:
7ABBE0D5-B437-42CA-B57B-CEED61680E4F
11EE50CA-6CD3-45BA-9D65-46E133CFF009
B2FC26AB-D6EC-4426-91FA-9E039F92A639
The first entry did not take me any where but the other two did.
Running those in my test application sent back:
Code:
Int32Type: 0
Int32Type: -2147024809
I know it isnt much and I am not sure what to send to the ConMan so if someone does please tell me:
Code:
private static void ExecutionTest()
{
#region Create Objects
ObjectId DeviceID = new ObjectId("30F105C9-681E-420b-A277-7C086EAD8A4E");
Platform platform = datastoremanager.GetPlatform(PlatformObjectID);
Device device = platform.GetDevice(DeviceID);
#endregion
try
{
//Connect to the device.
device.Connect();
if (device.IsConnected())
{
RemoteAgent ra = device.GetRemoteAgent(new ObjectId("910DCB1B-487B-452b-87FC-73852B5A239C"));
DevicePacketStream ps = ra.CreatePacketStream(new ObjectId(new Guid("11EE50CA-6CD3-45BA-9D65-46E133CFF009")));
// Create and write a packet of data.
Packet packet;
packet = new Packet();
for (int i = 0; i < 4; i++) packet.WriteInt32(i);
packet.WriteString("Hello Smart Device");
ps.Write(packet);
#region While stream is connected, try to read a packet.
while (ps.IsConnected())
{
if (ps.IsPacketAvailable())
{
packet = ps.Read();
while (!packet.IsEndOfPacket())
{
switch (packet.ReadDataType())
{
case DataType.BoolType: bool boolValue = packet.ReadBool(); break;
case DataType.ByteArrayType: byte[] buffer = packet.ReadBytes(); break;
case DataType.ByteType: byte byteValue = packet.ReadByte(); break;
case DataType.CharType: char charValue = packet.ReadChar(); break;
case DataType.Int32Type: Console.WriteLine("Int32Type: " + packet.ReadInt32().ToString()); break;
case DataType.StringType: Console.WriteLine("String: " + packet.ReadString()); break;
default: break;
}
}
break;
}
System.Threading.Thread.Sleep(1000);
}
#endregion
}
}
catch (Exception ex)
{
throw ex;
}
finally { device.Disconnect(); }
}
Huh, you got the remote "GetRemoteAgent" working. Right?
I think i might know how to resolve what to call in to the packet. VS2010 talks to wp7, and uses one of those GUID's; meaning one should be able do binary search all files (in a rom) to see who owns the GUID (what dll handler), disassemble that dll (to ASM/c), and extract "what it wants".
Or if MS has a hidden caller class somewhere
Ill look further into this, thanks
fiinix said:
Huh, you got the remote "GetRemoteAgent" working. Right?
I think i might know how to resolve what to call in to the packet. VS2010 talks to wp7, and uses one of those GUID's; meaning one should be able do binary search all files (in a rom) to see who owns the GUID (what dll handler), disassemble that dll (to ASM/c), and extract "what it wants".
Or if MS has a hidden caller class somewhere
Ill look further into this, thanks
Click to expand...
Click to collapse
Yes I did . Yeah I just need to know what to actually send to to the device. I know Visual Studio communicates this way.
MJCS said:
Yes I did . Yeah I just need to know what to actually send to to the device. I know Visual Studio communicates this way.
Click to expand...
Click to collapse
Great
I, myself tried 20+ GUID's once (from wp7 that _could_ be); all threw exceptions (aka not a remote agent handler).
It feels better now knowing what GUID's i can use.
Well the reg path was quite obvious; why did i not stumble upon that one earlier..
fiinix said:
Great
I, myself tried 20+ GUID's once (from wp7 that _could_ be); all threw exceptions (aka not a remote agent handler).
It feels better now knowing what GUID's i can use.
Well the reg path was quite obvious; why did i not stumble upon that one earlier..
Click to expand...
Click to collapse
Well I only found it since I know have an HTC Radar. My Dell venue pro requires you to manually enter in registry paths to see if they exist or not. I was able to decompile an older HTC registry viewer and then fix it so it didnt require interop unlock.
It should be possible to do registry browsing (but not editing) just fine on a DVP using the standard tools, unless there's a check that specifically blocks them. The browsing uses a native homebrew DLL that doesn't require ID_CAP_INTEROPSERVICES and has no device-specific dependencies. It's the editing that requires interop-unlock and device-specific DLLs.
GoodDayToDie said:
It should be possible to do registry browsing (but not editing) just fine on a DVP using the standard tools, unless there's a check that specifically blocks them. The browsing uses a native homebrew DLL that doesn't require ID_CAP_INTEROPSERVICES and has no device-specific dependencies. It's the editing that requires interop-unlock and device-specific DLLs.
Click to expand...
Click to collapse
There is no GetSubKeys method...anyways lets get back on topic.
I've been trying for weeks to get anything out of this. Nothing so far. I did find out that the Developer unlock is just a byte array of a cookie taken from Microsoft's auth server.
Has anyone had any success with this socket method yet? I really don't know enough about sockets to try.
BTW you have to have a core con connection to the device already open either from app debugging or some other method

Interesting things in APKs in our phones...

So in my digging around on garbage to remove... I started digging in ConnectionManager.apk. Several things kind of set me off a bit (code below). I don't claim to know exactly what it does but I can read enough of it to figure I don't want it running on my phone. EdmSysScopeService also had some interesting things in it(third block of code below). So I removed the connectionmanager.apk from the phone since I was reflashing some zips. Apparently that's not a good idea. If you do that, it breaks the Mobile Networks settings menu. So I put it back and just froze it in Titanium Backup for now. Looks like that works and it simply greys out the ConnectionsOptimizer section. I don't need that running on my phone anyways as I can turn on and turn off wifi myself.
Anyone know what the EdmSysScopeService does?
Code:
private boolean isDeviceRooted()
{
boolean bool1 = true;
String str = Build.TAGS;
if ((str != null) && (str.contains("test-keys")));
while (true)
{
return bool1;
try
{
boolean bool2 = new File("/system/app/Superuser.apk").exists();
if (bool2)
continue;
label40: bool1 = false;
}
catch (Throwable localThrowable)
{
break label40;
}
}
}
Code:
package com.birdstep.android.cm.sms;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
import com.birdstep.android.cm.ESLog;
import com.birdstep.android.cm.UpdaterService;
import com.birdstep.android.cm.config.ConfigXmlParser;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class OperatorMessage extends BroadcastReceiver
{
private static final String ANDROID_PERMISSION_READ_SMS = "android.permission.READ_SMS";
public void onReceive(Context paramContext, Intent paramIntent)
{
if (ESLog.on)
Log.i("EasySmart", "on Receive OperatorMessage OperatorMessage OperatorMessage " + paramIntent.getAction());
ConfigXmlParser localConfigXmlParser = ConfigXmlParser.getConfigXmlParser(paramContext);
if (("android.provider.Telephony.SMS_RECEIVED".equals(paramIntent.getAction())) && (paramContext.getPackageManager().checkPermission("android.permission.READ_SMS", "com.birdstep.android.cm") == 0))
{
Bundle localBundle = paramIntent.getExtras();
if (localBundle != null)
{
Object[] arrayOfObject = (Object[])localBundle.get("pdus");
if (arrayOfObject != null)
{
SmsMessage[] arrayOfSmsMessage = new SmsMessage[arrayOfObject.length];
HashMap localHashMap = new HashMap(arrayOfObject.length);
int i = 0;
if (i < arrayOfSmsMessage.length)
{
arrayOfSmsMessage[i] = SmsMessage.createFromPdu((byte[])(byte[])arrayOfObject[i]);
if (!localHashMap.containsKey(arrayOfSmsMessage[i].getOriginatingAddress()))
localHashMap.put(arrayOfSmsMessage[i].getOriginatingAddress(), arrayOfSmsMessage[i].getMessageBody());
while (true)
{
i++;
break;
String str1 = (String)localHashMap.get(arrayOfSmsMessage[i].getOriginatingAddress());
String str2 = str1 + arrayOfSmsMessage[i].getMessageBody();
localHashMap.put(arrayOfSmsMessage[i].getOriginatingAddress(), str2);
}
}
Iterator localIterator = localHashMap.entrySet().iterator();
while (localIterator.hasNext())
{
Map.Entry localEntry = (Map.Entry)localIterator.next();
if ((((String)localEntry.getKey()).equalsIgnoreCase(localConfigXmlParser.itemString("ExtraOperatorMessageNumber"))) || (((String)localEntry.getKey()).equalsIgnoreCase(localConfigXmlParser.itemString("WisprCredentialsSmsPhoneNr"))) || (((String)localEntry.getKey()).equalsIgnoreCase(localConfigXmlParser.itemString("account_balance_number_sms"))) || (((String)localEntry.getKey()).equalsIgnoreCase(localConfigXmlParser.itemString("topup_number_sms"))))
{
Intent localIntent = new Intent(paramContext, UpdaterService.class);
localIntent.setAction("com.birdstep.cm.ACTION_OPERATOR_SMS_RECEIVED");
localIntent.putExtra("SMSCONTENTS", (String)localEntry.getValue());
localIntent.putExtra("SMSNUMBER", (String)localEntry.getKey());
paramContext.startService(localIntent);
abortBroadcast();
}
}
}
}
}
}
}
Code:
package com.sec.android.app.sysscope.service;
public enum ResultCode
{
private int mCode;
private String mDescription = "";
static
{
ADB_RUNNING_AS_ROOT = new ResultCode("ADB_RUNNING_AS_ROOT", 1, 65537);
PARTITION_TAMPERED = new ResultCode("PARTITION_TAMPERED", 2, 131073);
ROOT_PROCESS_FOUND = new ResultCode("ROOT_PROCESS_FOUND", 3, 12289);
DANGEROUS_FILE_DETECTED = new ResultCode("DANGEROUS_FILE_DETECTED", 4, 262145);
NOT_OFFICIAL_BINARY = new ResultCode("NOT_OFFICIAL_BINARY", 5, 327681);
ResultCode[] arrayOfResultCode = new ResultCode[6];
arrayOfResultCode[0] = OK;
arrayOfResultCode[1] = ADB_RUNNING_AS_ROOT;
arrayOfResultCode[2] = PARTITION_TAMPERED;
arrayOfResultCode[3] = ROOT_PROCESS_FOUND;
arrayOfResultCode[4] = DANGEROUS_FILE_DETECTED;
arrayOfResultCode[5] = NOT_OFFICIAL_BINARY;
}
Not sure, but since the galaxy S3 I've froze all that and much more questionable system apps
.:Sent from my Sprint Galaxy Note II:.
Not sure, but Settings/About/Status shows if the counter has been reset. So there must be code somewhere that populates that field with data.
ffolkes said:
Not sure, but Settings/About/Status shows if the counter has been reset. So there must be code somewhere that populates that field with data.
Click to expand...
Click to collapse
Does this reset back if when you go back to stock?
Hopefully it isnt the newest CarrierIQ....
Well, when I freeze the syscope apk and enterprise syscope apk I get this: Scanning... l'd Put up a pic, but it won't let me.
Sent from my SPH-L900 using xda premium
Carrier IQ anyone? As for the second one it could be for warranty voiding if you root..but I'm no expert
Sent from my Galaxy Nexus using Tapatalk 2
nuc noob said:
Well, when I freeze the syscope apk and enterprise syscope apk I get this: Scanning... l'd Put up a pic, but it won't let me.
Sent from my SPH-L900 using xda premium
Click to expand...
Click to collapse
Interesting...more stuff to rip out! The pile is getting bigger by the minute
From a simple Google search sysscope determines if your phones moddifed and make some Samsung accessories not work with the phone...
Sent from my Galaxy Nexus using Tapatalk 2
Wordlywisewiz said:
Carrier IQ anyone? As for the second one it could be for warranty voiding if you root..but I'm no expert
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
Now, thankfully I haven't found any CarrierIQ stuff.
The connection manager stuff is interesting, actually a pretty good idea for dumb/lazy people. I defrosted it and let it run for a bit. That sucker has logged every single access point my phone has seen. It put them in geographic groups and marked when it last saw them and even marked the ones that were wide open.
Logged the amount of data I used and why I dropped from the access point. Data sessions with amounts of the various access points I connected to.
The individual tower sector IDs along with the access point I was connected to. I assume so later the connection manager can learn where I used WiFi and attempt to use it again in those same areas. Kinda creepy it logs all of it, but it's really public info anyways if you drove around and logged the SSIDs anyways.
Kinda cool and I could see the benefit of it off loading data from the network. But something I don't need on my phone as I can handle my wifi connections myself.
Wordlywisewiz said:
From a simple Google search sysscope determines if your phones moddifed and make some Samsung accessories not work with the phone...
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
That must be why all share doesn't work on roms
sent from my awesomely huge Note II
fryingpan0613 said:
That must be why all share doesn't work on roms
sent from my awesomely huge Note II
Click to expand...
Click to collapse
It should be possible with a modified syscope apk just change a vqlue
Sent from my Galaxy Nexus using Tapatalk 2
Wordlywisewiz said:
It should be possible with a modified syscope apk just change a vqlue
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
Yep. The Connection Manager one would be easy. just change it to Duperuser.apk

Get Device Id used by an App

Hi,
I'm trying to hack an old game (it isn't available in the store anymore) for fun and learning purposes. I'm running W10 but the app is targeted for WP7.
The game encrypts all the files it saves with AES, using the Device Unique Id as the key. It gets the DUID with the following code:
Code:
private string DeviceId
{
get
{
if (string.IsNullOrEmpty(this.id))
{
byte[] numArray = (byte[]) DeviceExtendedProperties.GetValue("DeviceUniqueId");
this.id = "";
foreach (byte num in numArray)
this.id += num.ToString("X2");
if (string.IsNullOrEmpty(this.id))
this.id = "0D0FC36982524EBB25E1CA471F32824286B90F47";
}
return this.id;
}
}
The thing is I don't know how to get that ID from outside the app, which might be unique for the device and publisher. I've searched in all the app files in AppData and seems like it doesn't record the ID anywhere.
I've tried for days and considered other approaches with no luck. Ideas? Suggestions? Any help? Thanks.

Categories

Resources