[WIP] Tilandis: It's like TileCreator Proxy, but better. - Windows 10, 8, 7, XP etc.

DOWNLOAD HERE: https://github.com/lavacano201014/tilandis/releases
Tilandis
A drop in replacement for TileCreator Proxy​
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Overview
TileCreator is one of several UWP apps designed to allow you to pin custom tiles to your start menu. The way these apps work is they launch a companion app (in TileCreator's case, TileCreator Proxy) that's associated with a specific protocol, and that companion app is what actually launches programs.
The problem is, while TileCreator itself works well, TileCreator Proxy is terrible. This isn't intended to be a jab at the developer, but let's be real - having to use .lnk or .bat files for half your programs isn't exactly the best experience.
The base problem here is working directories: Many programs assume their working directory will always be the directory they've been installed to. In most cases, they're right, since Windows shortcuts (.lnk) use the directory of the executable as the default working directory. TileCreator Proxy, however, launches processes within its own working directory, which is some space directory in the middle of absolutely nowhere sensible. I've mentioned this to the developer, and it hasn't been fixed, and now that developer hasn't logged in since November. It's incredibly likely that the developer has real life problems that he's prioritized over his development work. And I can't blame him. But this problem needed fixing, so Tilandis is here to fix it.
Project Status
What Works:
Link management
Creating links
Deleting links
Replacing existing links (with -f)
Launching links
Protocol registration (so you can use it with TileCreator)
Arguments and working directories (including automatically defaulting to executable's directory)
Command line interface
Automatically closing TileCreator behind you (at the moment, ONLY TileCreator - planning to make this configurable)
Running links as administrator
The GUI
What's Planned (but doesn't work yet)
Link validation (at the moment, Tilandis just accepts stuff willy nilly, which includes a few characters that aren't legal for filenames or link names. For now, it's up to you not to include the : or / characters in your link names.)
Live tile companionry (waiting for a UWP implementation first)
Installation
Go to the link at the top of the post, and download the latest version's installer.
Run said installer.
That's it. Next section.
Usage
The basic procedure:
Open a command prompt (this one doesn't need to be administrator) and navigate to where you put Tilandis. If you put it in C:\Users\Your_Name_Here, this may done for you if you use PowerShell.
If you need to specify arguments, you can specify them with -a (e.g. `-a "-sw -noborder"`). If you need to specify a working directory that differs from the default (if you're not sure, then no you don't), you can specify that too, with -w (e.g. `-w "C:\Program Files"`). These options go alongside the basic command line.
FAQ&FSS (Frequently Asked Questions and Frequently Said Statements)
Why should I use this over TileCreator?
You misunderstood the post. Read it again.
Can I use this with some other UWP app, like Better StartMenu?
Yes! Simply install the app, launch a tile with it, and see what Windows spits out. It should come up with "You'll need a new app to open this <something>." That "something" is the protocol you tell Tilandis to register with:
Code:
tilandis -r <something>
Why should I use this (alongside something like TileCreator) over some program that uses visualmanifests.xml?
VisualManifests.xml doesn't support wide or large tiles. Also, although no working implementation currently exists, the UWP app method is capable of displaying "live" tiles (meaning they update every so often, like official Windows store apps).
Are you going to make a UWP (Metro) app to go with Tilandis?
Doubtful. In my opinion, the UWP side of things is already well covered as it is, for being this early on in Windows 10's life. However, I might later just for the laughs, or if nobody ever gets around to implementing live tiles. If I do implement one, I'll look into throwing in jump lists too while I'm at it (because hey, jump lists).
Is it buggy?
I've been using release builds alongside TileCreator as my daily driver for start tiles since I first got link launching to work. I've had no problems. That said, I have no extra-paranoid security software, and do not currently test the automatic replacement of existing TileCreator Proxy installations.
I'm getting an error (or maybe more than one) about some MS or VC DLL missing.
You're missing the 2015 VC++ redist. Make sure you install the 64 bit one, this is a 64 bit application.
Wait what? Why is it a 64 bit app?
It's 2016. If you're on a 64 bit processor, you should be running a 64 bit OS by now. 32 bit emulation is 1:1 perfect, and Windows hasn't had 16 bit applications since it ran on top of DOS, so there's no reason you should need a 32 bit OS on a 64 bit processor. If your processor is only 32 bit, you're officially retrocomputing.
I've actually got some reason to be running a 32 bit OS.
The source is on GitHub, under the MIT license unless I find one I like better. It's the whole solution, just clone the repo, open it in Visual Studio 2015, set it to x86 and press F7. I don't do anything bizarre with my solution or toolchain, should just spit out a 32 bit Tilandis.exe. You can even build it on a 64 bit computer for a 32 bit system.
Please note that bugs that only occur when running a 32 bit build of Tilandis will not be fixed. They are, however, extremely unlikely.
Does it support URLs? Non-executable files?
Yes. Internally, it just feeds the path, args, and working directory to ShellExecute(), so it should be able to launch nearly anything you can double click on in File Explorer with its appropriate program, or open any URL you feed it.
As an example, to launch TF2 through Steam:
I looked at your source code, it's terrible.
I never claimed it was good code, I just claimed I had better functionality. But C++ is definitely not my forte, since my native programming language is Python. And I was stoned for a lot of this project. But it works, and I'm honest about it (even though it's only my word for it), so in the end I still get at LEAST a C+ for this.

I can't seem to get past the fourth step of installation. I've moved the file into multiple locations, used both powershell and command prompt, but I never get a response after typing the command. Running it as an administrator has no noticeable effect on either command prompt or powershell.
Any idea what could be wrong?

Not working for me

After quite a bit of testing, I think I've figured it out. I'll detail my steps and see if anyone can figure anything out from there.
Go to the link at the top of the post to download the latest executable.
Place the executable anywhere. I personally placed it in the TileCreator Proxy installation folder, which for me is found at "C:\Program Files (x86)\TileCreator".
Open an administrator PowerShell and change the directory to wherever you put Tilandis. For me, the command to do this was cd "C:\Program Files (x86)\TileCreator" .
At this point, run the command in the original post. I don't know what the command does entirely, it seems like it would change something, but it doesn't as far as I can tell. I had to run it using .\Tilandis -r TileCreator as the original command left out the location of Tilandris which seems to be needed in PowerShell.
After this, you can close PowerShell.
Open PowerShell (administrator never hurts) and navigate to where your placed Tilandris.
Create a new link using the command .\Tilandis -n MyLinkName -p "C:\Link\To\The\Desired\Executable.exe"
Tilandris will then create a file called links.json that seems to be unusable by TileCreator. Changing links.json to links.config seems to allow it to be accepted and used normally.
Import the new config.config into TileCreator and you will be able to make tiles. This still points to TileCreator Proxy, which I imagine would not be the case if step four of the original process worked, but I can't figure it out.
Setup a tile how you normally would.
I hope we get a reply from the creator, as I'm positive this isn't how this is supposed to work.

What the command "tilandis -r tilecreator" is supposed to do is modify the Windows registry (that's why it needs administrator, it's supposed to spit an error message if it fails to edit the registry but due to a bug it's silent either way) to register Tilandis with the same protocol TileCreator uses to talk to TileCreator Proxy. I didn't test whether or not it would work if you already had TileCreator Proxy installed because I kind of figured Windows would just overwrite it for me. I don't know why I could have expected that... :V
Please open regedit and delete the key HKEY_CLASSES_ROOT\tilecreator (neither TileCreator nor its proxy keeps any configuration in this key, your tiles are safe), then try "tilandis -r tilecreator" as administrator again. This time, it should go straight to Tilandis without bothering with TileCreator Proxy as a middleman. (I'm surprised TCP accepted my JSON in the first place, I wasn't trying for compatibility). And sorry I'm late, I couldn't remember what password I used for this account and XDA's forgot password page has a broken captcha.

I can confirm that I have this working successfully now. I didn't find the registry entry you mentioned, but that is probably because I decided to delete TileCreator until you had replied to me.
Once you get the TileCreator window closing behind you, I think you've got a very solid replacement for the proxy. Well done, your work is much appreciated. Just don't forget your password this time!

New release! Changelog provided at the link.
The tl;dr is the "run as admin" switch (-A) is now implemented, and Tilandis will now close TileCreator (and at the moment only TileCreator) as it goes.
I'm also considering drafting a separate protocol, "tilectl", allowing UWP apps to create links in Tilandis (and any other proxy app that chooses to implement it) for you. Imagine a program like TileCreator being able to not only pin tiles with whatever image you want, but being able to configure what that tile actually launches without having to launch the other app and set it up yourself!

#NotDead
I knew eventually you would all get frustrated with having to use the CLI all the damn time, so I'm writing a control application for everyone. I'll probably also try and fix protocol registration while I'm at it, because man, that really oughta just work

Any updated info any time soon ?

DroidShift79 said:
Any updated info any time soon ?
Click to expand...
Click to collapse
Good news: There are boxes! And buttons!
Bad news: They don't do anything yet (or I'dve released it already). I'm sorry I'm not faster, I've got a bunch of real life issues that I'm battling at the moment. But, I'm here! And I haven't forgotten!

That's very much a placeholder GUI at the moment, eventually I'm going to come up with something that actually manages tiles properly. Might even build that UWP app after all.
(that's weird, I was sure XDA had an automatic merge for double posts. oh well)

Nice to hear from you.
Don't stress yourself. RealLife always go first!
Take all the Time you need @lavacano201014
Anyway, don't tease us

lavacano201014 said:
I'm sorry I'm not faster, I've got a bunch of real life issues that I'm battling at the moment. But, I'm here! And I haven't forgotten!
Click to expand...
Click to collapse
Hey man, loving the progress. Eager to try out the GUI, but don't let this effect your life (which you seem to not let it be doing, I just wanted to give you a reminder that it's okay.)
Good work!

It's finished!

Related

Opera on the Pocket PC - a setup tutorial & quick review

A lot of PPC users have noticed on all the PPC boards that an already-usable preliminary version of the Opera browser has become available. As it's Java MIDP-based, people had serious problems with installing/running it. This is why (I'm a Java guru, so, I made it work in some seconds) I decided to write a tutorial and, being an avid PPC browser and compression service user, also a quick review of the app, comparing it to the other Pocket PC Web browsers.
1, download the IBM J9 (you can also give a try to the CrEme JVM (see the above-linked Java article) - I haven't tested Opera with that JVM. With the IBM J9, it's woking just great). Go here, choose the link "Trial: IBM Workplace Client Technology, Micro Edition 5.7" and navigate thru the 3 pages, by loging in / registering with IBM. On the third page, scroll down to "WebSphere Everyplace Micro Environment MIDP 2.0 for Windows Mobile 2003" and download it.
Alternatively, you can download the same package from Handango, but it's much bigger in size than the one at IBM, so, you may want to stick to the latter.
Note that the HTC PDA + mobile combo has its own MIDP JVM (see the XDA-Developers thread). It's not available for non-HTC branded devices, however (AFAIK!), so, you'll need to stick to third-party solutions (and it's pretty futile to go to http://www.dmmh.nl/xda/files/ , as recommended in the XDA-Developers thread, to look for the JVM).
Install (you may want to install it on a storage card) and everything will be OK. (Contrary to what most people say, you will NOT need to download WebSphere Studio Device Developer in its entirety! The Handango download may also include parts of it; hence the size.)
2, get Opera from here - sorry, as I was told this distro isn't necessarily legal (even if it's an early beta version, which may be much worse than the final), I've removed the direct link to it.
3, if/once you have Winrar on your PC, just enter winrar opera-mini.rar. Click the 'Extract' icon in Winrar and press Enter. The files will be extracted in a directory named opera-mini.
4, transfer the files Opera_Mini_low.jad and Opera_Mini_low.jar to your PPC; to, say, \My Documents
5, invoke File Explorer on the PDA, and click Opera_Mini_low.jad (the smaller file).
6, IBM J9 will automatically be invoked and the MIDLET installation started; just keep pressing OK/Yes:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
7, after this, highlight Opera at the top:
and press the Launch button at the top. Opra will be started and some Noregian text displayed; just click OK in the lower left corner.
8, go to Meny/Verktøy/Innstillinger
and click the Norsk at the bottom of the list in the top of the window. Choose English from the top of the list.
Click Lagre.
9, now, you can start browsing. You'll get used to the interface very fast. It's pretty different from other browsers (there're no
Some remarks:
- it's astonishingly fast, especially at rendering small images, which has always been one of the weakest point of PIE
- don't be afraid of the lack of 'traditional' form components. Everything is a simple text field here, even text areas, as can be seen in the following screenshot:
- if you install opera.ja* instead of Opera_Mini_low.ja*, it won't be able to communicate with the server, for some reasons (dunno why; didn't really have the time to track the cause for the bug. The 'full' version isn't much better than the 'basic' - it has a graphical command bar and - pretty slow - character antialiasing features. Upon popular request, I may look into the problem, even on the Java source level. Let me know if you want it to work.)
- upon the first request, it asks whether it should use the "airtime". Just leave the default 'Yes' intact:
- use some kind of task manager to return to the app (for example, the built-in Task Switcher in Spb Pocket Plus 3.0 - incidentally, if you use it, you may want to relocate it from the RAM - see this thread) if you minimize the J9 window by mistake
- native VGA mode works great:
- dynamic Landscape orientation change doesn't work with IBM J9; just restart J9 in Landscape and everything will be OK
- everything is one column-only, but still very nice to read, much nicer than the output of, say, Skweezer or its online alternatives. And the speed difference is just breathtaking!
- JavaScript support is good; however, don't expect Google Maps to run, however
- inter-session cookie handling is good; they are stored in \My Documents\recordStores
- I couldn't spot any kind of local caching (Thunderhawk/Minimo doesn't use any local cache either)
- there is no Java support either
- no in-page find, not even text select/copy. Copy/paste works great in text fields, though.
- don't try to force the two IBM J9 EXE files (IBM MIDP20\bin\emulator.exe / IBM MIDP20\bin\j9midp20.exe) into forced VGA. It'll result in the disappearing of the upper/lower bar; the lower bar being the command bar with buttons to use, you won't be able to use the app at all:
10, upon subsequent starts, you don't need to re-click the jad file again; just run "MIDLet HQ" and go to step 7 above.
I've tested it on both WM2003 (iPAQ 2210) and WM2003SE (PL720) with J9; works great so far. Even in its current form, this application is great and, despite its being Java-based, incredibly fast.
You may also want to read my article on the other browsers available and the above-mentioned Reducing Internet bandwidth usage on the Pocket PC - A complete roundup & comparison of Toonel, OnSpeed, Skweezer, WebWarper and the like so that you can compare. Especially compared to the solutions (Skweezer et al) in the latter category does Opera excel.
not tested yet, but you did pretty nice job! thanks
Dude, if you take the "inverted commas" out of your URL tags then they'll come up as links properly. Little hard to follow the top section!
jimmy-bish said:
Dude, if you take the "inverted commas" out of your URL tags then they'll come up as links properly. Little hard to follow the top section!
Click to expand...
Click to collapse
Yup, removed them.
Since this is in the Magician section of the forum, here is how I did it on mine:
I installed the Java Midlet Manager that was in my Extended ROM untill I did the Big Storage thing. If you still have an Extended ROM instead op Big Storage, then you don't need to install this one. I just downloaded it from the ftp and installed it on my MDA Compact. Then I downloaded the Opera-mini.rar, unrarred it on my pc, copied the 4 files to my Magician's storage and opened the Opera_mini_low.jad. Opera was installed and every time I open my Midlet Manager, Opera is there. One click and it gets started.
Maybe this is easier then installing the IBM solution? Perhaps I am way off, but installation like this seems much easier to me...
Koksie said:
Since this is in the Magician section of the forum, here is how I did it on mine:
I installed the Java Midlet Manager that was in my Extended ROM untill I did the Big Storage thing. If you still have an Extended ROM instead op Big Storage, then you don't need to install this one. I just downloaded it from the ftp and installed it on my MDA Compact. Then I downloaded the Opera-mini.rar, unrarred it on my pc, copied the 4 files to my Magician's storage and opened the Opera_mini_low.jad. Opera was installed and every time I open my Midlet Manager, Opera is there. One click and it gets started.
Maybe this is easier then installing the IBM solution? Perhaps I am way off, but installation like this seems much easier to me...
Click to expand...
Click to collapse
Yup, I've also emphasized this. This article is just a cross-post of a post I've also posted to other PPC forums - this is why it doesn't contain much Magician-related stuff. (I know - I should have posted this in a generic forum here too and not "just" to the Magician forum.)
Not working in landscape?
I get some weird screen draw on the right hand side?
CAB installer IBM Workplace Client Technology?
Is there a CAB installer IBM Workplace Client Technology, Micro Edition 5.7 as the 40mb installer does not seem to install on my machine?
Re: Opera on the Pocket PC - a setup tutorial & quick re
Menneisyys said:
A lot of PPC users have noticed on all the PPC boards that an already-usable preliminary version of the Opera browser has become available.
Click to expand...
Click to collapse
Since i'm one of the official Opera translators (i translate the italian version for windows, unix, series60, ezx, archos, opera mini, etc) i'd like to point out that the version we're talking about is called Opera Mini.
Opera Mini is a java application (or midlet, i'm not a Java guru!) intended to run on any MIDlet-capable mobile device out there (most mobiles are). The final official (and localized) release will be available very soon (i've been translating it in these last days). As Menneisyys correctly pointed out, there exist two versions: a low-mem and a high-mem one. I think the high-mem should work on our magician (the low-mem is intended for those slow and memory-limited mobiles) however the beta currently available may have some problem (or, maybe, the MIDlet manager you're using).
Now, I wish to make clear that Opera for PocketPC is a completely different product from Opera Mini. It'll be a PPC native program and will be released soon after (AFAIK) Opera Mini. I wasn't able to get more information about it (but i'm still trying!), so I cannot say whether it'll be WM 2003 SE compatible or it'll run on WM 5 only.
Opera for PocketPC will be ways better than Opera Mini and won't require any MIDlet manager (it's not a Java application!). From this point of view, it'll be more similar to Opera for smartphones or Opera for Series60 (Nokia, Symbian) than to Opera Mini.
As soon as i'll know more about Opera for PPC, i'll keep u informed.
Bye bye,
Isidoro
Opera8.5 for WM2005 is available now.So i guess the 2003 version is not far...
Available for the smartphone ...the WM5.0 and 2003 versions on their way according to website....you can try the beta version however

Native IDE/compiler solution for Universal/PocketPC?

Ie. a compiler that lets me make PPC-runnable applications from the PPC.
I do not really need the IDE, although it would be very nice of course.
The language/libraries basically just need to support text input and output, or some kind of access to the GDI/graphics interface, so I can develop and experiment while I'm out travelling.
I'd really want this, if it can be found anywhere, I'd even pay for it..
preferably C++ or as low-level as possible, I'm also quite decent in
assembler.
I have tried the perl thing, and although cool, it was a very reduced version of perl, and also naturally quite slow because of the processor.
Any tips in this direction would be very welcome
Nevermind.. I found PocketGCC, so for others that are interested in this info:
http://pocketgear.com/software_detail.asp?id=11502
It should do the trick. Only console for now, but that's OK for me.
If there's a better alternative, I'd love to see it though. Not sure how well this console interfaces (interrupts, keystrokes etc).
Check out Mamaich's website for some other stuff related to PocketGCC.
It does work, but it's hard-ish work. But with a keyboard, it'll be easier. Grab yourself the SDK demos from the yahoo groups website.
V
ahh ok thanks man, I found the Mamaich pack here:
http://sourceforge.net/project/showfiles.php?group_id=96949
I have a keyboard on the PPC of course.. Universal I can type almost as
fast on it as on a normal keyboard, which was really surprising to me.
I think it can work, and I'm really ready to start coding on this.
Let us know how it goes. It would be interesting to see how feasible is host development on windows mobile (I do hope that it's not an eye opener though lol)
PocketGCC is great! I made use of it on my honeymoon.
However, you appreciate something like VS2005 with syntax completion etc, but at a push, it's very competent.
Oh, no resource editor. I think there's another one that can be used from Pocket C or something like that.
V
vijay555 said:
PocketGCC is great! I made use of it on my honeymoon.
Click to expand...
Click to collapse
haha! Well if it's honeymoon material, maybe even my girlfriend will like this (she's a programmer too). ^^
However, you appreciate something like VS2005 with syntax completion etc, but at a push, it's very competent.
Oh, no resource editor. I think there's another one that can be used from Pocket C or something like that.
Click to expand...
Click to collapse
OK, nice! ^^ but you say resource editor, makes me think you can make GUI apps.. I thought PocketGCC only gave you access to console IO? Or is GUI libs what the Mamaich package contains?
As I said, if you hunt around in the yahoo groups, you'll find someone has prepared a full set of the PPC Sdk demo apps for PGCC. And they're almost all GUI apps. So yes, Pure Win32 C++ GUI apps are possible.
And you can compile your .rc as well, so if you're competent with notepad, you can make your .rc yourself, although you'll still need a bitmap editor (I like PocketArtist).
But as I said, I think Pocket C has a resource editor you can felch (don't look this word up!).
V
vijay555 said:
But as I said, I think Pocket C has a resource editor you can felch (don't look this word up!)
Click to expand...
Click to collapse
Hmm... all I know is "to belch" or "to filch"... I hope you don't mean either of those :lol: :wink:
Nope, felch is what I mean
Filch works well enough in the context, that can be the "censored" version
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
V
rofl.. omg...
http://en.wikipedia.org/wiki/Felching
sick, sick, sick.
I can only find this:
http://prdownload.berlios.de/cegcc/Pocket_PC_2003_SDK_Includes-2006-03-09.patch
Which is a patch for the includes.. and then I download the SDK seperately? Or is there (as I interpreted you first) a rar/zip of the SDK samples that are prepared to be compiled by the standard PocketGCC package?
Sorry for the questions! But the Yahoo group was kinda messy, and been looking there for a while now =P
Theoretically, you could code your application whichever way you like, even using Flash (Lite).
You must then worry about making it compatible with WM5.0 and then packaging it. Still, fairly simple process.
You have to register and then check files:
http://groups.yahoo.com/group/pocketgcc/files/Source Code/
V
Excellent! Thanks Vijay.. (I thought it'd be a link from the discussion).
OK.. let's hope this will be a useful thread for other people that want to
do the same. And I'll just, ehm.. felch.. =X that file then and shut up.
Thanks again!
For some other pointers on books and sdks etc, you can have a read of this tale of woe I wrote once upon a time:
http://forum.xda-developers.com/viewtopic.php?p=209136#209136
V
Well, I've been programming for 18 years, and started in the absolute opposite corner of what you did (C64 assembler), so for me C++ was more like "wtf.. you can't just grab a memory address and use it?" ^^
anyway this link is definitely good for the thread.
Some bad news though.. even though PocketGCC will work, the supplied console does not seem to run (outdated). The Rainer Keuchel one also seems to be out of date for WM5. ;( I'll update this thread if I find a solution.
PocketC seems to work nicely and includes an editor:
http://www.orbworks.com/wince/download/rt/pkpc300.PPC30_ARM.CAB
Not sure what the scope of it is though..
Apologies for the other post, with 18 years you must see in pointers:
Hopefully it'll provide some "pointers" for other people looking for somewhere to start. I'm still very much of an amateur at c++, so of course, any advice is always appreciated!
I forgot about the console problem on WM5. I haven't investigated recompiling it for WM5 yet, although the various source codes for the console options are available. If you do recompile, let me know!
V
Pocket Console on WM5
I was having trouble getting Pocket Console (http://www.symbolictools.de/public/pocketconsole/index.htm) to run on WM5 - and eventually found the following info:
HKEY_LOCAL_MACHINE\Drivers\Console registry key is required to configure the command processor, the value OutputTo should be set to 0 to ensure console is displayed (Mine was -1).
This may be what is needed for people trying to use other console apps.
This can be seen on:
http://msdn.microsoft.com/library/d.../wce50conCommandProcessorRegistrySettings.asp
This lead me to another issue: The console display is not being automatically refreshed, so you cannot see output/input until you force a refresh (e.g. by selecting all). Any thoughts on sorting this out would be appreciated.
Martin
two relitavely new languages i've found, that run directly on a PPC.
basic4ppc
http://www.basic4ppc.com/
Pocket Programming Language
http://www.arianesoft.ca/page.php?1
Hi there,
i know this posting is quite old, but i'd like to refer to the console issue anyway.
martinkendall said:
I was having trouble getting Pocket Console (http://www.symbolictools.de/public/pocketconsole/index.htm) to run on WM5 - and eventually found the following info:
HKEY_LOCAL_MACHINE\Drivers\Console registry key is required to configure the command processor, the value OutputTo should be set to 0 to ensure console is displayed (Mine was -1).
This may be what is needed for people trying to use other console apps.
This can be seen on:
http://msdn.microsoft.com/library/d.../wce50conCommandProcessorRegistrySettings.asp
This lead me to another issue: The console display is not being automatically refreshed, so you cannot see output/input until you force a refresh (e.g. by selecting all). Any thoughts on sorting this out would be appreciated.
Martin
Click to expand...
Click to collapse
I also recognized the non-refreshing console.
The attached package is working perfectly on the universal. It's taken from the WindowsMobilePowerToys package from microsoft.
Follow the readme and enjoy!
scholbert

Whiskers

[Map Overview]
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
​
Green dots represent Access Points
Blue dots represent Bluetooth Devices
Map updates on page refresh and is based on user uploads.​
[About]
Whiskers is an educational PocketPC application under the GNU/GPL license which tries to exploit all the hardware available on most common PDAs providing a link between different features such as GPS-Bluetooth-Wireless. Generally whiskers was built with radio reconnaissance in mind as help for geocachers or wardrivers but also as penetration and audit tool. There is support for in depth device scanning, triggering actions based on filters when certain devices are in range, centralized GPS logging with search functions for private or public databases and much more.
[Requirements]
WM5 onward
Compact Framework 3.5
Microsoft Bluetooth Stack (?unconfirmed?)
[Features]
Continuous scanning for Wireless and Bluetooth
Device logging (open, save etc..)
Bluejacking (two supported methods, more to come soon).
Autojacking
Device scripting, triggering specific actions when a device is in range based on filters such as device name, address, device class (laptop, phone, smartphone whatever...).
GPS logging based on GPX file with centralized database
Ability to contribute to the database: scan and upload to the central database.
Searching for devices in the database by name, address and Wireless or Bluetooth radio.
More to come
[Screenshots]
​ [Download]
Stable releases are those who were thoroughly tested by several people. They don't contain the latest features, modifications or bugfixes but they are bound to work and be compatible. Snapshot releases are development releases with new features and enhancements and are thus prone to not work correctly. In either case, if you've found a bug, please report it and I'll fix it asap! The stable releases also contain the source code. You can find the most recent cab file after you extract the archive at WhiskersCAB/Release/WhiskersCAB.CAB
[Stable]
HERE or HERE
[Snapshots]
Top most is the most recent version! If you post bug reports please post them for the top most version in the list below. The others below the top most are there just for history purpose. Please download the top most as it contains the recent changes and bugfixes.
http://rapidshare.com/files/203178761/Whiskers-200902272712.CAB
http://rapidshare.com/files/195599015/Whiskers-200908024416.CAB
http://rapidshare.com/files/194612862/Whiskers-200902060010.CAB
http://rapidshare.com/files/193026445/Whiskers-200902024318.CAB
http://rapidshare.com/files/192192948/Whiskers-200901310821.CAB
http://rapidshare.com/files/191631039/Whiskers-200901301416.CAB
http://rapidshare.com/files/190308621/Whiskers-200901273619.CAB
http://rapidshare.com/files/188808467/Whiskers-200901243517.CAB
[ SVN ]
You can always grab the latest SVN version from HERE. Please note that this will change in time and is considered the most unstable version of Whiskers. If you just want to browse the repository, you can do so HERE.​
[TODO]
- Add documentation
- Test on different platforms (other than mine)
[Changes]
current:
0.1:
Initial release
[More]
http://www.sourceforge.net/projects/whiskers
[Install]
If you downloaded the CAB file, just copy to your device and install as normal. In case you've downloaded the stable version, you'll find the CAB file in WhiskersCAB/Release and you can copy it to your device and install.
[Uninstall]
Just uninstall from add/remove programs.
[Credits]
My first thanks go to the xda-developers forum for providing continuous support and testing for Sunscape. I am pretty sure no project would have gotten very far without this invaluable input. Secondly, I want to thank the creator of btCrawler for being an inspiration and going down as a true martyr when the eh... "German Law of Cybercrime" got him. I feel you c0rnholio!
-*-​
[Documentation]
In this documentation I will refer to the screenshots in the initial post. If you look at the tabs at the bottom you'll see four of them: "Scan", "Jack", "Script" and "Track". I'll try to walk you through all of those step-by-step since currently there is no documentation.
Scan
This is the main tab of Whiskers. It will not only scan for devices whether Bluetooth or Wireless but you will also be able to do various things with the found devices.
For a quick start, your bluetooth and/or wireless adapter has to be switched on. Whiskers doesn't do this for you and should fail silently if it doesn't find the adapter turned on.
Then you can just hit the Scan button and Whiskers will start to scan for devices or access points around you.
You can press "Clear" to flush current found devices or press "Delete" to remove individual devices from the list. Naturally, if Whiskers is scanning it will probably find the device again.
The input box right next to the Start button is the scanning time interval measured in milliseconds. That is, the time for which Whiskers will pause between scanning. You can set it at your convenience but 1000ms (1s) is quite a good value.
The Open / Save buttons you can use to open a saved list or store a saved list.
Let's move on to the Comm tab.
Comm
This tab is meant for communicating with other users using Whiskers. Although it's only based on bluetooth and hence the short range, it may come in handy when other Whiskers features will be implemented.
To communicate with a device, first make sure you've scanned it using the Scan tab, enter your message in the box below and click Send. If the other device is using Whiskers and is in listening mode, after a couple of tries your message should appear on your screen and on the other device's screen.
To receive messages, you must have clicked the Start Listening button which will make Whiskers listen to all incoming messages.
And now the Jack tab.
Jack
This tab is meant for jacking / autojacking. I have some development ideas which I won't divulge just yet but for the time being only this form of eh... annoyance is possible. The whole concept started from quite an old java applet I used to have on my mobile phone... You could set it to jack a message continuously and you'd just stroll around and it would jack any device which came in range.
To jack a device (only bluetooth devices, of course) you select a device in the Scan tab, then select the Jack method, either pairing or file, enter your message (the shorter the message the better!) and press the Jack button.
To autojack, you enter your message and and select a jacking logic (rotation - Whiskers will rotate in a round-robin fashion going through all devices, first in - Whiskers will jack any "new" device it finds, random - Whiskers will randomly select devices from the Scan tab) and press the Start AutoJack button. If you switch to the Scan tab you will see which device Whiskers is currently jacking. The time to live (TTL) is how much Whiskers will wait for a timeout while jacking a device (10 000ms, 10 seconds should give enough time to properly jack a device).
Please use this feature responsibly Let's move on to the Script tab.
Script
The purpose of this feature is to execute certain commands when a specific device is detected. You can search for a specific address, device name, type of device (the drop down boxes will help you choose), and whether it should be a BT (Bluetooth) device or an AP (access point).
To add a script, you may choose to fill any or none of the filters. You can search for a device name... Or maybe just a device class... Then you write or browse for an executable and fill in any optional parameters and click Add. You can later add the script by just clicking the script in the big box.
The next step is to enable scripts by clicking the Enable Scripts button. The time frequency (in milliseconds) is how often the scripts will trigger on the devices it finds.
That's it for the Script tab.
Track
Uh. This is a difficult one. The Track tab, given you have a GPS device, will log at what latitude and longitude it found a device. It will store this in a GPX file along with the device name and device address. Optionally, of course, once you've gathered some data, you may choose to press the Upload button which will upload the GPX file to a central server [I'll explain this more in the next post]. Given that some user spotted a specific device and has uploaded it to the server, you can search for devices using the search feature. This will place dots on the map [They may be hard to see on the default map, and I'm sorry for this, I'm still searching for solutions] at the respective locations. You can then choose to save the map with the dots using the Save button or you can clear all the dots by pressing the Reset button.
[Considerations]
You can use the program to scan for devices continuously. I used it to track around and discover what devices people are using. Needless to say that some had quite funny names or just adverts. I also picked up a TomTom device from a car. It's quite interesting and does fulfill some voyeuristic pleasure I guess. It's impressive though how many devices I've found... Tons of them, pages and pages of scrolling.
You can use the program to jack devices eh... In an educational manner, of course. Or to autojack while Whiskers discovers new devices. Please don't over-abuse it since it can be pretty annoying. In comparison to btCrawler or Bloover or whatever, Whiskers is meant to be the first tool before you use any of those. Bluesnarfing on newer devices is quite possible IF and only IF the user has accepted to pair with you. From then on, you could use one of those nifty tools which grant you access to all the cool and nasty features. I've seen a lot of discussion about being able to snarf without the user having to accept the pairing and, from what I've seen, sadly there is no such tool. Whiskers will try to get you paired but development in this department is halted for the time being.
The tracking feature currently uses my personal server. In time, when things get more stable I'll also publish the server-side part of Whiskers so you can make your own server (I have to, this is OpenSource). Of course, the search feature is only useful if you have a big enough database. It will also be possible to add your own maps rather than the default map.
[Pinboard]
The requirements state you need Microsoft Bluetooth Stack however, Whiskers relies on a third party library for Bluetooth management so it's not yet certain if it supports other stacks too.
Bluetooth and/or Wireless must be turned on or Whiskers won't report any device.
Currently I don't have many devices in the database for the Track tab. You are free to upload anything and if you want that file for yourself I'll send it happily. For the time being you can try searching for "khan" and type BT or "Wireless" and type AP. It will place some points in the UK and Romania. Once again, sorry, the dots are really small and hard to spot. What you could do is press the Save button, save the file and then view it on your computer screen. The dots should be light greenish and light blueish...
After using this program, please check in Settings -> System -> Device ID that your device name is still there. On a crash it may just leave the jack message there. Simply rename it back to what it was before.
[ Program may crash if you press the Upload or Search button and don't have an active internet connection. This will be fixed soon, I just wanted it to crash to spot some bugs but I forgot it on. The next unstable CAB will just fail gracefully ] - fixed.
Of course, with scanning on, the Scan tab will clutter up with devices that aren't in range anymore. Just save the log if you like and hit the clear button and it will update with devices currently in range.
There is currently no report whether the upload was successful or not and the same for the search. If you do choose to upload, make sure you search for a device you just uploaded using the search feature. If the upload was successful, it should show up.
The current Track logic is: if we found a new device and if we have a fix, log to GPX file. Best practice is to start tracking and then scanning. Once Whiskers has a satellite fix, it will log new devices to the GPX file. Once you hit the Track button, Whiskers will try to get a lock as fast as it can. Of course, as for any GPS device, it's good to try it while outside.
Looks interesting!
I feel like some "auditing".
Might it be an idea to have a direct link to the cab, so one doesn't have to download the whole VS solution?
Thanks!
EDIT:
First find:
Needs .Net CF 3.5 I think, not 2.0. Or at least it gave an error that required NETCFv35.Messages.EN.wm.cab to be installed to show the error.
l3v5y said:
Looks interesting!
I feel like some "auditing".
Might it be an idea to have a direct link to the cab, so one doesn't have to download the whole VS solution?
Thanks!
Click to expand...
Click to collapse
Hey l3v5y, nice to see you on a new quest! Yes, everything is a bit shaky at the moment but I'm updating the posts as fast as I can. Also, you may want to wait for some documentation because there is currently NONE. A lot of stuff needs explaining. For a quick start though: you need to turn on your bluetooth and/or your wireless (the program doesn't do this automatically for you). I hope you have a MS stack. I rely on some external libraries and I'm not sure what they have under the hood. Thanks!
EDIT: Bingo, I'll update to 3.5 thanks!
I'm getting this:
Code:
Whiskers.exe
DirectoryNotFoundException
An error message cannot be displayed because an optional resource assembly containing it cannot be found
at System.IO.__Error.WinIOError()
at System.IO.FileStream..ctor()
at System.IO.FileStream..ctor()
at System.Drawing.Bitmap..ctor()
at Whiskers.Whiskers..ctor()
at Whiskers.Program.Main()
...and I have NETCFv35 and NETCFv35.Messages both installed. How do I tell what bluetooth stack I have? I have a Sprint Touch Pro. Thanks!
cspannos said:
I'm getting this:
Code:
Whiskers.exe
DirectoryNotFoundException
An error message cannot be displayed because an optional resource assembly containing it cannot be found
at System.IO.__Error.WinIOError()
at System.IO.FileStream..ctor()
at System.IO.FileStream..ctor()
at System.Drawing.Bitmap..ctor()
at Whiskers.Whiskers..ctor()
at Whiskers.Program.Main()
...and I have NETCFv35 and NETCFv35.Messages both installed. How do I tell what bluetooth stack I have? I have a Sprint Touch Pro. Thanks!
Click to expand...
Click to collapse
You're doing fine, sorry the CAB file is broken: Give me 5 minutes, I'll upload the fix.
EDIT: Ok, fixed and uploaded. Please try again...
SevenRains said:
[More]
http://sourceforge.net/projects/whiskers/
Click to expand...
Click to collapse
That link takes me to http://sourceforge.net/projects/sunscape/
http://sourceforge.net/project/down...&filename=Whiskers-0.1.zip&use_mirror=surfnet
..bbut archive is broken, idd..or i am broken, lol..
circuit breaker said:
That link takes me to http://sourceforge.net/projects/sunscape/
Click to expand...
Click to collapse
Fixed now. That was pretty strange...
SevenRains said:
Fixed now. That was pretty strange...
Click to expand...
Click to collapse
hheh, still sunscape site..
nothin said:
http://sourceforge.net/project/down...&filename=Whiskers-0.1.zip&use_mirror=surfnet
..bbut archive is broken, idd..or i am broken, lol..
Click to expand...
Click to collapse
Yes, it seems that mirror screwed up the archive. You can try the:
http://sourceforge.net/projects/whiskers
and follow the download links. Sourceforge takes a while to replicate the file to all mirrors. It seems that the surfnet mirror broke the file.
EDIT: I'll see if I can re-add the zip file to sourceforge. Don't know what they did with it...
EDIT: Ok, I re-added the file to sourceforge, it should be ok after it replicates. I'll add the source to opening post for convenience.
EDIT: Mirror for source/stable added to opening post.
nothin said:
hheh, still sunscape site..
Click to expand...
Click to collapse
You're kidding Should be fixed now...
EDIT: sourceforge really screwed up my files...
Sorry peeps, I think I'm done with messing around with the release files. It's always like this at the beginning. Sourceforge took an older version (which would crash like the cab file did) and replicated that instead of the proper release.
Please use the CAB file. At the moment the CAB and the stable release are identical. I replaced the CAB with the proper version.
Initial post updated!
Last minute fix for Script handling.
Initial post updated!
And another fix for an occasional NullReferenceException.
Initial post updated!
This seems like an excellent sort of application, thank you for all your hard work.
I am just wandering if the latest version works on the Trinity?
I have installed the .CAB from the release folder but when I try the jack or auto jack feature the program crashes. I have turned bluetooth on and also left it off before trying but the same problem, also do i need beam on or off? or am I just not doing something simple.
Thank you for your help in advance
jab1a said:
This seems like an excellent sort of application, thank you for all your hard work.
I am just wandering if the latest version works on the Trinity?
I have installed the .CAB from the release folder but when I try the jack or auto jack feature the program crashes. I have turned bluetooth on and also left it off before trying but the same problem, also do i need beam on or off? or am I just not doing something simple.
Thank you for your help in advance
Click to expand...
Click to collapse
Hello, thanks for taking interest in Whiskers!
If you didn't get a crash when pressing the scan button, then the libraries are working correctly and Whiskers should definitely work on your device.
The release version had some bugs which have been fixed in the new Snapshot releases. Could you please try the latest snapshot release? (Whiskers-200901273619.CAB at the top will do fine!)
If you are still gettting a crash with the latest snapshot, could you please provide a few lines from the crash? (You can access those by pressing Details when the crash screen comes up)
Please tell me if this works for you!
Ok I have just installed Whiskers-200901273619.CAB and im getting the same problem. On the first tab (scan) I can hit scan but nothing happens, a few titles at the bottom are greyed out but thats it until I hit hit stop. If I go to the jack tab and hit jack or start autojack then it frezzes for a second and then crashes, here are a few lines from the details section:
Whiskers.exe
ArgumentOutOfRangeException
ArgumentOutOfRangeException
Parameter name: index
at
System.Collections.Array.get_Item(Int32 Index)
at
Does this help or do you need more?
Thank you again for your help
I posted too soon, the scan function is working and is picking up access points, but the jack feature is still the same

[APP] Native Android web server 1.1 - updated! (folder browsing, basic AUTH)

Hello,
I've managed to compile a small native web server for Android (but for now only tested on Sony X10 with 2.3.3 version). You will need root.
The main advantage is that you can quickly share photos / documents from your phone as long as there's WiFi available. The other phone needs just to have WiFi and a browser.
It is an Android port of the webserver source code found here: http://www.jbox.dk/sanos/webserver.htm which comes under BSD License.
Download
webserver-1.1.zip
Archive contents
webserver – Android binary
LICENSE – initial BSD License
android_port.patch – BSD licensed patch for webserver.c
README.txt – description on how to install / compile.
Installing
Since most mobile carriers block incoming traffic, you won’t probably be able to access your phone via GSM/3G data connection, only over WiFi.
You need to unpack the archive, and extract the webserver binary to a directory of your choice. Then:
Code:
adb push webserver /sdcard/
adb shell
su
cd /system/bin
cp /sdcard/webserver .
chmod 755 webserver
./webserver -u <username> -p <password> -s <port>
To stop just kill its pid ...
If you run in Terminal Emulator, just send it a Ctrl-C and it will exit.
Screenshots
Starting up the webserver (runs by default on port 80) and navigating to /sdcard/DCIM folder in the browser:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
For more information about the porting process please check my website.
Change log
v1.0 - 21 Aug 2011
Initial port to Android
v1.1 23 - Aug 2011
Added command line options
Added listing of all local IPs (please check screenshot, it reports IPs and interfaces when starting up. Helps a lot to find out the WiFi IP, tun.ko is detected and works too)
Added Basic HTTP authentication for security
PS: if you have other rooted Android phones, I'm very interested in feedback if this works or not. I did not use anything specific to X10.
Thank you,
viulian said:
Hello,
I've managed to compile a small native web server for Android (but for now only tested on Sony X10 with 2.3.3 version). You will need root.
PS: if you have other rooted Android phones, I'm very interested in feedback if this works or not. I did not use anything specific to X10.
Thank you,
Click to expand...
Click to collapse
good to see someone working on not so generic stuff.... would like to help you with stuff althogh i am not that good at java.
Will be checking the webserver out....
i don't have any other phone however i am in a process of purchasing some tabs so might help you then....
Thank you for feedback
Don't know if it will work in tablets (I did not test it on 3.0, only 2.3.3) .. but yes, if you will root them, please give it a shot!
Did you install this on your own X10? I need some pics.
silveraero said:
Did you install this on your own X10? I need some pics.
Click to expand...
Click to collapse
Yes and I've also tested it on X10. I've attached two screenshots to the first post of the thread. Please check them:
a) I have started webserver within Terminal Emulator
b) Then I navigated to the photos folder, in the browser (192.168.1.6 is phone's IP over WiFi).
viulian said:
Yes and I've also tested it on X10. I've attached two screenshots to the first post of the thread. Please check them:
a) I have started webserver within Terminal Emulator
b) Then I navigated to the photos folder, in the browser (192.168.1.6 is phone's IP over WiFi).
Click to expand...
Click to collapse
just a quick comment
when you copy it to system/bin
you don't need to cd or ./
you cna directly run webserver
EDIT : i would suggest you do one more change.
right now if i understand correctly this can pose a security risk....
as it can give you all folders any file effectively all data any location...
Make changes such that which ever folder you navigate and start webserver from only that folder and its subfolders are accessiblle on webserver.
webserver is already in bin so we can run from anywhere
so if i want to share /sdcard/share
cd /sdcard/share
webserver
hope that will help.
anantshri said:
just a quick comment
when you copy it to system/bin
you don't need to cd or ./
you cna directly run webserver
Click to expand...
Click to collapse
My bad! Yes, I was testing in /system/test when porting, and by reflex I typed it. I will leave it like that in descriptions, but you are right of course
anantshri said:
right now if i understand correctly this can pose a security risk....
as it can give you all folders any file effectively all data any location...
Click to expand...
Click to collapse
It's a difficult decision to start adding security to folders ...
Because next question will be: but I want to access more folders! Or, yes, I want everything but I also want to exclude these and these ... And just like any software product, more time will be spent fool-proofing it. Because if you add configuration files, then you need a ton of error messages (and support for noobs) to explain what is wrong and how to fix it.
This is just a working proof of concept. It works, and it uses so little memory as compared to other Java apps that might do the same thing ...
I also thought of security (since I wouldn't want to start it on a public WiFi) but to add support for username and password - as even allowing some folders is still risky 'cos anybody than then browse all the photos.
On my todo list:
a) add file upload feature (fork()-ing is unstable on Android, so CGI support can't be done reliably - it will have to be built in)
b) add support for username and password.
c) sorting (alphabetically and folders first).
viulian said:
My bad! Yes, I was testing in /system/test when porting, and by reflex I typed it. I will leave it like that in descriptions, but you are right of course
Click to expand...
Click to collapse
I was adding more while you replied
EDIT : i would suggest you do one more change.
right now if i understand correctly this can pose a security risk....
as it can give you all folders any file effectively all data any location...
Make changes such that which ever folder you navigate and start webserver from only that folder and its subfolders are accessiblle on webserver.
webserver is already in bin so we can run from anywhere
so if i want to share /sdcard/share
cd /sdcard/share
webserver
hope that will help.
why not just swiftp ?
phillu97 said:
why not just swiftp ?
Click to expand...
Click to collapse
alternatives the more the merrier.
anantshri said:
alternatives the more the merrier.
Click to expand...
Click to collapse
haha, finee okays. but i enjoy the GUI and all .
phillu97 said:
why not just swiftp ?
Click to expand...
Click to collapse
Well, this is a completely different approach. Native (.c) compile, very fast and extremely low memory footprint.
It is not ment for the masses. Google wants people to use Java / DalvikVM. What I (as a developer) want is to get closer to hardware instead of being abstracted away. While it is true that interface with good implementation wins (Apple proves it), it is very good that we can still go low level.
Second, FTP is limited. You can only connect to download.
In future, if people like webserver and keep providing feedback, HTTP is more powerful:
a) interact with phone - contacts, call logs, send sms from browser, etc
b) have cached previews when browsing the photos - this you cannot over FTP.
c) compression
d) no data/command channels to slow down interaction.
As said, this is a proof of concept, and not offered as an alternative to "SwiFTP" and the rest.
hmmm i see your point
but swiftp has proxy servers and you can upload :S
will test out tho. and will hit thanks when near comp
Sent from my X10i using XDA Premium App
viulian said:
It's a difficult decision to start adding security to folders ...
Because next question will be: but I want to access more folders! Or, yes, I want everything but I also want to exclude these and these ... And just like any software product, more time will be spent fool-proofing it. Because if you add configuration files, then you need a ton of error messages (and support for noobs) to explain what is wrong and how to fix it.
This is just a working proof of concept. It works, and it uses so little memory as compared to other Java apps that might do the same thing ...
I also thought of security (since I wouldn't want to start it on a public WiFi) but to add support for username and password - as even allowing some folders is still risky 'cos anybody than then browse all the photos.
On my todo list:
a) add file upload feature (fork()-ing is unstable on Android, so CGI support can't be done reliably - it will have to be built in)
b) add support for username and password.
c) sorting (alphabetically and folders first).
Click to expand...
Click to collapse
Why not just virtually create a .htaccess inside of each folder?
Do that, and you can get user accounts, directory blocking, etc.
Mayazcherquoi said:
Why not just virtually create a .htaccess inside of each folder?
Do that, and you can get user accounts, directory blocking, etc.
Click to expand...
Click to collapse
this is not a direct fork of apache so .htaccess support will not be an easy stufff to make... so we can let the dev think about how to implement a check....
SwiFTP works with FTP right? Some1 know Wifi FileExplorer?
What i miss with those 2 apps is Add Hoc support! I want to Acces one phone with another over Wifi! Would be perfect over http because it also works to an Iphone. Sadly most apps like that wont work while Barnacle theters WiFi.
P.S. Dont have a PC here, you can compile a APK? Or that wont Work because its not java?
It will work, and APK can launch a native file but I wanted as close to bare minimum as possible.
However, I will only have time to investigate tonight when I get back home ..
New version released !
v1.1
Added command line options
Added listing of all local IPs (please check screenshot, it reports IPs and interfaces when starting up. Helps a lot to find out the WiFi IP, tun.ko is detected and works too)
Added Basic HTTP authentication for security
Download
webserver-1.1.zip
I've also updated the first post of the thread with new screenshots (Hit Ctrl-R to reload the screenshots in case you have the old ones in the cache).
Whilst some will disagree with me this would be awesome to bundle with MySQL and PHP servers...
Apache, MySQL, and PHP running on mobile...not so much for hosting a website but for developement...our devices are getting more and more powerful and would be cool to develop websites on the phone using a mobile version of lamp and an HTML/PHP ide like a mobile dreamweaver/expressions web...that and we already have photoediting software...
Not saying it'd be practical but would be nice...and I think it would come in handy from time to time...
Sent from my PC36100 using Tapatalk
ebbinger_413 said:
Whilst some will disagree with me this would be awesome to bundle with MySQL and PHP servers...
Click to expand...
Click to collapse
Actually
I downloaded the php-for-android bundle and which comes with php 5.3.3 compiled native.
The native php executable lies hidden, since it is intended for SL4A to detect and invoke it; I want to do the same thing, but only from this web server. Initially GET only - and later POST too.
The following issues are make it difficult to have full featured Linux alongside Android:
a) Google's poor implementation of fork / pthread. It is so poor, they insist people should not use it.
Here are some insights: http://groups.google.com/group/android-ndk/browse_thread/thread/1dfa066e20175c5a/e4c79372d365f5e3.
Dianne Hackborn, Android framework engineer, was hinting to actually limit even the basic one that exists, if people "abuse" it. http://comments.gmane.org/gmane.comp.handhelds.android.ndk/2132
b) Google implementation of bionic (many things lack) makes it difficult to port from Linux. Standard libraries are missing (libcrypt / base64 / ... ) and so on.
We'll see but with the avoidance attitude towards low level access (Google need people to use all the location services and ads based apps) I am a bit skeptical that they will ease transition to glibc.
At least to leave it as is ...

Using .NET Native on Windows Phone 8.1 Projects

In April, Microsoft released a preview of a framework for Windows Store apps that would convert .NET assemblies into the compiled native binaries of the target architecture (x64/ARM for now) in order for application optimization. This tool was named, .NET Native.
This tool itself will help protect your code and IP (a.k.a make it even harder for people to reproduce your code, but not impossible) and also increase the application's performance.
Getting Started:
To download .NET Native, Go to the home page and register/download the preview. Close all instances of Visual Studio 2013 (VS 2013 Update 2 is required) then run the installation package.
The .NET Native tools are configured to purely work with Windows Store apps only, but I figured that it SHOULD work with Windows Phone 8.1 projects since they both use WinRT (mostly). I decided to come up with a solution that would enable .NET Native for Windows Phone 8.1 projects manually since there's no way to enable it from Visual Studio.
Here's the PowerShell script that runs this. BE SURE TO RUN AS ADMINISTRATOR
I've tested this with VS 2013 Ultimate Update 2 running on Windows 8.1 Update 1 with the English language.
The syntax is as follows:
./enableProjectN.ps1 -solution "c:\pathtovsproject\wp81solution.sln"
The script will go through and determine whether you have VS 2013 installed, and whether the projects in your solution are WP 8.1 projects. It will then add the project config nodes that enable .NET Native.
For this to work, you MUST target your projects to the Release|ARM configuration in Configuration Manager.
The building of your project will take a little longer since it is running all of the tools to compile your C# into the native binaries . The file size will go up exponentially, but the app will run faster.
Read through the Compiling for .NET Native page for complete information on how the .NET Native technology works and for any gotchas.
Happy compiling.
EDIT: I've noticed that my test app doesn't work. It wasn't the initial app I was testing with, but I found out why people are getting dependency errors during deployment. You have to include a C++ WinRT Universal Component in your solution and reference it from your main app, then the build will link up the dependencies needed and allow you to push it to your device.
Found a tiny issue with my .NET Native script for WP 8.1 You HAVE to run powershell from within the Developer Command Prompt for VS 2013, THEN run the powershell script. I didn't realize that I had made this script from within that environment and noticed that the essentially environment variables that I am using weren't there when calling PS regularly.
Nice share! Will try this at home tonight.
FabricioGS said:
Nice share! Will try this at home tonight.
Click to expand...
Click to collapse
Awesome! One thing to note for now. This will only work for projects that are sideloaded . The Store doesn't accept some of the DLL Imports that are added by the generated dlls.
snickler said:
Awesome! One thing to note for now. This will only work for projects that are sideloaded . The Store doesn't accept some of the DLL Imports that are added by the generated dlls.
Click to expand...
Click to collapse
Anything in particular?
Sunius1 said:
Anything in particular?
Click to expand...
Click to collapse
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I am sorry but isn't ahead of time compilation the way .net apps have compiled to native on windows phone since 2011?
The compiler does produce MSIL assemblies, but these are compiled to native upon deployment, unless the dev side loads it and the package is created for JIT.
Has something changed in wp8.1?
As far as i know, .net native is only designed for windows store apps.
mcosmin222 said:
I am sorry but isn't ahead of time compilation the way .net apps have compiled to native on windows phone since 2011?
The compiler does produce MSIL assemblies, but these are compiled to native upon deployment, unless the dev side loads it and the package is created for JIT.
Has something changed in wp8.1?
As far as i know, .net native is only designed for windows store apps.
Click to expand...
Click to collapse
This completely makes Native binaries using a compiler that's just like C++. No .NET code whatsoever. The DLL that's generated contains the bulk of the code and the EXE just loads the entrypoint of the .DLL.
Yes, for now .NET Native is designed for Windows Store apps, but since WP 8.1 just happens to use the WinRT assemblies that .NET Native needs, it will actually work for WP 8.1 apps. The Store doesn't accept the particular native functions that were listed in the post above yet though.
I've attached a blank WP 8.1 project that I've .NET Native compiled. Peer into the .DLL using IDA Pro and you'll see what they did. Notice that none of these files are .NET assemblies, they are pure ARMv7 compiled PE files. The .NET Native precompiles to pure Native binary, not doing optimization on an assembly for the specific architecture.
Check out the .NET Native links I put in the first post as they explain more of what's going on.
I know what .net native is and how it is different from the usual .net compilation, I am just not so sure it is of any actual use on windows phone. I know a lot of people would kill to get this on desktop (well, they technically do, with ngen), but on windows phone, i really don't see the need.
It'll be faster to run, no memory overhead with the compilation and better protection of your code. I see it as very useful for those who want to code in C#, but have it fully compiled to native binary for the speed and execution time without having to use C++. I don't really see how it couldn't be useful, but to each their own I guess .
I just posted this because it was a cool tweak that I've seen some interest from in others.
Well, it's undeniably a cool find. I'm unsure of its usefulness, though.
Normal phone apps, even from the Store, still have the CIL binary code in them. This makes them much easier to reverse engineer, among other things.
On the other hand, a JIT (from CIL to native) can perform some platform-specific optimization, which may produce a faster-running binary than one which is compiled for a generic target. With that said, I don't believe that the Store apps actually get JITed on the phone - I *think* they are instead pre-compiled to native for each processor that is in common use, and the correct one is installed - so this performance improvement may already be present. On the flip side, while .NET Native does allow you to bypass the JIT startup time (I assume that's what you meant by "speed and execution time" since it still performs the other things, like dynamic memory management and so on, that slow down managed code...), so does the precompiled-at-the-store approach.
A clear downside of .NET Native is the large binaries it produces. That wastes space with a lot of install footprint, and may also cost memory (assuming the phone kernel retains the page combining feature of NT6.2 and higher on the desktop, this impact could be minor or it could be massive depending on whether the chunks of code from the .NET framework are compiled in aligned on page boundaries and thus suitable for combining). On the other hand, there's no need to keep both the CIL and the native code in memory at once, so it could save some RAM too.
Anyhow, you're getting something that may actually run slower (all the downsides of managed code at runtime, none of the advantages of JIT) without any faster startup than is already available from the Store. It makes bigger downloads and uses more install space, and may also cost extra RAM at runtime (or may not). Unless you really want to use a managed language in a hard-to-reverse-engineer way - which is admittedly a common goal, as evidenced by all the obfuscators out there - this doesn't seem like an advantage over the existing options.
GoodDayToDie said:
A clear downside of .NET Native is the large binaries it produces. That wastes space with a lot of install footprint, and may also cost memory (assuming the phone kernel retains the page combining feature of NT6.2 and higher on the desktop, this impact could be minor or it could be massive depending on whether the chunks of code from the .NET framework are compiled in aligned on page boundaries and thus suitable for combining). On the other hand, there's no need to keep both the CIL and the native code in memory at once, so it could save some RAM too.
Click to expand...
Click to collapse
^^ This was my only big concern.. The immense binaries.
Does this actually work for you on the device? For me, it adds bunch of references to Kernel32.dll, which obviously doesn't exist on the phone and in result it fails to even start.
Sunius1 said:
Does this actually work for you on the device? For me, it adds bunch of references to Kernel32.dll, which obviously doesn't exist on the phone and in result it fails to even start.
Click to expand...
Click to collapse
It worked for me when I tested on my phone (Lumia 1520/Cyan). I made this thread only after having it work on my device first. I tried it without the Cyan firmware first though.
snickler said:
It worked for me when I tested on my phone (Lumia 1520/Cyan). I made this thread only after having it work on my device first. I tried it without the Cyan firmware first though.
Click to expand...
Click to collapse
Strange. If I download your attached "Empty" app, and open the main .dll in Depends.exe, I can clearly see 2 references to kernel32.dll and one to ole32.dll.
Sunius1 said:
Strange. If I download your attached "Empty" app, and open the main .dll in Depends.exe, I can clearly see 2 references to kernel32.dll and one to ole32.dll.
Click to expand...
Click to collapse
Hmm, does it actually deploy and run for you though?
snickler said:
Hmm, does it actually deploy and run for you though?
Click to expand...
Click to collapse
Well, you posted naked files, not an app package. Making a package with makeappx and trying to deploy it with the AppDeploy.exe fails the deployment fails due to dependency check.
Sunius1 said:
Well, you posted naked files, not an app package. Making a package with makeappx and trying to deploy it with the AppDeploy.exe fails the deployment fails due to dependency check.
Click to expand...
Click to collapse
that IS the package made via Visual Studio when you click to prepare a Store app (which uses makeappx to generate the appx project). You're probably missing the VCLibs dependency on your phone (somehow).
Packaging doesn't INCLUDE the dependencies with the package manually. The VCLibs appx is on the file system if you have the 8.1 SDK though.
/facepalm. Since you posted it as a zip file, I actually thought you zipped up output folder, instead of building app package and then renaming.
However, it will still not deploy for me. I do have VCLibs, and even putting them next to the appx file fails the deployment process. Anyway, I'll try some more stuff to see if I can get it to work.

Categories

Resources