Hi, I'm new to XDA Developers but have been using as a valuable resource over the past few months.
We have a HTC Touch Pro 2 device (WM6.5) that we provide support for to a number of personnel. The client have requested that we change the device settings so that photos have the timestamp applied and secondly that it not be possible to take it off again.
Since we have somewhere in the region of 600 devices to update, we'll need to do this via a registry change through our updates service. Try as I might though, I can not find the setting to do either of these. I have searched on here and google and can't find the answer. Has anyone done this before?
Thanks in advance.
I've been doing some digging on this and found a registry key under
HKEY_Local_Machine\SOFTWARE\HTC\Camera\Image
called 'enableStamp'. However, when I change this on Visual Studio 2005 remote registry tool, it doesn't seem to make any difference on the phone, the menu option stays the same. Likewise, the menu doesn't seem to change the registry which leads me to think it's another setting someplace or the settings are stored elsewhere.
Thanks in advance for any help.
I've finally made a breakthrough on this. I had to export the entire registry, change the value, export the registry again and compare the files. I found that this value
HKEY_CURRENT_USER\Software\HTC\Camera\6.16\Preferences
contains a large Hex value string and found that change a value that was 48 (timestamp off) to C8 (timestamp on) was reflected on the device. This string seems to have a lot of values so I'm assuming they are all to do with options selected in the camera menu. I just hope one of them is to disable the timestamp option now. I've posted this here in the hope it helps someone else.
Rebranded to WP8 Registry Tools from Lumia Registry Modifier
This is a basic registry viewer/editor demonstration using Registry dlls pulled from Nokia xaps within the latest FFUs.
First, a few things to note.
1) This only retrieves values from HKEY_LOCAL_MACHINE
2) It CAN read DWORD values now, but can't write. (Hell you probably won't be able to write ANYWHERE, but the code is there)
Instructions are quite simple.
To Read Values:
1) Put the Registry key in the first box (ex. SOFTWARE\Classes\MIME\Database\Codepage\1254
2) Put the Registry Value in the second box (ex. 1254)
3) Press Get Value.
To Set Values:
1) Put the Registry key in the first box (ex. SOFTWARE\Classes\MIME\Database\Codepage\1254
2) Put the Registry Value in the second box (ex. 1254)
3) Put the new registry value result in the Set Value box.
4) Press Set Value.
This is very very basic, but I wanted to just show off something using what Nokia has provided us.
We can't write dword values unfortunately so hopes of using this to change the MaxUnsignedApp value are lost. This MAY be possible with @GoodDayToDie 's WP8NativeAccess library, but with this it isn't.
In case everyone wondered what that key is... SOFTWARE\Microsoft\DeviceReg\Install
Side load away
Hmm... I get Access Denied in my library on most keys that I've tried to write. If you can write the codepage, that's interesting (generally speaking, HKLM has stronger protections). I'll double-check whether I can write there myself. If not, but you can, then we have an elevated privilege attack vector...
Also, we should see whether the app runs on non-Nokia devices. I suspect that it will, if it works the way I think it does, but in that case it also won't have much in the way of permissions.
Getting DWORDs to work is a good project, I'm sure it's possible (works fine in NativeAccess, incidentally).
EDIT: Any chance you could include the source?
snickler said:
This is a basic registry viewer/editor demonstration using Nokia's Native Registry dll pulled from one of their apps.
First, a few things to note.
1) This only retrieves values from HKEY_LOCAL_MACHINE
2) DWord values aren't supported.
Instructions are quite simple.
To Read Values:
1) Put the Registry key in the first box (ex. SOFTWARE\Classes\MIME\Database\Codepage\1254
2) Put the Registry Value in the second box (ex. 1254)
3) Press Get Value.
To Set Values:
1) Put the Registry key in the first box (ex. SOFTWARE\Classes\MIME\Database\Codepage\1254
2) Put the Registry Value in the second box (ex. 1254)
3) Put the new registry value result in the Set Value box.
4) Press Set Value.
This is very very basic, but I wanted to just show off something using what Nokia has provided us.
This doesn't seem to work with dword values unfortunately so hopes of using this to change the MaxUnsignedApp value are lost. This MAY be possible with @GoodDayToDie 's WP8NativeAccess library, but with this it isn't.
In case everyone wondered what that key is... SOFTWARE\Microsoft\DeviceReg\Install
Side load away
Click to expand...
Click to collapse
atleast its a start.
GoodDayToDie said:
Hmm... I get Access Denied in my library on most keys that I've tried to write. If you can write the codepage, that's interesting (generally speaking, HKLM has stronger protections). I'll double-check whether I can write there myself. If not, but you can, then we have an elevated privilege attack vector...
Also, we should see whether the app runs on non-Nokia devices. I suspect that it will, if it works the way I think it does, but in that case it also won't have much in the way of permissions.
Getting DWORDs to work is a good project, I'm sure it's possible (works fine in NativeAccess, incidentally).
EDIT: Any chance you could include the source?
Click to expand...
Click to collapse
ah yes, sorry about that. Let me load up my laptop
EDIT: Source added.
Hi I found the Registry item
(File path : <ffu>\Windows\Packages\RegistryFiles\SOFTWARE.REG)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\KindMap
where we can set extensions and their types.so is it possible to add a new extension so that it will also be supported and visible in sdcard ?
vivekkalady said:
Hi I found the Registry item
(File path : <ffu>\Windows\Packages\RegistryFiles\SOFTWARE.REG)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\KindMap
where we can set extensions and their types.so is it possible to add a new extension so that it will also be supported and visible in sdcard ?
Click to expand...
Click to collapse
It doesn't support creating new key values, only modifying existing ones. If the data is within one key value and it's able to be read, then it should be able to have things added to it.
EDIT: From what I've seen, what you're trying to do won't be possible with this. Each extension has a different key value.
We may need to start an "interesting registry values" thread here, similar to the one for WP7. Of course, it'll be more interesting if we can actually change any of them.
Oh, and the app works on my ATIV S, just by the way. Need to find some interesting paths to test it on, though.
EDIT: Have you been able to write to *any* values using this? It fails for me every time, but I haven't tried that many yet.
GoodDayToDie said:
We may need to start an "interesting registry values" thread here, similar to the one for WP7. Of course, it'll be more interesting if we can actually change any of them.
Oh, and the app works on my ATIV S, just by the way. Need to find some interesting paths to test it on, though.
EDIT: Have you been able to write to *any* values using this? It fails for me every time, but I haven't tried that many yet.
Click to expand...
Click to collapse
it has failed for me also. The only values I could write to were the ones that corresponded to Nokia. I'll look through the code again and make another update. I'm going to also rebrand it since it works for non Lumia phones.
Interesting about the Nokia paths working. That could be some characteristic of the DLL you use having better permissions or something specific to OEM stuff, but I actually suspect it's just that Nokia didn't bother to lock down the ACLs on their parts of the registry. You can easily adapt the app to my NativeRegistry class to test this, if you want.
Hmm that's a good idea. I just rebranded it to WP8 Registry Modifier. I'll add in your NativeRegistry class to work along with the RegistryRT class to see what comes about.
DWORD support
For DWORD support, take a look at the Nokia.SilentInstaller.Runtime.wim... The "CSilentInstallerRuntime" class contains multiple methods to interact with the registry including:
CreateKey
GetRegDWORDValue
GetRegSZValue
GetRegSZValueL
IsRegistryDWORDValueExists
IsRegistryKeyExists
IsRegistryREGSZValueExists
SetRegDWORDValue
SetRegSZValue
A bit off topic, I found a way to launch any URI... Literally, ANY URI (app:// http:// or anything). I can launch any application (using the GUID - so it must be a registered application but doesn't have to be one that you see in your programs list) and go to a specific page within that application. I can also pass any kind of query string that could unlock some hidden features in an application (such as the Extras+Info application - I can launch it using any dial string even though my ROM has that particular dial string disabled). I do so by launching a Toast message which allows me specify a launch uri and once it pops up, I click it. If anyone's interested, I can post a code sample for that...
@GoodDayToDie I'm able to read DWORDs with your NativeRegistry framework. I haven't been able to write though (I've only looked at the MaxUnsignedApp reg value).
What I think I'm going to do is possibly scrap the RegistryRT framework and just use yours. I can then make an even more robust app.
cpuguy said:
For DWORD support, take a look at the Nokia.SilentInstaller.Runtime.wim... The "CSilentInstallerRuntime" class contains multiple methods to interact with the registry including:
CreateKey
GetRegDWORDValue
GetRegSZValue
GetRegSZValueL
IsRegistryDWORDValueExists
IsRegistryKeyExists
IsRegistryREGSZValueExists
SetRegDWORDValue
SetRegSZValue
A bit off topic, I found a way to launch any URI... Literally, ANY URI (app:// http:// or anything). I can launch any application (using the GUID - so it must be a registered application but doesn't have to be one that you see in your programs list) and go to a specific page within that application. I can also pass any kind of query string that could unlock some hidden features in an application (such as the Extras+Info application - I can launch it using any dial string even though my ROM has that particular dial string disabled). I do so by launching a Toast message which allows me specify a launch uri and once it pops up, I click it. If anyone's interested, I can post a code sample for that...
Click to expand...
Click to collapse
I was actually looking at the SilentInstaller not long ago. I got sidetracked by the fact that I could use the NativeRegistry read DWORD values. I'll check that out and upload a new build in a few
GoodDayToDie said:
We may need to start an "interesting registry values" thread here, similar to the one for WP7. Of course, it'll be more interesting if we can actually change any of them..
Click to expand...
Click to collapse
I can write one up later. I have several registry keys that I'd like to bring attention to.
NOTE: I don't see anything editable yet, at least I can read it to compare it to the files in the ffu.
Launching a URI should be possible more directly than that, using ShellExecute, or similar, but that way is cool (and doesn't require importing unofficial native functionality).
Just a word of warning: NativeRegistry is under heavy modification. I hope to have the next Alpha release done soon, which brings a ton of changes, but in the meantime you might want to follow the changes on CodePlex; while I test every build that I push, I don't always publish the binaries.
There will be two ways to use the registry through NativeAccess soon: one is to use fairly thin wrappers around the native functions (that's mostly what's implemented now, but it will be expanded to include key and value enumeration, key creation, etc.), and the other is to use a class more akin to a .NET RegistryKey class, offering the ability to interact in a more object-oriented manner (where the object itself represents an open key).
Something I did notice when I tried to compile the NativeRegistry source (I just ended up using the binary you had for my testing) is that it kept blowing up on the include for WinReg.h. I don't have that anywhere. Am I missing something?
snickler said:
Something I did notice when I tried to compile the NativeRegistry source (I just ended up using the binary you had for my testing) is that it kept blowing up on the include for WinReg.h. I don't have that anywhere. Am I missing something?
Click to expand...
Click to collapse
I'm not sure how GoodDayToDie did it himself (probably same approach I take it) but I compiled it using the "WinReg.h" from the Windows 8 SDK and removing the desktop-only compiler "if" instruction (lines 49 and 1446). And like he mentioned, you also have to create the KERNALBASE.LIB with the required registry export functions for the linker.
cpuguy said:
I'm not sure how GoodDayToDie did it himself (probably same approach I take it) but I compiled it using the "WinReg.h" from the Windows 8 SDK and removing the desktop-only compiler "if" instruction (lines 49 and 1446). And like he mentioned, you also have to create the KERNALBASE.LIB with the required registry export functions for the linker.
Click to expand...
Click to collapse
Ah ok, thanks!
cpuguy said:
A bit off topic, I found a way to launch any URI... Literally, ANY URI (app:// http:// or anything). I can launch any application (using the GUID - so it must be a registered application but doesn't have to be one that you see in your programs list) and go to a specific page within that application. I can also pass any kind of query string that could unlock some hidden features in an application (such as the Extras+Info application - I can launch it using any dial string even though my ROM has that particular dial string disabled). I do so by launching a Toast message which allows me specify a launch uri and once it pops up, I click it. If anyone's interested, I can post a code sample for that...
Click to expand...
Click to collapse
Yes, please post your code and give yourself your own thread (at least keep it here in development ). There are a lot of underlying dialer codes that Nokia disabled when flashing the 928s. Also this could mean we could have a custom app launcher, if you wanted to customize it that way. Most of the work we have done on WP8 has occurred in the past few months; we are finally getting so close to the first InteropUnlock for Nokia/WP8.
Sent from my RM-860 (Lumia 928) using the OFFICIAL Tapatalk app.
I'm trying to figure out the correct method prototype (since this is a method that appears to be WinPhone only and isn't part of the SDK so, no details on it whatsoever)... I stumbled upon this toast functionality in "NokiaFrameworkOBAWinPRT.dll" under the "DevPropHelper" class. The method to call is "InvokeToast". This method ends up calling "Shell_PostMessageToast" in "ShellChromeAPI.dll" (this is what I'm trying to invoke directly without going through the Nokia dll).
Add a reference in your project to "NokiaFrameworkOBAWinPRT.winmd" (you can find this in newer versions of the Extras+Info app)
Add the necessary <InProcessServer> tag (to allow the "NokiaFrameworkOBAWinPRT.DevPropHelper" class) in the <ActivatableClasses> section of you WMAppManifest.xml file
In the code... Create an instance of "NokiaFrameworkOBAWinPRT.DevPropHelper"
In the code... Call the "InvokeToast" method (of the previously created object) passing it:
Application GUID (can be your local app's GUID - doesn't seem to matter)
URI to launch in string format
Toast title (can be anything)
Toast content(can be anything)
When the Toast notification pops up, click on it and that's it.
This is a new thread created in order to clean up most of the Hacking and Development forums. Several hardworking developers and myself (I can't exactly call my self a developer, but I still can contribute in some way) have been plugging hours into this and it needs its own thread in order to help understand what Interop was for WP7, how it worked then, and how we work for finding it in WP8. For most of this, I can't say I'm a definitive source for this type of knowledge. I'm just another WP8 user who wishes for more tweaks .
Anyways, I have a few PMs to send and this and the next few posts will be updated with the relevant information.
EDIT: This first post will be about the process to getting close edit things required for InteropUnlock on WP8 devices as of now, as it hasn't been achieved yet.
At the moment the complete process requires installation of WP SDK and/or installing Windows Phone Power Tools, downloading and deploying @snickler 's Lumia Registry Editor.
snickler said:
I did find THIS.
Code:
[HKEY_LOCAL_MACHINE\Software\Microsoft\DeviceReg\Install]
"MaxUnsignedApp"=dword:7FFFFFFF"
That translates to the value of InteropUnlock by default which means we should be able to sideload more than 10 apps at a time.
I also found these within policy xml files.
Code:
Microsoft.BaseOS.SecurityModel.policy.xml
<Capability ElementID="2EF45E94A01864DE3387212D6E73AEA885E709AD0F24FB97FE2E84728CB09D14" AttributeHash="49B8EC80A54998B68D7F65A44A340FD28B535494B7A41D650FD94851E38A6B6B" Id="ID_CAP_DEVELOPERUNLOCK" AppCapSID="S-1-15-3-1024-2489250862-3731101856-757172019-2830005102-2903107461-2549818383-1921265406-345878668" SvcCapSID="S-1-5-21-2702878673-795188819-444038987-1443" FriendlyName="Enable bearing chamber to load unsigned modules" Visibility="Internal" />
<Capability ElementID="BAFBED1970753822A266C1985F4A2CA2BA7A97CCE149F874743D00F678643C26" AttributeHash="54A2744DE064E139FD4403623C2AB9F1E130BC5C0786F56C1CE39AC814DC3F03" Id="ID_CAP_DEVELOPERUNLOCK_API" AppCapSID="S-1-15-3-1024-435026874-574125424-2562811554-2720811615-3432479418-1962428897-4127210868-641492088" SvcCapSID="S-1-5-21-2702878673-795188819-444038987-1450" FriendlyName="Enable setting of registry key protecting developer unlock mode." Visibility="Internal">
<CapabilityRules>
<Rules>
<RegKey ElementID="F0921CC3ADB2FEE5B7DC90F9F2BBDDB6E4D7BFAF9CE189C1585A90CD71E36882" DACL="(A;CI;KRKW;;;S-1-15-3-1024-435026874-574125424-2562811554-2720811615-3432479418-1962428897-4127210868-641492088)(A;CI;KRKW;;;S-1-5-21-2702878673-795188819-444038987-1030)(A;CI;KRKW;;;S-1-5-21-2702878673-795188819-444038987-1450)" Flags="515" Path="HKEY_LOCAL_MACHINE\Software\Microsoft\SecurityManager" />
</Rules>
</CapabilityRules>
</Capability>
<Capability ElementID="BAFBED1970753822A266C1985F4A2CA2BA7A97CCE149F874743D00F678643C26" AttributeHash="54A2744DE064E139FD4403623C2AB9F1E130BC5C0786F56C1CE39AC814DC3F03" Id="ID_CAP_DEVELOPERUNLOCK_API" AppCapSID="S-1-15-3-1024-435026874-574125424-2562811554-2720811615-3432479418-1962428897-4127210868-641492088" SvcCapSID="S-1-5-21-2702878673-795188819-444038987-1450" FriendlyName="Enable setting of registry key protecting developer unlock mode." Visibility="Internal">
<CapabilityRules>
<Rules>
<RegKey ElementID="F0921CC3ADB2FEE5B7DC90F9F2BBDDB6E4D7BFAF9CE189C1585A90CD71E36882" DACL="(A;CI;KRKW;;;S-1-15-3-1024-435026874-574125424-2562811554-2720811615-3432479418-1962428897-4127210868-641492088)(A;CI;KRKW;;;S-1-5-21-2702878673-795188819-444038987-1030)(A;CI;KRKW;;;S-1-5-21-2702878673-795188819-444038987-1450)" Flags="515" Path="HKEY_LOCAL_MACHINE\Software\Microsoft\SecurityManager" />
</Rules>
</CapabilityRules>
</Capability>
Click to expand...
Click to collapse
How Interop works
I'll start by adding this from a different thread
GoodDayToDie said:
It's a valid point. Interop-unlock loosened a lot of restrictions on WP7, and was presumably used by OEMs and MOs who needed easy ability to install ID_CAP_INTEROPSERVICES apps to test their high-privilege apps.
However, in WP8, things are different. What capabilities can be installed is now controlled via the policy engine, or whatever it's WP8 equivalent is called. Policy "classes" are indicated via key usage identifiers in the certificates used to sign XAPs. ID_CAP_INTEROPSERVICES (and nearly all other interesting capabilities) requires the class intended for use by OEMs. If we can't get our hands on such a signing key, or find some way to spoof it, we may be in a pickle with regard to a jailbreak via this approach.
It's possible that interop-unlock will function much as before too, though; freeing the limitations on app capabilities for all apps, even unsigned ones. It's worth a shot. Somebody might want to decompile the relevant code and investigate, though.
Click to expand...
Click to collapse
Reserved Post 2 - What Interop's purpose served, ect
ssoo I can't read...
Check out the thread I just started/please merge the other thread with this one (If it belongs here). Hopefully my find will be useful! http://forum.xda-developers.com/showthread.php?t=2407441
compu829 said:
Check out the thread I just started/please merge the other thread with this one (If it belongs here). Hopefully my find will be useful! http://forum.xda-developers.com/showthread.php?t=2407441
Click to expand...
Click to collapse
Yes, please move your post. I'd do it voluntary before mods start having to clean this board.
HI all
i was analysing some XAP files from my Nokia 937 rom (1028.3562.1402.0001 ).
i found f8cfb72ef3b442e58508fbee6d4e5567.xap (??? nokia maps ???) with some interesting files in it.
NokiaRegistryUtils.dll
i played with the NativeToastLauncher but can not find the app://xxx path to start this dll
the WMAppManifest.xml also contains :
<Capability Name="ID_CAP_INTEROPSERVICES" />
i uploaded this complete pack to : http://www5.zippyshare.com/v/9853721/file.html
can someone please analyse these files ??? can we use these file(s) for unlocking ?
Thanks in advance
M
p.s. I only want to help you all with (interop)unlocking the nokia lumias !
1) Question threads don't belong in this sub-forum, really...
2) NativeToastLauncher launches pages (usually XAML) in an app, not DLLs (although the XAML will usually be *in* a DLL, in which case the DLL's name is in the launch path).
3) We've known about those libraries for months.
4) We can't use them for unlocks unless we find a way to specify an arbitrary registry key and registry value; something like a mapping app is highly unlikely to have any such mechanism... (it just saves and reads data for its own use).
GoodDayToDie said:
1) Question threads don't belong in this sub-forum, really...
2) NativeToastLauncher launches pages (usually XAML) in an app, not DLLs (although the XAML will usually be *in* a DLL, in which case the DLL's name is in the launch path).
3) We've known about those libraries for months.
4) We can't use them for unlocks unless we find a way to specify an arbitrary registry key and registry value; something like a mapping app is highly unlikely to have any such mechanism... (it just saves and reads data for its own use).
Click to expand...
Click to collapse
OK OK ! thanks for the info
as i said ...i just want to help you all to find the "hole" to unlock these Nokia lumias !
megasounds said:
OK OK ! thanks for the info
as i said ...i just want to help you all to find the "hole" to unlock these Nokia lumias !
Click to expand...
Click to collapse
be sure there's no way in Nokia Xaps .
I searched in them many times , NO Way
ngame said:
be sure there's no way in Nokia Xaps .
I searched in them many times , NO Way
Click to expand...
Click to collapse
I'm 100% sure Nokia developers are monitoring xda forums since Nokia decided to manufacture Windows Phones. And 99.9% sure they already knows about all successful hacks for WP (actually most of these hacks based on the manufacturers bugs).
sensboston said:
I'm 100% sure Nokia developers are monitoring xda forums since Nokia decided to manufacture Windows Phones. And 99.9% sure they already knows about all successful hacks for WP (actually most of these hacks based on the manufacturers bugs).
Click to expand...
Click to collapse
Yes exactly .
Nokia hack is very hard and also want a long way to be success (If we can )
sensboston said:
I'm 100% sure Nokia developers are monitoring xda forums since Nokia decided to manufacture Windows Phones. And 99.9% sure they already knows about all successful hacks for WP (actually most of these hacks based on the manufacturers bugs).
Click to expand...
Click to collapse
It doesn't matter if you can downgrade FW.
1) Downgrade
2) Unlock
3) Update
But. Nobody unlocked even old FW.
Do you have a L950 with Interop Tools installed? If you do, I would really like for you to help me out by checking three registry settings on your phone so that I can try to force Call Recording to be enabled on my L640 and other devices where call recording isn't officially supported.
With your phone and Interop Tools, please browse to the below location:
Interop Tools -> Registry Browser -> HKEY_LOCAL_MACHINE -> Software -> Microsoft -> Phone -> Settings ->
Can you please post the values for the below three keys on your handset?
PreferredRecordingApplication
RecordingFeatureDisabled
RecordingOff
Thanks so much for your help!
Vasrias: WindowsCentral said:
PreferredRecordingApplication "Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe"
RecordingFeatureDisabled "0"
RecordingOff "1"
Click to expand...
Click to collapse
So, with those values in place, there is no change in the Phone nor the Phone settings apps on my L640. It looks like there are other keys that determine whether or not these UI elements are exposed.
Does anyone have any further ideas?
you cant enable call recording on Lumia 640 because native WP8.x devices not support it and simple registry value not change anything... only W10M devices (550, 650, 950 and 950XL) support call recording
dxdy said:
you cant enable call recording on Lumia 640 because native WP8.x devices not support it and simple registry value not change anything... only W10M devices (550, 650, 950 and 950XL) support call recording
Click to expand...
Click to collapse
They don't support it because... Why, exactly? Missing system files? Registry keys (Confirmed)? Firmware differences? Hardware deficiencies?
I'm sorry, but a simple "they don't" isn't sufficient. My Lumia 640 also didn't support DNG RAW until I changed a registry key, so... Yeah.
topic about this problem already exist... is not problem in registry or missing files...
most likely due to old firmware's but for now no hope for old devices.
dxdy said:
topic about this problem already exist... is not problem in registry or missing files...
most likely due to old firmware's but for now no hope for old devices.
Click to expand...
Click to collapse
Thank you. I'll try to seek out that thread to learn more.
my advice: forgot it. is nothing useful...
http://forum.xda-developers.com/windows-10/windows-10-mobile/call-recording-lumia-640-640xl-t3311005