Hello,
I've got some windows mobile 5 handhelds that I'm running in kiosk mode. One of the applications that can be run from the kiosk has the ability to access Internet Explorer. I want to be able to disable internet explorer so even when the user tries to access this feature, IE will not pop-up.
From what I've seen while searching on google, there is no direct way to remove PIE or even disable it. I've searched ways to black list programs and found this link here: http://www.satter.org/2007/03/lets_shell_some.html. This seems like it would work. It's a registry fix but I can't seem to get the .CPF file to update the configuration on the handheld. The error I get is 'your device settings cannot be changed by Test.cpf'. I assume I need to sign the .CPF file but I am unsure how to do this exactly...
Any thoughts if this will work or other methods???
Thanks!
Zac
Ok so after looking into this further I learned the certificates in the WM5 and 6 SDK folders are outdated. I downloaded newer certificates and installled the updated certs.sdk to the handheld but the cpf file still will not work. The error now is: 'The program or setting could not be installed because it is not digitally signed with a trusted certificate.' The updated certs I got are all trusted (I think). The cert I am using is SDKSamplePrivDeveloper.pfx.
Nevermind, got it to work. I didn't need to do any signing at all, just needed to remove some not needed XML in my _setup.xml file.
For what it's worth, here's the XML to blacklist an application (in this case PIE):
Code:
<?xml version="1.0" encoding="utf-8" ?>
<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKLM\Security\Policies\Shell">
<parm name="DisallowRun" value="1" datatype="integer" />
</characteristic>
<characteristic type="HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun">
<parm name="1" value="iexplore.exe" datatype="string" />
</characteristic>
</characteristic>
</wap-provisioningdoc>
Well done, solved your problem yourself, and in the mean time a new guide generated for people who wanted to do this.
Thansk
madnish30.
hi,
thanks for this tweak very interesting but i'm on WM 6.5.5 Titanium Energy Rom and there is no _setup.xml, can not find it so can not do this tweak or i missed something , could you help, be more explicit...
Second question, is there a possibility to know exactly witch applications, process are launch when windows start?
Thanks
V.
MakeCab Tutorial
voyd said:
hi,
thanks for this tweak very interesting but i'm on WM 6.5.5 Titanium Energy Rom and there is no _setup.xml, can not find it so can not do this tweak or i missed something , could you help, be more explicit...
Second question, is there a possibility to know exactly witch applications, process are launch when windows start?
Thanks
V.
Click to expand...
Click to collapse
Hello,
You create an XML file on your PC called _setup.xml and use makecab.exe that comes with the WM5/6 SDK from the command line to create a CAB file.
But, to make life simpler, I've attached this zip file which has makecab.exe, my _setup.xml, and also a task manager program you can run on WM that I've downloaded (it has a registry editor built into it too, which is convenient ).
To use:
1) Make any changes you need to _setup.xml
2) Run makecab.exe from the command line with this syntax: "makecab _setup.xml <'filename'.cab>"
3) Install this on the handheld, reboot device, run the program you've blacklisted and enjoy the access denied pop up!
Blacklist _setup.xml:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKLM\Security\Policies\Shell">
<parm name="DisallowRun" value="1" datatype="integer" />
</characteristic>
<characteristic type="HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun">
<parm name="1" value="iexplore.exe" datatype="string" /> <!-- change 'value' to whatever program you want blacklisted -->
<!-- <parm name="2" value="ANOTHER_PROGRAM.exe" datatype="string" /> -->
<!-- <parm name="3" value="YET_ANOTHER_PROGRAM.exe" datatype="string" /> -->
</characteristic>
</characteristic>
</wap-provisioningdoc>
Disable Backlist _setup.xml:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<wap-provisioningdoc>
<characteristic type="Registry">
<!-- Disable DisallowRun -->
<characteristic type="HKLM\Security\Policies\Shell">
<parm name="DisallowRun" value="0" datatype="integer" />
</characteristic>
</characteristic>
</wap-provisioningdoc>
To answer your second question, most startup programs will be listed under the /Windows/StartUp folder.
Hope this helps!
madnish30 said:
Well done, solved your problem yourself, and in the mean time a new guide generated for people who wanted to do this.
Thansk
madnish30.
Click to expand...
Click to collapse
Thank you! Glad to help out!
another alternative
Hello people,
Here's another alternative which does not involve making cab files / fiddling with the registry (not all devices support this, since they are ROM_hardcoded);
WM5/6 command DONOTHiNG.EXE copy to device make shortcut link to Program Files
http://www.stephan-brenner.com/?p=190
Rename iexplore.exe to *.bak
Copy donothing.exe to \Windows\
Rename donothing.exe to iexplore.exe
done
Of course there are 101 other wonderfull 'solutions' to think of using donothing.exe
ThanX a ton for these wonder full wapprovisioning xml
FYC:
WinCE CAB Analyzer (MSCEInf): .CAB extraction
ExtenDir CABS .CAB creation (PgDn a bit) (optionally ExtenDir should be switched off if you're not using it!! )
Converting packages or your favorite tweaks to a setup cab was never so easy!
o/~
Senax said:
Hello people,
Here's another alternative which does not involve making cab files / fiddling with the registry (not all devices support this, since they are ROM_hardcoded);
WM5/6 command DONOTHiNG.EXE copy to device make shortcut link to Program Files
http://www.stephan-brenner.com/?p=190
Rename iexplore.exe to *.bak
Copy donothing.exe to \Windows\
Rename donothing.exe to iexplore.exe
done
Of course there are 101 other wonderfull 'solutions' to think of using donothing.exe
Click to expand...
Click to collapse
This method does work, the only concern I had with this was what if an administrator needs to get have access to that program that is overwritten? In my case if I overwrote iexpore.exe then I'd have no way of accessing the internet or downloading any vital programs (unless they were already installed before hand). My device had no way to USB connect and bluetooth file transferring was becoming a pain to get to work so that's why I used the CAB method downloading them first through PIE from a virtual directory then disabling PIE.
But hey, if you're sure you won't need PIE or any other program you want disable this method works great!
Thanks!
Or Batch iT
Why not make a batch file? Use a standard ASCII editor like Notepad.exe and copy + paste the following code (assuming running from C drive). Make sure Word-Wrap = OFF (always while editing (source))!
Code:
@ECHO OFF
@REM renaming of blacklisted application(s) back to original so one can operate executables as expected
C:
CD\
CD Windows\System32\
@REM Remember the short 8.3 filename (stick to that within batch files).
REN YourExecutable.exe donothin.exe
@REM Assuming you renamed original *.exe to *.e_e
REN YourExecutable.e_e Depends.exe
@REM Need to switch drives/partition? Just type its letter D: [ENTER] CD\ [so windows its current PATH is the root of the current drive].
:END
EXiT
Online DOS_Batch handbook
Senax said:
Why not make a batch file? Use a standard ASCII editor like Notepad.exe and copy + paste the following code (assuming running from C drive). Make sure Word-Wrap = OFF (always while editing (source))!
Code:
@ECHO OFF
@REM renaming of blacklisted application(s) back to original so one can operate executables as expected
C:
CD\
CD Windows\System32\
@REM Remember the short 8.3 filename (stick to that within batch files).
REN YourExecutable.exe donothin.exe
@REM Assuming you renamed original *.exe to *.e_e
REN YourExecutable.e_e Depends.exe
@REM Need to switch drives/partition? Just type its letter D: [ENTER] CD\ [so windows its current PATH is the root of the current drive].
:END
EXiT
Online DOS_Batch handbook
Click to expand...
Click to collapse
Nice! Very simple to use!
Dear All,
I'm launching my new application in Android Market, However, It's can't install on user SD Card. I can't figure it out why it is and how to solve it.
Here is the information
1. Project Build on Android 2.2 API
2. AndroidManifest.xml files is declared like this
<manifest xmlns:android="hxxp:........................"
package="freehand.letshammer" android:installLocation="preferExternal" android:versionName="1.2" android:versionCode="3">
<<.........>>
<uses-sdk android:minSdkVersion="3" />
<<.........>>
3. Total application size after install is ~14.8MB
If anyone have clue please give me some advise.
Best Regards,
Chet Chetchaiyan
I have managed to change all the folder icons in the start menu to custom icons except Office mobile 2010.
I have fixed the issue. Thanks to AndrewSH and Poyensa for pointing me in the right direction!
What I forgot to meniton is I am using OS 21913 wich comes with Office 2007. I removed it and upgraded to 2010.
As AndrewSH rightly said the mxipinit_startmenu_001.provxml controls the icons and over rights any reg files that are used. I found the the prov file had an incorrect entry in the start menu. It was pointing to Office Mobile instead of Office Mobile 2010. I updated the following code.
Code:
<characteristic type="Office Mobile 2010">
<parm name="Group" value="1" datatype="boolean" />
<parm name="Rank" value="900000788" datatype="integer" />
<parm name="Icon" value="\Windows\Start_Icon_Office.png" datatype="string" />
I then used Poyensa's idea of renaming the PNG files to suit. Thanks again for all your help guys!
GhostXSeries, file icon.lnk just defines how office folder looks in file explorer - a small office pictogram (like icons inside executables - calculator for example)
The icon for Start Menu (png file which you are trying to change for custom) is defined in mxipinit_startmenu_001.provxml
Code:
<characteristic type="Office Mobile">
<parm name="Group" value="1" datatype="boolean" />
<parm name="Rank" value="900000788" datatype="integer" />
<parm name="Icon" value="\Windows\Start_Icon_Office.png" datatype="string" />
Just to explain - you can not change icon name to ghostbla-bla-bla modifying rgu (or reg) because provxmls are processed AFTER rgu in cooking process. That means - first your setup rgu (or reg) file is processed and your icon is set up, then it's overwritten by provxml and you again have the default meaning in the registry.
Modify your provxml, or name your custom icon like original one and replace in the kitchen.
hi GhostX, why dont you just rename your ghst_office.png as Start_Icon_Office.png? attaching my silver icons as EXT package, just as example ....
Thanks for the reply guys. I did as you suggested and changed the icon names, but it hasn't worked. The Office start menu icon is a standard folder icon and the games icon is also wrong.
I did manage to change the settings icon as you can see in the picture.
I have attached my icons ext package to let you see what I am trying to do.
EDIT: Tried again and got games folder working with new icon, but Office folder is not.
EDIT 2: I replaced the icon.lnk file in the Office Mobole 2010 and it has changed the icon back to the standard office 2010 icon. See below. This icon is differnt to the Start_Icon_Office.png. It seems to be the office 2003 icon not 2010.
EDIT 3: Fixed it! I edited the registery from [HKEY_LOCAL_MACHINE\Security\Shell\StartInfo\Start\office mobile] to [HKEY_LOCAL_MACHINE\Security\Shell\StartInfo\Start\office mobile 2010] and it worked!! Now I just need to figure out how to edit it in my kitchen build!!!!
Hi,
Is there any way to add/update a configuration xml file to an app already installed on an Android 4.0+ device?
The purpose of this would be to eliminate the setup process for technologically impaired users.
Case in point: an application through which the user can send data over wifi/3g to an IIS server, the user will have to configure the server address/location, username and password (which is generally void if it's not requested otherwise), the location of the actual data file that must be synced.
All i want to do is eliminate the part where the user has to set-up anything else but his username.
The configuration file is located in </Data/Data/application.name/files> and it's called application.config.xml
Could it be added in an apk which will act as an update?
The devices will not be rooted and the config.xml file will be different (different servers), depending on the users' location so it can't be hardcoded in the sync application.
This is the actual content of the .xml file once the settings have been made, the sync app generates a blank config.xml file during the installation.
Code:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="ClientLocation" value="/storage/emulated/0/clientapp_00" />
<add key="Username" value="User Name" />
<add key="Password" value="d41d8cd98f00b204e9800998ecf8427e" />
<add key="ServerLocation" value="Http://192.168.0.101:55541/server/sync.aspx" />
<add key="Compression" value="True" />
<add key="ServerConnections" value="Sync Serv,Http://192.168.0.101:55541/server/sync.aspx" />
<add key="Language" value="en" />
<add key="SyncApk" value="Sync.apk" />
<add key="SyncPackage" value="Data.Sync" />
</appSettings>
</configuration>
Thanks in advance!
*I've also posted in the Q/A forum, but nobody replied.
One app cannot access the data of another app (without root). So you cannot create something like an update apk for another app.
You need to be the owner of the app and put that into the code. Then your users will have to update and in your code you can save the new file.
First you need to search for some tutorials to use apktool to unpack, repack and sign apk file. Also your phone needs to be rooted.
The clock widget is under /system/app/YD_Clock. First copy the file to your computer and unpack it with apktool, go to folder YD_Clock/res/drawable-hdpi-v4/, you can see a lot of image files, and the analog clock images are clock_bg_new.png, minute_arrow_new.png, hour_arrow_new.png (EU_1.1.124b), or hours_arrow_new.png (HK_1.1.44). Then you can use an image editor like GIMP or PHOTOSHOP to modify these images as you like.
If you want to remove the digital clock inside it, go to folder YD_Clock/res/layout, and edit analog_l_clock_new_layout.xml (EU_1.1.124b), or bs_widget_new_layout.xml (HK_1.1.44), and delete the line
Code:
<TextView android:textSize="33.0dip" android:textColor="@android:color/white" android:id="@id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="33.0dip" android:layout_below="@id/day_of_week" android:layout_centerHorizontal="true" android:fontFamily="sans-serif" />
, the text may be a little different in other versions, just delete the whole block of codes that includes
Code:
android:id="@id/time"
. Later in order to show the AM/PM information, you need to go to Settings -> Date & Time, and uncheck 24 hour time format.
Then you can repack you apk with apktool and sign it. And finally, replace the original file using TWRP (go to "Mount" Section and mount system, then got to "Advance" -> File manager), and remember to change the file permisson (chmod) to 0644.
Wish the tutorial may be helpful to someone
Also here is a modified analog clock image from Blackberry Q10. The clock design copyright is reserved by RIM, but I guess a modified screenshot is OK
Screenshot and Modified Blackberry clock: http://imgur.com/a/wG1PI
Sorry as a newcomer I can't directly share image link.