[Ativ S] Moving Rotation Lock on app list - Windows Phone 8 Development and Hacking

I was trying pin Rotation Lock on the tile but first move to app list. Unfortunately my skills wont let me to this without your help. What I did so far is marked on red. Then copy back into \Phone\Windows\System32\Manifests made restart but nothing change. The file is called RotationLockPackMan
Code:
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) Microsoft Corporation. All rights reserved.
-->
<Provisioning xmlns="http://dbPreProvisioning"
RuntimeType="Native"
Title="@Settings3Res.dll,-50006"
Version="1.0"
Genre=""
ProductID="{f903568a-1bb6-43de-8877-7c1f1c170720}"
SingleInstanceHost="false"
[B][COLOR="Red"]DisplayOnAppList="true">[/COLOR][/B]
<IconPath xmlns="">res://StartAssets{ScreenResolution}!allapp.settings.png</IconPath>
<ImagePath xmlns="">\Programs\RotationLockCPL\RotationLockCPL.exe</ImagePath>
<ImageParams xmlns=""></ImageParams>
<Tasks xmlns="">
<DefaultTask Name="_default"
NavigationPage="Home"
ActivationPolicy="Resume"/>
</Tasks>
<Extensions>
<Protocol Name="ms-settings-screenrotation"
TaskID="_default"
NavUriFragment="uri=%s"/>
</Extensions>
</Provisioning>

djtonka said:
I was trying pin Rotation Lock on the tile but first move to app list. Unfortunately my skills wont let me to this without your help. What I did so far is marked on red. Then copy back into \Phone\Windows\System32\Manifests made restart but nothing change. The file is called RotationLockPackMan
Code:
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) Microsoft Corporation. All rights reserved.
-->
<Provisioning xmlns="http://dbPreProvisioning"
RuntimeType="Native"
Title="@Settings3Res.dll,-50006"
Version="1.0"
Genre=""
ProductID="{f903568a-1bb6-43de-8877-7c1f1c170720}"
SingleInstanceHost="false"
[B][COLOR="Red"]DisplayOnAppList="true">[/COLOR][/B]
<IconPath xmlns="">res://StartAssets{ScreenResolution}!allapp.settings.png</IconPath>
<ImagePath xmlns="">\Programs\RotationLockCPL\RotationLockCPL.exe</ImagePath>
<ImageParams xmlns=""></ImageParams>
<Tasks xmlns="">
<DefaultTask Name="_default"
NavigationPage="Home"
ActivationPolicy="Resume"/>
</Tasks>
<Extensions>
<Protocol Name="ms-settings-screenrotation"
TaskID="_default"
NavUriFragment="uri=%s"/>
</Extensions>
</Provisioning>
Click to expand...
Click to collapse
Doesn´t work this way...
It´s easy to create a small app that pins a tile to the startscreen, because you have the URI ("ms-settings-screenrotation")

No need any more, got it as a xap
http://www.winphoneviet.com/forum/index.php?threads/57656/

Try this xap
https://dl.dropboxusercontent.com/s...APhWGdbemi640J3ipwJE-0FlMgJRP_owqxzOhzlg&dl=1
Sent from my RM-892_eu_euro2_215 using Tapatalk

I made my own version, which is currently being submitted to the Windows Store. XAP file attached below:

Attached another xap for the battery saver settings page.
Credits for both xaps go to Bailey [email protected]

Its pretty easy to make these kind of apps.
What I do is go to App.xaml.cs and type in
Code:
private void Application_Launching(object sender, LaunchingEventArgs e)
{
Windows.System.Launcher.LaunchUriAsync(new Uri("{Uri of app of your choice"));
}
so that it will launch the uri of your choice on the app launch,
then when it launches the app, the app goes to the foreground which I program it to terminate itself
Code:
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
Application.Current.Terminate();
}
So basically, that simple code above will launch the specified Uri, and when the app redirects to that Uri, it shuts itself down. Pretty simple
---------- Post added at 05:26 PM ---------- Previous post was at 05:25 PM ----------
contable said:
Attached another xap for the battery saver settings page.
Credits for both xaps go to Bailey [email protected]
Click to expand...
Click to collapse
Hopefully, we could get percentage counter beside the battery icon soon

Great!
I guess i could do that myself :good:
How can i find out the URI ? :angel:

lordmaxey said:
Great!
I guess i could do that myself :good:
How can i find out the URI ? :angel:
Click to expand...
Click to collapse
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662937(v=vs.105).aspx

Related

[GPL] Shipped rom extractor (Linux)

For the first time, I today attempted to extract a rom.zip from a shipped rom release (.exe) on Linux.
The process is problematic as, after launching the executable using wine, the application crashes, deleting all its files. You therefore have to be *very* quick looking inside the ~/.wine/users/username/Temp folder for the rom.zip.
Anyway, I have knocked up a quick python script that will monitor this directory for rom.zip and copy it to your home folder.
The only modification you need to make before running is to change the username field to your own username. I would have used getpass to obtain this but, for some reason, on certain systems you need to use sudo which messes this up.
Usage:
1.) Change username in script
2.) Run script
3.) Run RUU_xxxxxx.exe
4.) Get rom.zip from home folder
Anyway, I hope this is helpful and look forward to hearing feedback.
Best,
Martin
Code:
#!/usr/bin/python
'''
ROM Extractor Copyright (c) 2010 Martin Paul Eve
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
'''
import os
import pyinotify
import io
# USERNAME IS REQUIRED (you may have to run as root using sudo)
username = "martin"
# Modify these if using a different wine location or rom name; HTC seem to use rom.zip
filename = "rom.zip"
monitor_path = "~/.wine/drive_c/users/%s/Temp/" % username
wm = pyinotify.WatchManager()
mask = pyinotify.IN_CREATE | pyinotify.IN_MODIFY | pyinotify.IN_DELETE | pyinotify.IN_MOVED_TO
bd = None
class RExtract(pyinotify.ProcessEvent):
def process_IN_MOVED_TO(self, event):
# this seems to be the event fired; IN_CREATE is included just in case, though
if event.name.endswith(filename):
print "Found ROM. Awaiting completion of modification."
self.f = open(os.path.join(event.path, event.name), "r")
self.bd = self.f.read()
def process_IN_CREATE(self, event):
if event.name.endswith(filename):
print "Found ROM. Awaiting completion of modification."
self.f = open(os.path.join(event.path, event.name), "r")
def process_IN_MODIFY(self, event):
# on modify, append to the file
if event.name.endswith(filename):
if hasattr(self, "bd"):
self.bd = self.bd + self.f.read()
else:
self.bd = self.f.read()
def process_IN_DELETE(self, event):
if event.name.endswith(filename):
self.f.close()
self.f = open(os.path.join("/home/%s/" % username, "rom.zip"), "w")
self.f.write(self.bd)
self.f.close()
print "ROM Copied to /home/%s/rom.zip" % username
raise KeyboardInterrupt
notifier = pyinotify.Notifier(wm, RExtract())
print "ROM Extractor Copyright (c) 2010 Martin Paul Eve"
print "This program comes with ABSOLUTELY NO WARRANTY."
print "This is free software, and you are welcome to redistribute it under certain conditions; see the included licence statement"
print ""
print "Monitoring: %(path)s for %(filename)s" % {"path": os.path.expanduser(monitor_path), "filename": filename}
print "Press CTRL+C to exit"
wdd = wm.add_watch(os.path.expanduser(monitor_path), mask, rec=True, auto_add=True)
while True:
try:
notifier.process_events()
if notifier.check_events():
notifier.read_events()
except KeyboardInterrupt:
notifier.stop()
break
Hey Martin there is a tool already available for this here in Forums... dint work for me for some reason.. Just informing you so that u do not reinvent the wheel ..
EDIT :: here it is: http://forum.xda-developers.com/showthread.php?t=711298
Regards
Ahh! Finally one that works!
Thanks!
TheDeadCpu said:
Ahh! Finally one that works!
Thanks!
Click to expand...
Click to collapse
Excellent; glad that my effort wasn't wasted then
I can't make it work but thanks for your job !
(and for your soft-root too !!)
voodka2007 said:
I can't make it work but thanks for your job !
(and for your soft-root too !!)
Click to expand...
Click to collapse
Could you be more specific about what happens when you run it and it doesn't work? You need python-py-inotify for it to detect the file...
Sent from my HTC Wildfire using XDA App
Script can be run, it just can't found rom.zip... i have install python-pyinotify package, and it's same.
I have try 2 monitoring path :
~/.wine/dosdevices/c:/windows/temp
and
~/.wine/drive_c/windows/temp
I have try with root, sudo, check username, chmod the script, and it's same.
voodka2007 said:
Script can be run, it just can't found rom.zip... i have install python-pyinotify package, and it's same.
I have try 2 monitoring path :
~/.wine/dosdevices/c:/windows/temp
and
~/.wine/drive_c/windows/temp
I have try with root, sudo, check username, chmod the script, and it's same.
Click to expand...
Click to collapse
Check the format of your path. It should be like this:
monitor_path = "~/.wine/drive_c/users/%s/Temp/" % username
This is because it won't extract to c:\Windows\Temp but to c:\Users\Username\Temp
Try leaving monitor path just as it was (but change the username)...
Code:
[Pyinotify ERROR] add_watch: cannot watch /home/voodka/.wine/drive_c/users/voodka/Temp/ (WD=-1)
I haven't users folder in my .wine/drive_c/
What version of windows have you set in winecfg?
Sent from my HTC Wildfire using XDA App
Thanks for your perseverance !
In my wincfg i use Windows XP
But i have try with Windows 7 and it's always same...
Do this problem can come from Wine 1.2 ? (i don't use 1.0)
Thanks...
PERFECT
i must buy you a beer
Worked for me.
Radio_13.53.55.24H_3.35.19.25_release_151892_signed.exe and Ubuntu 10.10
thanks!

[Q] completely newbie trying to build first rom from source, how to?

Hi, i was thinking about trying to build very first rom from source ever.i have followed this -> http://docs.omnirom.org/Setting_Up_A_Compile_Environment, and now syncing sources.(hopefully no errors now since its been syncing for like 2h now) how long syncing usually takes?(~1,5mb/s DL speed)
so whats the next move i should take after syncing to get ready for compiling?
what was i really wondering is how can i get correct drivers(vendor blobs?) for nexus 7 2013(FLO) when i try compile? also how long compiling usually takes on highend rig?
and then i have question about cherry picks, is it easy as opening terminal to corresponding folder of cherrypick and fetching it there?(http://forum.xda-developers.com/showpost.php?p=37053013&postcount=7)
thx for everyone whos willing to help me, i know questions above probably are really noobish, but its my first time and i dont really have any linux knowledge so just by getting sync going im pretty satisfied.
Do you have Java6 installed? If not, then
Code:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update && sudo apt-get install oracle-java6-installer
You also need to create a /omni(or whatever is your working directory called)/.repo/local_manifest floder, and in it an .xml file that can be named anything except roomservice.
That .xml should contain flo-specific omni and themuppets projects. Themuppets contains your asus blobs. It should look something like this:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_asus" path="vendor/asus" remote="github" revision="cm-10.2" />
</manifest>
Click to expand...
Click to collapse
This .xml file can contain many lines like themuppets one.
After that you have to do another repo sync so the projects listed in your .xml can be pulled to your local repo.
After that, you can start the build.
This is my first build, too. I seem to have goofed somewhere, as its not booting. I'll have to try again, as I think your XML file there might be what I need to do. I'm building for Manta.
chasmodo said:
Do you have Java6 installed? If not, then
Code:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update && sudo apt-get install oracle-java6-installer
You also need to create a /omni(or whatever is your working directory called)/.repo/local_manifest floder, and in it an .xml file that can be named anything except roomservice.
That .xml should contain flo-specific omni and themuppets projects. Themuppets contains your asus blobs. It should look something like this:
This .xml file can contain many lines like themuppets one.
After that you have to do another repo sync so the projects listed in your .xml can be pulled to your local repo.
After that, you can start the build.
Click to expand...
Click to collapse
got vendor blobs from themuppets now, which command should i use to start building? (. build/envsetup.sh; brunch flo?)
makkeonmies said:
got vendor blobs from themuppets now, which command should i use to build to start building? (. build/envsetup.sh; brunch flo?)
Click to expand...
Click to collapse
That's what worked for me this morning (except I didn't have my vendor blobs!)
well no luck this time, maybe i have forgot to do something?
make: *** No rule to make target `/home/joni/android/omni/out/target/product/flo/obj/KERNEL_OBJ/usr', needed by `/home/joni/android/omni/out/target/product/flo/obj/SHARED_LIBRARIES/libqservice_intermediates/QService.o'. Stop.
make: *** Waiting for unfinished jobs....
host SharedLib: libSR_Recognizer (/home/joni/android/omni/out/host/linux-x86/obj/lib/libSR_Recognizer.so)
Click to expand...
Click to collapse
compiling stop with lines above..
makkeonmies said:
well no luck this time, maybe i have forgot to do something?
compiling stop with lines above..
Click to expand...
Click to collapse
That was the same error I was getting, renaming local_manifest to roomservice got the build rolling.
CMNein said:
That was the same error I was getting, renaming local_manifest to roomservice got the build rolling.
Click to expand...
Click to collapse
seems to go further now, but stopped for error like this now ->
frameworks/base/core/res/res/values/public.xml:646: warning: No comment for public symbol android:style/Widget.ScrollView
frameworks/base/core/res/res/values/public.xml:633: warning: No comment for public symbol android:style/Widget.SeekBar
frameworks/base/core/res/res/values/public.xml:641: warning: No comment for public symbol android:style/Widget.Spinner
frameworks/base/core/res/res/values/public.xml:1529: warning: No comment for public symbol android:style/Widget.Spinner.DropDown
frameworks/base/core/res/res/values/public.xml:653: warning: No comment for public symbol android:style/Widget.TabWidget
frameworks/base/core/res/res/values/public.xml:635: warning: No comment for public symbol android:style/Widget.TextView
frameworks/base/core/res/res/values/public.xml:642: warning: No comment for public symbol android:style/Widget.TextView.PopupMenu
frameworks/base/core/res/res/values/public.xml:643: warning: No comment for public symbol android:style/Widget.TextView.SpinnerItem
frameworks/base/core/res/res/values/public.xml:652: warning: No comment for public symbol android:style/Widget.WebView
+ theres like 1000 more of these but would be too long copy paste.
okey, cleaned output dir to try from clean table and tried again and for some reason it now stops ->
needed by `/home/joni/android/omni/out/target/product/flo/obj/SHARED_LIBRARIES/libqservice_intermediates/QService.o'. Stop.
make: *** Waiting for unfinished jobs....
Import includes file: /home/joni/android/omni/out/target/product/flo/obj/SHARED_LIBRARIES/libdivxdrmdecrypt_intermediates/import_includes
makkeonmies said:
seems to go further now, but stopped for error like this now .
Click to expand...
Click to collapse
These are warnings, not errors. You'll be getting thousands of these in each build, that's nothing to worry about.
However, you have to search for the terminal line(s) saying 'error' when the build stops. Then you copy/paste those in http://pastebin.com/ and give us the link. We can't help you when you post just the warnings, there's nothing to be seen there.
chasmodo said:
These are warnings, not errors. You'll be getting thousands of these in each build, that's nothing to worry about.
However, you have to search for the terminal line(s) saying 'error' when the build stops. Then you copy/paste those in http://pastebin.com/ and give us the link. We can't help you when you post just the warnings, there's nothing to be seen there.
Click to expand...
Click to collapse
heres the lines before it stops -> http://pastebin.com/X4wkZvex
also just by trying compile again its giving me these in addition to earliers, why it didnt give these first time?
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
makkeonmies said:
heres the lines before it stops -> http://pastebin.com/X4wkZvex
Click to expand...
Click to collapse
Looks like the kernel error. Which device are you compiling for?
makkeonmies said:
also just by trying compile again its giving me these in addition to earliers, why it didnt give these first time?
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Click to expand...
Click to collapse
This is normal, no cause for alarm.
for nexus 7(2013, FLO)
okey, i had to reboot computer to get nvidia drivers installed, now its not even trying to compile again ->
** Don't have a product spec for: 'custom_flo'
** Do you have the right repo manifest?
and im using very same command which i did earlier.
makkeonmies said:
for nexus 7(2013, FLO)
Click to expand...
Click to collapse
You have https://github.com/omnirom/android_kernel_google_msm in your roomservice/manifest?
error i have after repo sync
Fetching projects: 100% (375/375), done.
Traceback (most recent call last):
File "/home/desalesouche/.repo/repo/main.py", line 418, in <module>
_Main(sys.argv[1:])
File "/home/desalesouche/.repo/repo/main.py", line 394, in _Main
result = repo._Run(argv) or 0
File "/home/desalesouche/.repo/repo/main.py", line 142, in _Run
result = cmd.Execute(copts, cargs)
File "/home/desalesouche/.repo/repo/subcmds/sync.py", line 657, in Execute
project.Sync_LocalHalf(syncbuf)
File "/home/desalesouche/.repo/repo/project.py", line 1106, in Sync_LocalHalf
lost = self._revlist(not_rev(revid), HEAD)
File "/home/desalesouche/.repo/repo/project.py", line 2074, in _revlist
return self.work_git.rev_list(*a, **kw)
File "/home/desalesouche/.repo/repo/project.py", line 2227, in rev_list
p.stderr))
error.GitError: android rev-list (u'^68adae319917cbb1873f3492b67b3f5f80bbc8f5', 'HEAD', '--'): fatal: bad object HEAD
some help/advice please?
CMNein said:
You have https://github.com/omnirom/android_kernel_google_msm in your roomservice/manifest?
Click to expand...
Click to collapse
no i dont think so i had this, how do i add it? im assuming not only the link works. is it something like "<project name="omnirom/android_kernel_google_msm" + something else? or am i completely lost with this.
also whole manifest file disappeared on reboot -.-
makkeonmies said:
no i dont think so i had this, how do i add it? im assuming not only the link works. is it something like "<project name="omnirom/android_kernel_google_msm" + something else? or am i completely lost with this.
also whole manifest file disappeared on reboot -.-
Click to expand...
Click to collapse
Code:
<project name="omnirom/android_kernel_google_msm" path="kernel/google/msm" remote="github" revision="android-msm-flo-3.4-jb-mr2" />
makkeonmies said:
no i dont think so i had this, how do i add it? im assuming not only the link works. is it something like "<project name="omnirom/android_kernel_google_msm" + something else? or am i completely lost with this.
also whole manifest file disappeared on reboot -.-
Click to expand...
Click to collapse
Within omni/.repo create a local_manifests folder.
Create a file called roomservice.xml and add the following:
Code:
<manifest>
<project name="TheMuppets/proprietary_vendor_asus" path="vendor/asus" remote="github" revision="cm-10.2"/>
<project name="omnirom/android_device_asus_flo" path="device/asus/flo" remote="github" revision="android-4.3"/>
<project name="omnirom/android_kernel_google_msm" path="kernel/google/msm" remote="github" revision="android-msm-flo-3.4-jb-mr2"/>
</manifest>
repo sync again.
You could put TheMuppets in a separate manifest called local_manifest.xml, but the above should get you rolling <fingers crossed>
CMNein said:
Code:
<manifest>
<project name="TheMuppets/proprietary_vendor_asus" path="vendor/asus" remote="github" revision="cm-10.2"/>
<project name="omnirom/android_device_asus_flo" path="device/asus/flo" remote="github" revision="android-4.3"/>
<project name="omnirom/android_kernel_google_msm" path="kernel/google/msm" remote="github" revision="android-4.3"/>
</manifest>
Click to expand...
Click to collapse
Your kernel revision is not correct.
chasmodo said:
Your kernel revision is not correct.
Click to expand...
Click to collapse
herp derp, had edited my mako manifest.
revision is: android-msm-flo-3.4-jb-mr2
CMNein said:
Within omni/.repo create a local_manifests folder.
Create a file called roomservice.xml and add the following:
Code:
<manifest>
<project name="TheMuppets/proprietary_vendor_asus" path="vendor/asus" remote="github" revision="cm-10.2"/>
<project name="omnirom/android_device_asus_flo" path="device/asus/flo" remote="github" revision="android-4.3"/>
<project name="omnirom/android_kernel_google_msm" path="kernel/google/msm" remote="github" revision="android-4.3"/>
</manifest>
repo sync again.
You could put TheMuppets in a separate manifest called local_manifest.xml, but the above should get you rolling <fingers crossed>
Click to expand...
Click to collapse
yeah i allready made the file again there, thx anyways guess it was about i was missing the "omnirom/android_kernel_google_msm" on first time i tried
btw did i understand this thing rigth, revision=branch when im adding things to manifest? remote="website" and i can forgot omnirom/android from path since im syncing from that location(on terminal) allready?

[How to] launch any deployed app within your own app

Hello again,
while I´m still working on my PDF to Office app I found out how to use <Capability Name="ID_CAP_OEM_DEPLOYMENT" />.
Using this capability lets you launch any deployed app within another app or lets you get the applist of all deployed apps (sadly less system apps like Office) including appname, uri, appicon and so on.
1. add
Code:
<Capability Name="ID_CAP_OEM_DEPLOYMENT" />
to your WMAppManifestXML
Add to your *xaml.cs file:
2.
Code:
using Windows.ApplicationModel;
using Windows.Phone.Management.Deployment;
3.
Code:
public Package GetPackageByID(string id)
{
return InstallationManager.FindPackages().FirstOrDefault(p => p.Id.ProductId.ToLower().Equals(id.ToLower()));
}
=> the code will return the package (app) you want to launch if it exists
4.
Code:
private void LaunchAR_Click(object sender, System.Windows.Input.GestureEventArgs e)
{
Package packageById = GetPackageByID("{134E363E-8811-44BE-B1E3-D8A0C60D4692}");
if (packageById != null)
{
packageById.Launch(string.Empty);
}
else
{
// do something if the app doesn´t exist
}
}
=> this sample code will launch Adobe Reader if the app is present on your device
With some simple modifications of the above code you will easyly be able to make visible the whole applist in a ScrollistViewer or Listbox.
=> this could be useful for coding a new AppData backup app for interop-unlocked devices.
Cheers
contable
contable said:
Hello again,
while I´m still working on my PDF to Office app I found out how to use <Capability Name="ID_CAP_OEM_DEPLOYMENT" />.
Using this capability lets you launch any deployed app within another app or lets you get the applist of all deployed apps (sadly less system apps like Office) including appname, uri, appicon and so on.
1. add
Code:
<Capability Name="ID_CAP_OEM_DEPLOYMENT" />
to your WMAppManifestXML
Add to your *xaml.cs file:
2.
Code:
using Windows.ApplicationModel;
using Windows.Phone.Management.Deployment;
3.
Code:
public Package GetPackageByID(string id)
{
using (List<Package>.Enumerator enumerator = new List<Package>(InstallationManager.FindPackages()).GetEnumerator())
{
while (enumerator.MoveNext())
{
Package current = enumerator.Current;
try
{
if (current.Id.ProductId.Contains(id))
return current;
}
catch (Exception ex)
{
}
}
}
return (Package)null;
}
=> the code will return the package (app) you want to launch if it exists
4.
Code:
private void LaunchAR_Click(object sender, System.Windows.Input.GestureEventArgs e)
{
Package packageById = GetPackageByID("{134E363E-8811-44BE-B1E3-D8A0C60D4692}");
if (packageById != null)
{
packageById.Launch(string.Empty);
}
else
{
// do something if the app doesn´t exist
}
}
=> this sample code will launch Adobe Reader if the app is present on your device
With some simple modifications of the above code you will easyly be able to make visible the whole applist in a ScrollistViewer or Listbox.
=> this could be useful for coding a new AppData backup app for interop-unlocked devices.
Cheers
contable
Click to expand...
Click to collapse
Yep! This is used in Samsung AppFolder
-W_O_L_F- said:
Yep! This is used in Samsung AppFolder
Click to expand...
Click to collapse
Exactly.
Do you you know how "InstallationManager.AddPackageAsync" works ?
contable said:
Exactly.
Do you you know how "InstallationManager.AddPackageAsync" works ?
Click to expand...
Click to collapse
I am hoping to learn that myself. I know that Nokia's "Extras & Info" app uses this API for their "SilentInstaller". Nokia's "SilentInstaller" has the ability to install interop-unlocked apps as long as they are fully and properly signed with the appropriate license.xml and wmprheader.xml.
Microsoft has some documentation about this API at http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207248(v=vs.105).aspx
**EDIT**
Found it! (I think)
we can deploy apps with InstallationManager.AddPackageAsync(String title, Uri sourceLocation, String instanceId, String offerId, Uri license)
This info matches EVERYTHING that is included with a valid xap signed by Microsoft. All the data is contained in the xap's provxml, too (albeit in the wrong order)
Info about this "undocumented" api is at http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662948(v=vs.105).aspx
The million-dollar questions are what privileges are required to access this API, and can we use it without interop unlock?
Really wishing I had my phone back! (won't be here until tomorrow)
Very nice, thanks for publishing! I was going to pull apart App Folder and see how it works myself; thanks for taking the time to do that for me and share it with us all!
For what it's worth, a foreach loop will read more cleanly than explicitly calling GetEnumerator() and then iterating over it, but the basic structure of the code is fine (and I think the MSIL is the same anyhow - foreach being just syntactic sugar - so they probably did it that way when actually writing the app and your decompiler just produced the more verbose version from the MSIL).
Note that this can also, of course, be used to create launcher apps. An alternative to the Start screen, potentially, even (with some other hackery to hook it in where needed). To use it in Backup apps, though, we'll need access to the app's storage folder too (or a way to activate the SeBackup privilege in the app's token...)
Well... already known when I decompiled samsung's app folder app.
---------- Post added at 12:37 PM ---------- Previous post was at 12:29 PM ----------
compu829 said:
I am hoping to learn that myself. I know that Nokia's "Extras & Info" app uses this API for their "SilentInstaller". Nokia's "SilentInstaller" has the ability to install interop-unlocked apps as long as they are fully and properly signed with the appropriate license.xml and wmprheader.xml.
Microsoft has some documentation about this API at http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207248(v=vs.105).aspx
**EDIT**
Found it! (I think)
we can deploy apps with InstallationManager.AddPackageAsync(String title, Uri sourceLocation, String instanceId, String offerId, Uri license)
This info matches EVERYTHING that is included with a valid xap signed by Microsoft. All the data is contained in the xap's provxml, too (albeit in the wrong order)
Info about this "undocumented" api is at http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662948(v=vs.105).aspx
The million-dollar questions are what privileges are required to access this API, and can we use it without interop unlock?
Really wishing I had my phone back! (won't be here until tomorrow)
Click to expand...
Click to collapse
see nokia extra+info app's capability
You can use Shell Chrome API directly to launch any URI, just 2 lines code
reker said:
You can use Shell Chrome API directly to launch any URI, just 2 lines code
Click to expand...
Click to collapse
So please post the two lines of code so that I can launch any URI without using a Toast.
DELETED
GoodDayToDie said:
Very nice, thanks for publishing! I was going to pull apart App Folder and see how it works myself; thanks for taking the time to do that for me and share it with us all!
For what it's worth, a foreach loop will read more cleanly than explicitly calling GetEnumerator() and then iterating over it, but the basic structure of the code is fine (and I think the MSIL is the same anyhow - foreach being just syntactic sugar - so they probably did it that way when actually writing the app and your decompiler just produced the more verbose version from the MSIL).
Note that this can also, of course, be used to create launcher apps. An alternative to the Start screen, potentially, even (with some other hackery to hook it in where needed). To use it in Backup apps, though, we'll need access to the app's storage folder too (or a way to activate the SeBackup privilege in the app's token...)
Click to expand...
Click to collapse
Here an improved code:
Code:
public Package GetPackageByID(string id)
{
List<Package> packages = new List<Package>(InstallationManager.FindPackages());
foreach (var cpackage in packages)
{
if (cpackage.Id.ProductId.Contains(id))
return cpackage;
}
return (Package)null;
}
Indeed to create an AppData Backup app we need access to the app´s storage folder first. Atm we only can copy files from the app´s storage folder with another RPCComponent discovered by -W_O_L_F-. But when the time comes a Backup app can be created in a few hours...
Oneliner (untested)
Code:
public Package LinqGetPackageByID(string id)
{
return InstallationManager.FindPackages().FirstOrDefault(p => p.Id.ProductId.ToLower().Equals(id.ToLower()));
}
jessenic said:
Oneliner (untested)
Code:
public Package LinqGetPackageByID(string id)
{
return InstallationManager.FindPackages().FirstOrDefault(p => p.Id.ProductId.ToLower().Equals(id.ToLower()));
}
Click to expand...
Click to collapse
Thanks. The oneliner works fine. :good:
Edit:
post #1 updated with the oneliner....
jessenic said:
Oneliner (untested)
Code:
public Package LinqGetPackageByID(string id)
{
return InstallationManager.FindPackages().FirstOrDefault(p => p.Id.ProductId.ToLower().Equals(id.ToLower()));
}
Click to expand...
Click to collapse
Is it also possible to check if an app is installed and if yes, which version? that would be nice...
gipfelgoas said:
Is it also possible to check if an app is installed and if yes, which version? that would be nice...
Click to expand...
Click to collapse
Yes. With this method you can get all informations about an installed package: version, publisher and so on...

Add Any Language Support To Any Android( 6.0+) Device Without Root

At the beginng
English is not my mother tongue so please excuse any errors on my part.
but I am gonna try to clear things as possible as I can
requirements
1-pc with installed Windows
2-android studio(with jdk and sdk ......etc)
3-some app development skills
let's start by support for examble Arabic language for setting.apk application.
for the others apps the same steps
steps
1-run android studio then create new project
2-choose the minimum sdk to be 21
3-the most important thing is create your app with no activity
4-edit AndroidManifest.xml
which in the dirctory
app/src/main
to be like
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.forsan.com.settings">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
</application>
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>
<overlay androidriority="2" android:targetPackage="com.android.settings"/>
</manifest>
5-navigate to res dirctory
and create dirctory with the name values-ar
now copy values/string.xml file to values-ar folder(after translate to Arabic )
6-build the apk then install the apk as any user app
note
if you get build error just read the error and try to correct it(almost syntax error)
7-install more local app then grant the permission
by the command
adb shell pm grant jp.co.c_lis.ccl.morelocale android.permission.CHANGE_CONFIGURATION
8-launch morelocal app and select the Arabic language and enjoy
some times you need to reboot to allow changes to take effect
my setting.apk
in the attachments
my setting.apk app link
https://mega.nz/#!43JTgICK!R7iNaa54TXVwVduGLwSVoH4bNdenK_4L1klSiSa3SJE
apk can not be installed because it conflicts with another app with the same package name !!
nashwannose said:
apk can not be installed because it conflicts with another app with the same package name !!
Click to expand...
Click to collapse
do not use any system apps or user apps package name.
create your app with distinct package name.
when you install my app what you get?
Forsan Al-nemah said:
do not use any system apps or user apps package name.
create your app with distinct package name.
when you install my app what you get?
Click to expand...
Click to collapse
<overlay androidriority="2" android:targetPackage="com.android.settings"/>
keep the above line as is it

Kotlin app can't find file even though it exists

I'm working on a Kotlin app where I need to access the Cookies file located at /data/data/com.android.chrome/app_chrome/Default/Cookies. However, when I try to access the file, I get a "file not found" error, even though the file definitely exists at that location.
I've double-checked the file path and made sure there are no typos (I can see the file with adb shell and Amaze File Manager), and I've also checked that the app has permission to access the file (app has root permissions).
First I was trying to open and read the file directly and I got the error:
CODE at https://stackoverflow.com/questions/76064385/kotlin-app-cant-find-file-even-though-it-exists
I though maybe Chrome was running so I couldn't open the file directly so I tried copying it to a temp folder and reading that:
CODE at https://stackoverflow.com/questions/76064385/kotlin-app-cant-find-file-even-though-it-exists
But that still fails:
CODE at https://stackoverflow.com/questions/76064385/kotlin-app-cant-find-file-even-though-it-exists
Is there anything else I can try to troubleshoot this issue?
Something in the code triggers cloudflare and blocks me from posting
Code:
Sorry, you have been blocked
You are unable to access xda-developers.com
Why have I been blocked?
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
What can I do to resolve this?
You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.
Cloudflare Ray ID: 7badda7c6b9486c6 • Your IP: Click to reveal • Performance & security by Cloudflare
SQLite definitely won't open the file. So, your decision to copy it was right.
Firstly, try to split the single command string into an array.
The documentation for ProcessBuilder class has an example:
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Or try to use SuFile from the libsu, for example:
AndroidIDeditor/Util.java at 6a62bac0e3e63502e9a7b538217f65189ff85fa4 · sdex/AndroidIDeditor
Android Device ID changer. Contribute to sdex/AndroidIDeditor development by creating an account on GitHub.
github.com
lioce said:
SQLite definitely won't open the file. So, your decision to copy it was right.
Firstly, try to split the single command string into an array.
The documentation for ProcessBuilder class has an example:
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Or try to use SuFile from the libsu, for example:
AndroidIDeditor/Util.java at 6a62bac0e3e63502e9a7b538217f65189ff85fa4 · sdex/AndroidIDeditor
Android Device ID changer. Contribute to sdex/AndroidIDeditor development by creating an account on GitHub.
github.com
Click to expand...
Click to collapse
Seems like not even like that can I read the Cookies file from Chrome
Code:
fun copyFile(source: String, destination: String) {
Log.d("CookieSwapLogger", "copyFile '$source' to '$destination'")
val sourceFile = SuFile(source)
if (sourceFile.exists()) {
Log.d("CookieSwapLogger", "sourceFile.exists")
} else {
Log.d("CookieSwapLogger", "sourceFile.notExists")
}
---------------
2023-04-21 18:20:47.440 6347-6347 CookieSwapLogger com.david.cookieswapper D copyFile '/data/data/com.android.chrome/app_chrome/Default/Cookies' to '/data/user/0/com.david.cookieswapper/app_temp/Cookies'
2023-04-21 18:20:47.492 6347-6347 CookieSwapLogger com.david.cookieswapper D sourceFile.notExists

Categories

Resources