Post Reply

[XAP][Source] Root Webserver - v2.3.1 (supports Full or Root Tools unlock)

OP GoodDayToDie

22nd January 2012, 08:40 PM   |  #1  
OP Recognized Developer
Flag Seattle
Thanks Meter: 2,708
 
5,731 posts
Join Date:Joined: Jan 2011
More
UPDATE: Still working on a newer version of the webserver, but I've been distrcted by a number of other projects lately (including getting a new job). The most important news is that the Root Webserver works great with WP7 Root Tools; you don't need a full-unlocked ROM or HtcRoot compatibility anymore! Just mark the app as Trusted in the WP7 Root Tools policy pivot, and you're good to go.

Sorry for the long delay, I've been working on many different things. One of them is re-write of a substantial part of this app, to make it more modular and extensible and also to add more features. That re-write is far from done, any may end up being broken into a few smaller pieces once any of the new or re-written features reach release-quality without the whole app being unusably broken.

This project started out as a child of the HtcRoot project. It no longer requires HtcRoot; full-unlock or WP7 Root Tools work fine. It's also a child of the Functional Webserver / WebServer (Mango) projects, and builds on their open-source foundations. Its goal is to allow unfettered access to your phone through the convenience of a web browser.

Fifth release (v2.3.1)
Platform release, minor feature release, minor library update, bugfixes
Should now be compatible with fully unlocked custom ROMs, even if they can't use the HtcRoot project.
This release does not include NativeIO_Mango source, as it was not changed. If you need the source for this library, extract it from the 2.2.0 download.

Homebrew library (v1.6.3)
Better detection and reporting of exceptions due to not being root.
Should be safe to use the HtcRoot functionality on fully-unlocked ROMs.

Please see the changelog in the app for details and history

Note that this app requires a slight update to NativeIO_Mango from @fiinix's version. There were some bugs in the library that were making things difficult, so I fixed them. I also changed the return values of a couple functions (though the signatures are unchanged) to give the ability to return error codes from COM. Source code for both the managed Homebrew and COM NativeIO_Mango libraries is included, along with compiled binaries. Source code for the HtcUtility library can be downloaded from the HtcRoot proect.

Features:
View folder and ROM Module last-modified dates. (NEW 2.3.1)
File attribute info now presented better. (NEW 2.3.1)
Upload files anywhere. (2.2.0)
Create and delete directories anywhere. (2.2.0)
Delete writable files.
Add or Remove readonly attribute from files. (2.2.0)
See file size and attributes for any file.
Browse the entire filesystem.
Download any file (still not ROM modules, though).
Static HTML files in a "Content" folder for easier editing.
Easy link to browse (and add your own files) to Content folder (2.2.0)
All features of previous WebServer versions (IsoStore uploading, authentication, etc.)
Changelog

Bugfixes:
Fixed a case where setting file attributes or uploading a file would fail due to lacking permissions.
Fixed the potential for infinite loops on fully-unlocked ROMs compatibel with the HtcRoot project.
More effort to eliminate RootException / Error 1260.

Upcoming:
Access the registry as well as the filesystem.
Better access to installed application info and folders.
View, edit, move, and rename files.
Rename and move directories.
Server-side commands (process provxml, for example)?
Filesystem/Registry/Application search?

Known Bugs:
App may take several seconds to close; don't re-launch it immediately or weird things may happen.
Touching the screen while the app is in "root" mode appears to cause a crash, and posible resource leak.
Error 1260 (Least Privileged Chamber) may still occasionally appear on first access attempt or two... really wish I knew why.

Requirements:
Developer-unlocked phone (if you remove ID_CAP_INTEROPSERVICES it will work without root access, cutting off most of the filesystem).
For root access, you need *EITHER*
* A fully-unlocked ROM
* An interop-unlocked HTC phone with working HtcUtility driver
If your phone is compatible with the HtcRoot project, you're OK.

Thanks To:
Davux (original author of the "Functional Webserver" app)
Fiinix (Ported the NativeIO library and Webserver app to Mango)
MarysFetus (designed icons and graphics for the webserver app - site http://klaus-widraw.de)
Everybody who helped make the HtcRoot project possible.


Have fun!
Last edited by GoodDayToDie; 21st April 2012 at 04:05 AM. Reason: Version 2.3.1 release
The Following 24 Users Say Thank You to GoodDayToDie For This Useful Post: [ View ]
22nd January 2012, 08:41 PM   |  #2  
OP Recognized Developer
Flag Seattle
Thanks Meter: 2,708
 
5,731 posts
Join Date:Joined: Jan 2011
More
Reserved for OP
The Following 2 Users Say Thank You to GoodDayToDie For This Useful Post: [ View ]
22nd January 2012, 08:47 PM   |  #3  
OP Recognized Developer
Flag Seattle
Thanks Meter: 2,708
 
5,731 posts
Join Date:Joined: Jan 2011
More
Also reserved.
The Following 2 Users Say Thank You to GoodDayToDie For This Useful Post: [ View ]
22nd January 2012, 10:47 PM   |  #4  
KlausWidraw's Avatar
Senior Member
Flag Berlin
Thanks Meter: 85
 
145 posts
Join Date:Joined: Jul 2011
Donate to Me
pretty neat
22nd January 2012, 11:40 PM   |  #5  
voluptuary's Avatar
Senior Member
Flag Mukwonago
Thanks Meter: 745
 
941 posts
Join Date:Joined: Dec 2010
Donate to Me
More
I'm not by my HTC HD2 but anybody know if will this work on it under the B.t.t.F ROM?

Awesome work GDTD!

EDIT: Doesn't work on a HTC HD2 on B.t.t.F v2.1 @ 8107 (no SP1) I get the following error when trying to connect from my PC:
Code:
Exception while getting the listing for /!
Homebrew.InteropException: Error listing subdirectories of ! GetLastError: 1260 at Homebrew.IO.DirectoryInfo.GetDirectories(String filter) at Homebrew.IO.DirectoryInfo.GetDirectories() at WebServer.MainPage.handler.BuildDirectoryListing(String dirPath) at WebServer.MainPage.handler.Process(RequestContext context) at HttpServer.Server.ProcessModules(RequestContext context) at HttpServer.Server.HandleRequest(RequestEventArgs e) at HttpServer.Server.OnRequest(Object sender, RequestEventArgs e) at HttpServer.HttpListener.OnRequest(Object sender, RequestEventArgs e) at HttpServer.HttpContext.OnRequest(Object sender, FactoryRequestEventArgs e) at HttpServer.Messages.MessageFactoryContext.OnMessageComplete(Object sender, EventArgs e) at HttpServer.Messages.Parser.HttpParser.OnComplete() at HttpServer.Messages.Parser.HttpParser.GetHeaderName() at HttpServer.Messages.Parser.HttpParser.Parse(Byte[] buffer, Int32 offset, Int32 count) at HttpServer.Messages.MessageFactoryContext.Parse(Byte[] buffer, Int32 offset, Int32 length) at HttpServer.HttpContext.ParseBuffer(Int32 bytesLeft) at HttpServer.HttpContext.OnReceive(Int32 bytesLeft) at HttpServer.HttpContext.b__a() at System.Threading.ThreadHelper.ThreadStartHelper(ThreadHelper t) at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStartHelper()
It is interop unlocked so I don't get the error.
Last edited by voluptuary; 23rd January 2012 at 01:25 AM.
23rd January 2012, 12:09 AM   |  #6  
dragonide's Avatar
Senior Member
Flag Rome
Thanks Meter: 69
 
268 posts
Join Date:Joined: Jul 2010
More
NOOOO I AM CRYING !!! THIS IS WHAT I WANTED AND I CAN'T EVEN TRY IT !!

Kill me now ;_; sigh sob sigh

EDIT : good work and good luck
Last edited by dragonide; 23rd January 2012 at 12:27 AM.
23rd January 2012, 12:20 AM   |  #7  
OP Recognized Developer
Flag Seattle
Thanks Meter: 2,708
 
5,731 posts
Join Date:Joined: Jan 2011
More
@voluptuary: If you can run the HtcUtilityTest app successfully (from the HtcRoot page) then yes, this will work.

On that thread, I have the following listed as compatible:
HD2 (BttF [XBmod-Yuki] v2 SP1)

That your ROM?
The Following User Says Thank You to GoodDayToDie For This Useful Post: [ View ]
23rd January 2012, 02:03 AM   |  #8  
OP Recognized Developer
Flag Seattle
Thanks Meter: 2,708
 
5,731 posts
Join Date:Joined: Jan 2011
More
@Voluptuary:
To quote from the Known Bugs section:
First attempt to access the filesystem will often fail or take too long; hit refresh a couple times and it should work.

I don't know why it does this. I built in some delays and some automatic retries, and that improved things dramatically - it will *almost* always work on the first freresh attempt (or second click on the Filesystem link) now - but didn't eliminate the problem. I'm not sure what it is; on the test app the switch to SYSTEM token is effectively instant. Maybe it has to do with the number of threads or something?

Anyhow, give it another shot and it should work. I contemplated just putting in a 5-second auto-refresh on the error page...
The Following User Says Thank You to GoodDayToDie For This Useful Post: [ View ]
23rd January 2012, 02:17 AM   |  #9  
voluptuary's Avatar
Senior Member
Flag Mukwonago
Thanks Meter: 745
 
941 posts
Join Date:Joined: Dec 2010
Donate to Me
More
Quote:
Originally Posted by GoodDayToDie

@Voluptuary:
To quote from the Known Bugs section:
First attempt to access the filesystem will often fail or take too long; hit refresh a couple times and it should work.

I don't know why it does this. I built in some delays and some automatic retries, and that improved things dramatically - it will *almost* always work on the first freresh attempt (or second click on the Filesystem link) now - but didn't eliminate the problem. I'm not sure what it is; on the test app the switch to SYSTEM token is effectively instant. Maybe it has to do with the number of threads or something?

Anyhow, give it another shot and it should work. I contemplated just putting in a 5-second auto-refresh on the error page...

Sorry, I should have read your post better. I hate when people do that to me in my threads, I should know better.

Anyways I got it working, kinda. It still gave the error at the top of the page but then it listed the directories anyways, then navigating to Windows always fails, just times out or stays loading forever. This is over Wifi, I guess it could be a latency problem but everything else on my network runs fine.
23rd January 2012, 06:14 AM   |  #10  
Ttblondey's Avatar
Senior Member
Thanks Meter: 105
 
1,678 posts
Join Date:Joined: Jan 2008
I install but it does nothing.It shows serial on usb, softwareloopback interface1,bcmsddhd1

Post Reply Subscribe to Thread

Tags
htcroot, source, webserver, xap
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes