If it weren't for things like this, I'd still be a fan of Dolphin Browser.
Ever since the 'webzine' 'feature' came out (in version 6), this app forwards the URL of:
Every link you click.
Every search you enter.
Every page you load.
To: http://en.mywebzines.com/v3/columns?u=(URLencodedURL)&t=(TIMESTAMP)
This includes:
SSL URLs.
QUERY_STRINGS.
IP addresses on private networks and file:// urls.
In addition, when I mentioned this on http://blog.dolphin-browser.com, the comment awaited moderation for two days before being deleted. I've yet to receive an email.
Proof:
Code:
[[email protected]]~# ngrep -P '!' -lq -R -W single -M '(^GET|^POST|^Host:|^[^ ]ookie:)' "tcp port 80"
interface: eth0 (10.23.1.0/255.255.255.0)
filter: (ip or ip6) and ( tcp port 80 )
match: (^GET|^POST|^Host:|^[^ ]ookie:)
T 10.23.1.220:60126 -> 107.20.41.53:80 [AP] GET /v3/columns?u=http%3A%2F%2F10.23.1.254%2F&t=1319574537635 HTTP/1.1!!Authorization: cd7f573ec9e6e865a28aaab7a1793796!!Accept-Encoding: gzip!!Host: en.mywebzines.com!!Connection: Keep-Alive!!!!
(less spammy proof)
[G] www.google.com:80/search?q=wut
[G] en.mywebzines.com:80/v3/columns?u=http%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Dwut&t=1319574984926
[G] en.mywebzines.com:80/v3/columns?u=https%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Dwhat%2Bis%2Bthis%2Bi%2Bdont%2Beven&t=1319575011872
[G] en.mywebzines.com:80/v3/columns?u=file%3A%2F%2Fsdcard%2Fdata%2Fhome.html&t=1319575109160
Stick this in your /system/etc/hosts to make the Orwellian nightmare stop. This will break webzine 'functionality', and is only possible on rooted phones:
Code:
127.0.0.1 en.mywebzines.com mywebzines.com
Alternatively, here is how to remove this via APKTool:
Code:
* apktool d mobi.mgeek.TunnyBrowser-1.apk
* apply the this patch to smali/mobi/mgeek/TunnyBrowser/WebViewCallbackHandler.smali
#####
--- orig-7.0/smali/mobi/mgeek/TunnyBrowser/WebViewCallbackHandler.smali 2011-10-22 11:41:43.000000000 +0000
+++ mobi.mgeek.TunnyBrowser-7/smali/mobi/mgeek/TunnyBrowser/WebViewCallbackHandler.smali 2011-10-22 11:40:18.000000000 +0000
@@ -2189,7 +2189,7 @@
.line 576
:cond_2
- invoke-direct {p0, p1, v0}, Lmobi/mgeek/TunnyBrowser/WebViewCallbackHandler;->a(Lcom/dolphin/browser/core/IWebView;Ljava/lang/String;)V
+# invoke-direct {p0, p1, v0}, Lmobi/mgeek/TunnyBrowser/WebViewCallbackHandler;->a(Lcom/dolphin/browser/core/IWebView;Ljava/lang/String;)V
goto :goto_0
.end method
#####
I would attach an .apk of dolphin cleansed of it's spyware AIDS, however I'm not sure if the mods would like that.
update:
Modified APKs posted http://forum.xda-developers.com/showpost.php?p=18799432&postcount=61
update: Fiasco appears on http://www.androidpolice.com/2011/1...e-you-visit-to-a-remote-server-in-plain-text/
update: Dolphin writes blog post claiming data is not retained, and that 'feature' is disabled. Latest market version. (7.0.1/id105) appears, still forwards urls
update: Version 7.0.2 (id 106) no longer forwards urls.
While I have no proof dolphin == mywebzines, they conveniently share the same hosting and dns providers (both domains are registered via proxy)
Code:
[[email protected]]~# for i in $(host -t a dolphin-browser.com|awk '{print $NF}');do host $i;done
89.249.19.50.in-addr.arpa domain name pointer ec2-50-19-249-89.compute-1.amazonaws.com.
[[email protected]]~# for i in $(host -t a en.mywebzines.com|awk '{print $NF}');do host $i;done
77.123.17.50.in-addr.arpa domain name pointer ec2-50-17-123-77.compute-1.amazonaws.com.
185.179.17.50.in-addr.arpa domain name pointer ec2-50-17-179-185.compute-1.amazonaws.com.
58.30.19.50.in-addr.arpa domain name pointer ec2-50-19-30-58.compute-1.amazonaws.com.
167.175.19.50.in-addr.arpa domain name pointer ec2-50-19-175-167.compute-1.amazonaws.com.
93.246.101.75.in-addr.arpa domain name pointer ec2-75-101-246-93.compute-1.amazonaws.com.
53.41.20.107.in-addr.arpa domain name pointer ec2-107-20-41-53.compute-1.amazonaws.com.
205.64.72.184.in-addr.arpa domain name pointer ec2-184-72-64-205.compute-1.amazonaws.com.
119.178.72.184.in-addr.arpa domain name pointer ec2-184-72-178-119.compute-1.amazonaws.com.
156.2.73.184.in-addr.arpa domain name pointer ec2-184-73-2-156.compute-1.amazonaws.com.
33.95.17.50.in-addr.arpa domain name pointer ec2-50-17-95-33.compute-1.amazonaws.com.
[[email protected]]~# host -t ns mywebzines.com;host -t ns dolphin-browser.com
mywebzines.com name server ns2.dnsv5.com.
mywebzines.com name server ns1.dnsv5.com.
dolphin-browser.com name server ns1.dnsv4.com.
dolphin-browser.com name server ns2.dnsv4.com.
[[email protected]]~#
Subscribed.
As a Dolphin user, I'm interested to see where this goes.
Maybe you can get the adfree android developer to add en.mywebzines.com to the next hosts file update and problem solved (for adfree users, at least).
lexluthor said:
Subscribed.
As a Dolphin user, I'm interested to see where this goes.
Maybe you can get the adfree android developer to add en.mywebzines.com to the next hosts file update and problem solved (for adfree users, at least).
Click to expand...
Click to collapse
Does't adfree allow custom entries?
I still use dolphin 4 as it has the best UI on android...especially after the modifications I've made. Unfortunately since it's free of admob and mobosquare code I'd probably get in trouble for posting it
Nice work. I'll keep watching this thread.
Uninstallimg today
mills2533 said:
Nice work. I'll keep watching this thread.
Click to expand...
Click to collapse
Makes you wonder why Google is still allowing Dolphin to stay in their catalog.... Uninstalling today!
Hmmmmph!
{
"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"
}
If we add this address to the hosts file, won't the problem be solved?
Thanks for bringing this up anyways!
Good find, uninstalling now. Do you know if this applies to ant other browsers ?
I use Boat Browser, very clean.. none of the concerns and bloatware mentioned.
is there any word on miren browser?
Uninstalling now, and too bad, I like their setup. Guess I will be shopping around for another browser.
Plus interested in seeing where this will go.
Eh, i don't mind. The only good use that Dolphin gave me was that before i exit it it asked if i wanted to clear history, and so i only use it for porn.
My fav browser is the default MIUI browser.
xriderx66 said:
Eh, i don't mind. The only good use that Dolphin gave me was that before i exit it it asked if i wanted to clear history, and so i only use it for porn.
My fav browser is the default MIUI browser.
Click to expand...
Click to collapse
Heh heh I guess I could use it for soke flixs! Any good sites?
I recommend Boat Browser. It's very smooth and clean. I switched to it from dolphin and I've never looked back.
abdielol said:
I recommend Boat Browser. It's very smooth and clean. I switched to it from dolphin and I've never looked back.
Click to expand...
Click to collapse
Omnichron said:
I use Boat Browser, very clean.. none of the concerns and bloatware mentioned.
Click to expand...
Click to collapse
I remember trying boat. It failed my evaluation on two counts: The lower button bar wouldn't go away, and it constantly posted data to http://www.umeng.com/app_logs
Code:
[P] www.umeng.com:80/app_logs
post: T 10.23.1.220:38582 -> 211.151.139.246:80 [AP] H!}![K!1!!!!!'!!!K!7!A!!E!E|!Y!d!.M!!!H-!!N!!!!}!!!!sfV{!!!!!d!!!!!!#!I!v V-!!!(k!!T!k!!!!!2!j!!"G!A!!!5!A>!!!]!!`K!Tk!!!!`!!!!J^!XdT!jC!!!!!D!!&5C!!:W=!!S!!e D!!!!!g!G!!!!!!O!c!<!!!!!I!1!!!X!!!z!!!!!!1!!4#!!!!!!!!!0>!!!C{4%!:o!~!!!!!!tJ!!!!!!]!!!!!!!!!!!!!!!!!!!C!C!!!!!qY!!5[#!M!!K(+*s!!!PI!u!!/J!!q!0!!!-!!!=?!g!!!Q\!!w!!!R!!!!!0!G3-V2!!U!m!5!q![!j!g!!Z9w!!eV!oC!!od!!!
I've not sifted through smali code to see -what- gets posted, but it does so every time you do something.
Damn it. All the other browsers suck.
Sent from my ADR6300 using Tapatalk
try opera I guess its your only choice
Dolphin mini doesn't have webzine right?
Stock ftw.
can you check miren browser?
Related
I'd like to introduce my new app, My Home Page. My Home Page is a unique app and the first of its kind. It allows you to create a custom home page for your mobile browser using your favorite links. The home page you create is then stored on your SD card for quick access so each time you open your browser, the web sites you visit on the regular basis are just one click away. This means no more fumbling through a ton of bookmarks to open your favorite web site. There are a few types of styles and themes from which to choose and more are being worked on every day. The best part is that absolutely zero programming or design knowledge is required. If you can create a bookmark then you can create a custom home page. It’s literally that simple.
App Web Site: http://www.aaandroid.com/index.php/myhomepage/
Developer Contact: contact [at] aaandroid.com
Price: Free/$1 (initial release price, normally $1.99)
Free Version: Beta 1.0.3
Pro Version: 1.0
The free version is ad supported. The pro version will remove ads and add a couple of themes. As My Home Page is developed further, more extra features will be added to the pro version.
My Home Page, available for purchase in the Android Market, SlideME.org and AndAppStore.com.
Features
Customize your browser’s home page with your favorite links
Unlimited folders
Unlimited links
Bookmark import
Google search box
Multiple home page types
Multiple theme types
Multiple font sizes
Support for stock Android browser and Dolphin Browser HD
Backup/restore option
Automatic setting of custom home page for root users
{
"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"
}
So, this basicly generates a html file that sorts and displays what you specify in the app?
I used to make homepages like this myself using html on the computer and storing it on SD card and making it the homepage manually, however I love this idea. An app that will just do it all from the phone just saves the coding/updating on computer AND transfering to the SD card. Pretty slick idea. Checking it out now.
Just nabbed Pro from the Market. I like how this looks. Also a Cachemate fan. Keep up the awesome work.
Error
I get an error when trying to set the home page......I setup a couple folders, added some links, then hit the 'Set Home Page' button, and click OK to confirm. It grants super user permissions, and then an error pops up:
Code:
An error has occurred: Can't create handler inside thread that has not called Looper.prepare(). Please report it to the developer.
Good work and great idea. I suggest to insert the possibile to import an external (from SD) file for import the bookmarks.
If I have right understand, in this moment is possibile to import only from the Android Browser, I would like to export and prepare file from the Mac.
Thank's.
Just an update that I got this to work if I turned off the option to use superuser.
keredini said:
I get an error when trying to set the home page......I setup a couple folders, added some links, then hit the 'Set Home Page' button, and click OK to confirm. It grants super user permissions, and then an error pops up:
Code:
An error has occurred: Can't create handler inside thread that has not called Looper.prepare(). Please report it to the developer.
Click to expand...
Click to collapse
I'm working on this error. If you can post a logcat to pastebin.com it would be a big help. The app is actually working. You will just have to set your home page using the manual method.
This is also why I released it as a beta
illogic6 said:
Just nabbed Pro from the Market. I like how this looks. Also a Cachemate fan. Keep up the awesome work.
Click to expand...
Click to collapse
Thanks a lot for the support.
Tsuneku said:
Good work and great idea. I suggest to insert the possibile to import an external (from SD) file for import the bookmarks.
If I have right understand, in this moment is possibile to import only from the Android Browser, I would like to export and prepare file from the Mac.
Thank's.
Click to expand...
Click to collapse
I am looking into this as an option for a future version.
Android Webserver / Webhost!
(This is taken from my blog article, if you want to see the article itself, click this link)
http://shanehastings.com/Blog/2012/08/host-a-website-from-any-android-device/
-------------------
So, if you're a web designer or HTML, PHP coder etc you'll know that paid hosting isn't cheap, and free hosting is too limited and un-reliable.
However, until recently there was no such thing as "portable hosting", free portable hosting that is (not that I know of any paid portable hosting?)
I've found a way to host any HTML (PHP & MySQL too!) website with images and Java Script support all from your Android device!
Now, this may seem un-reliable, but with a clean install of a ROM / Firmware with just the required app, and a charger plugged in, this is a pretty reliable hosting source.
However, I doubt you're going to see Google running from this any time soon, or any major website for that matter! Another factor of why you'd want to do this is, "simply because I can".
Some other good uses for this project are:
- Household / Private Webserver
- Public / Private Webspace
- Cloud Storage
Click to expand...
Click to collapse
If you're still interested, let's get on with the tutorial!
What you'll need:
- Android Device
- Wireless Internet
- Portforward-able router
- Slight knowledge of how Android Works.
Click to expand...
Click to collapse
If you've got all of those then you're ready to start!
- #1| Download "Boa Webserver" from Google Play.
https://play.google.com/store/apps/details?id=com.applications.boa&hl=en
- #2| Creating the directory
Using a file manager, create a folder and call it whatever you want. For the sake of demonstration, I will call mine "Electronics Website".
{
"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"
}
- #3| Adding Content
Now, we've got our directory but we need some webpages! Simply paste the HTML files into the directory you just created. You can create more directories inside the main directory (/sdcard/YourFolderName/)
- #4| Setting the default directory
Now, this is where we have launch "Boa Webserver".
Once the app is open, simple press "Menu" and then "Settings". Here we have the option to change the port in which Boa will broadcast on, and the directory to use as default.
This is what we want, so click on "Share Directory" and add the directory you created earlier.
- #5| Starting the Webserver / Website!
Starting the webserver / website is very simple. On the main screen of the Boa Webserver application, hit "Start Webserver".
This will start the webserver.
- #6| Viewing the website
When you start the server, Boa will tell you what the LOCAL IP is, this is located in the orange box at the top of your screen.
As you can see, when I goto the IP that is shown in the "Boa Webserver" app, I'm brought to my website!
PC:
Boa Webserver, showing the IP & Log:
- | A Note About Portforwarding
As many of you will know, to make your website available for the whole world to view you will need to portforward the port that Boa runs off of and also the IP in which your Android Device is connected to via your Wi-Fi (192.168.1.2, 192.168.1.3 etc)
You do NOT have to port forward if you are using this for private use (household use, people connected to your Wi-Fi)
- | Need PHP and MySQL?
No problem! Just use KSWeb Server instead! Same procedure, different app!
https://play.google.com/store/apps/details?id=ru.kslabs.ksweb&hl=en
- | Thanks for reading, hope you learned something.
Whoops, forgot to reserve
- RESERVED -
i tried portforwarding a port, and it only works with LAN, no access from outside the house. can you help me fix that?
———————————————————
i didn't mean to mock you or to offend you in any kind of way
Riro Zizo said:
i tried portforwarding a port, and it only works with LAN, no access from outside the house. can you help me fix that?
———————————————————
i didn't mean to mock you or to offend you in any kind of way
Click to expand...
Click to collapse
I'm guessing you know this, but sometimes people forget , it must be turned on.
And which app are you using, Boa or KSWeb?
Sent from my R800i using Tapatalk 2
- Swift - said:
I'm guessing you know this, but sometimes people forget , it must be turned on.
And which app are you using, Boa or KSWeb?
Sent from my R800i using Tapatalk 2
Click to expand...
Click to collapse
boa, i tested it with my cousin to see if he can access the server.
i tried wifi, and 3G, and he got the 404 on both
———————————————————
i didn't mean to mock you or to offend you in any kind of way
cloud servers
Not all paid servers for PHP are that expensive. You have cheap shared servers, though there are some performance issues with them. Some infrastructure based servers, like DigitalOcean are not that expensive considering the features you get. The only problem with such servers is the hassle of managing them. But this can also be avoided if you use some platform or a service that for server management, like Cloudways web hosting for PHP. This platform lets you launch a managed server on DigitaOcean and others.
SnapNotify – Roll Your Own Custom Cloud Notifications
What’s the point?
SnapNotify makes getting cloud-based android notifications as easy as posting to a webserver – and the entire system (including running your own server) is free!
How does it work?
SnapNotify consists of a lightweight server (powered by node.js, which you can run for free on heroku) and an android app that handles receiving notifications. It allows you to push custom notifications to all of your mobile devices, without having to learn Google Cloud Messaging or having to write your own android app.
Sample use:
Code:
$ curl -d "Test Message,SnapNotify works. yay : )" "http://YOURSERVER/message"
Produces a notification on all of your devices that looks like this:
{
"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"
}
Some Simple Use Cases:
1) A simple web scraper / monitor
- Write a script that loads a page, checks content, and notifies you upon changes
- Offloads the heavy lifting to your server
2) Server tasks
- Just tag a POST onto the end of your management scripts to be notified when time-consuming events complete
Basically, the idea is to make it easy to incorporate GCM messages / notifications into hacks that don't need an independent and full-fledged Android App.
Installation / Setup:
I've written a full setup guide with download links and source on my website, which you can find here:
http://sagark.org/snapnotify-roll-your-own-custom-cloud-notifications/
Post here if you have ideas for improvement / find it useful / etc.
Wow awesome!
Just set this up on my Galaxy Nexus by following the Heroku guide. It works great! Thanks a bunch :laugh: :good:
Sorry for the double post, but quick question: If I already have a domain name and stuff, is there a way that I can point it to the heroku server so that I don't have to remember the long subdomain? Thanks
woot_galaxy_nexus said:
Sorry for the double post, but quick question: If I already have a domain name and stuff, is there a way that I can point it to the heroku server so that I don't have to remember the long subdomain? Thanks
Click to expand...
Click to collapse
Yep, Heroku supports this functionality. You can follow the guide at the top of this page and then setup a CNAME in your DNS:
https://devcenter.heroku.com/articles/custom-domains
sagarkar said:
Yep, Heroku supports this functionality. You can follow the guide at the top of this page and then setup a CNAME in your DNS:
https://devcenter.heroku.com/articles/custom-domains
Click to expand...
Click to collapse
Thanks it worked :laugh:
Looks good so far... but you knew this question would come up:
How do we customize notifications (different icons, different sounds, launch a custom intent on click -- maybe encoded in the notification itself, etc.)? Do you have something coming to the APK and/or source code for it?
Thanks!
Awesome post!
psouza4 said:
Looks good so far... but you knew this question would come up:
How do we customize notifications (different icons, different sounds, launch a custom intent on click -- maybe encoded in the notification itself, etc.)? Do you have something coming to the APK and/or source code for it?
Thanks!
Click to expand...
Click to collapse
Yep, this'll probably come as something encoded in the POST + predefined settings (key, values) in the app. Unfortunately, school starts tomorrow so I don't have a ton of time on my hands anymore
I'll try to get it done soon though.
Update Aug 23, 2012:
For those of you running on heroku, snapnotify-server now posts to itself every 20 minutes to prevent idling. Idling wouldn't be a problem by itself, but heroku provides a read-only fs (thus no storing to registration_store), so you'd need to re-register after every recovery from idle. Preventing the idling seems to be the simplest solution at this point. After updating, everything should work as expected. Nothing should change for anyone running on their own server.
Upgrade paths:
1) Running on heroku:
Server: Obtain the new files, change settings in snapserver.settings, git add -u, git commit -m 'update', git push heroku master
App: No need to update
2) Your own server:
Server: Stop Node.js, obtain new files, change settings in snapserver.settings (notably, change the new heroku attribute to false), restart Node.js
App: No need to update
Wound up writing my own app and ditching node.js for something that'll run on a traditional webserver. I'm not that patient and wanted to customize a bunch of stuff. Thanks for the great idea/work so far!
Thanks for this OP, it's awesome Can't wait for more features
Hi,
I want to integrate your code to my app, I don't find the Android source code. Will you release it? Is it opensource?
Thank you for your help.
Followed the heroku guide. Using the curl example I always see this error in my heroku logs:
{ messageId: undefined,
canonicalRegistrationId: undefined,
errorCode: 'MismatchSenderId' }
I've tried creating a registration_store containing the long string (seen when I registered from the Android app), but same error.
Any suggestions to getting this to work?
Edit: Got it working! I had my Sender ID wrong. Thanks for the great guide!
snoopy33 said:
Hi,
I want to integrate your code to my app, I don't find the Android source code. Will you release it? Is it opensource?
Thank you for your help.
Click to expand...
Click to collapse
I'm planning on open-sourcing it once I get time to rip out admob (the revenue from ads vs having this open source, open source wins ) and clean up the code. Unfortunately, school has started so I don't have much free time.
sagarkar said:
I'm planning on open-sourcing it once I get time to rip out admob (the revenue from ads vs having this open source, open source wins ) and clean up the code. Unfortunately, school has started so I don't have much free time.
Click to expand...
Click to collapse
Well once you open source it, the community can do it for you
Sent from my GT-I9300 using Tapatalk 2
I cant seem to get a notification to my device.
I followed the setup on your site and managed to get it up, but when I browse to my heroku address I get this:
Welcome to snapnotify-server! Your server is now running at: YOUR_SERVER_ADDRESS:45961
Click to expand...
Click to collapse
I entered the correct settings in the config file, but when I enter the example, curl -d ..., I get a log in heroku saying Invalid request: 401 and syntaxerror: Unexpected token
I have changed the URL in the snapserver.settings, but I'm sure it is supposed to say the actual address?
soulcrusher said:
I cant seem to get a notification to my device.
I followed the setup on your site and managed to get it up, but when I browse to my heroku address I get this:
I entered the correct settings in the config file, but when I enter the example, curl -d ..., I get a log in heroku saying Invalid request: 401 and syntaxerror: Unexpected token
I have changed the URL in the snapserver.settings, but I'm sure it is supposed to say the actual address?
Click to expand...
Click to collapse
Are you sure you committed and pushed after changing the settings? Also, make sure you don't include http:// in the url in snapserver.settings
sagarkar said:
Are you sure you committed and pushed after changing the settings? Also, make sure you don't include http:// in the url in snapserver.settings
Click to expand...
Click to collapse
Thanks, got it to work!
I needed to use git add -u and git commit -m 'update' to get it to update. I don't have any experience with terminal commands
psouza4 said:
Wound up writing my own app and ditching node.js for something that'll run on a traditional webserver. I'm not that patient and wanted to customize a bunch of stuff. Thanks for the great idea/work so far!
Click to expand...
Click to collapse
Would you be able to share what you have done also as this sounds very interesting.
1. Overview
Lack of a modern browser on the Surface 2 RT is one of the most major drawbacks of using it as a day-to-day machine. Even if you're patient enough to find workarounds for some use-cases, it's neither sustainable nor robust, since IE is straight up not supported by a lot of websites now.
So, I decided to explore the viability of using an AWS EC2 machine as a "browser server" via RDP, for my browsing needs. Here's how that went. If you want to know how I liked it and/or how much it will cost, you can skip to the final two sections before picking up from here!
2. Prerequisites
To follow this tutorial, you'll need:
- An AWS account.
- Some familiarity with AWS services like IAM and EC2.
- AWSPowerShell. The steps to get it can be found here.
- Finally, for some of the one-time setup, you'll need a browser other than IE as well. It could work with IE, I haven't tried it, I just used my phone's browser.
3. Steps
3.1 Get IAM Credentials
In this step, we're going to create IAM credentials that will be used by the Surface 2 RT machine to turn the browser server on/off, to get details like its DNS name etc.
- Log into your AWS account, and go the IAM console.
- Create a new IAM user and give it programmatic access. Also attach to it the AmazonEC2FullAccess permissions policy.
- Once you generate an aws_access_key_id and aws_secret_access_key pair, create a ~\.aws directory on your Surface and put the pair in a file called credentials, like so:
Code:
PS C:\Users\Tony> cat ~\.aws\credentials
[browser]
aws_access_key_id=<your-key-id>
aws_secret_access_key=<your-secret-key>
- If you don't know what "[browser]" means, don't worry about it, it's just a profile name. Profiles are used by AWSPowerShell to keep track of different credentials in the credentials file.
3.2 Create a Browser Server
- In your AWS account, go to the EC2 console, and choose a region from the top-right closest to where you are. I'm picking N. Virginia (us-east-1).
- Once you've done that, click on the "Instances" tab from the menu on the left, and click on the prominent "Launch Instance" button.
- On the new screen, once you see "Step 1: Choose an Amazon Machine Image (AMI)", scroll down and select the "Free tier only" checkbox from the grey bar on the left.
- I'll cover what this means in the "Cost" section.
- Scroll down until you see this AMI, and click "Select".
{
"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"
}
- Keep clicking "Next" until you reach "Step 6: Configure Security Group". At this point, start PowerShell on your Surface machine, and do:
Code:
PS C:\Users\Tony> $(Invoke-RestMethod http://ipinfo.io/json).ip
<your-ip-addr>
- Now, in the "Source" column, in the table above the "Add Rule" button, add <your-ip-addr>/32. Don't change anything else, except maybe the description, and click "Review and Launch".
- On the next screen, click "Launch" after reviewing, and when you get the key-pair popup, select "Create a new key pair" and download the .pem file.
- Click "Launch Instances". Your browser server should be starting!
3.3 Get Credentials to connect to the Browser Server
- In your AWS account's EC2 console, once again go to the "Instances" tab. This time, you should see your instance there in the list.
- Note down its Instance ID, and select the checkbox next to its row. Then, click "Connect" from the top of the list.
- On the new screen, if there is an "RDP client" tab, go to it. If not, you're seeing the older version of the console, which is fine too.
- You should be seeing three things there: the DNS, username, and a "Get Password" button.
Your browser server's DNS - Ignore it for now, we'll need to get it dynamically since each time you stop and restart your server, its DNS can change.
Username - This will most probably be "Administrator". In any case, note this down.
Get Password - Click on this button, and it'll prompt you to upload the .pem file you downloaded in section 3.2's penultimate step. It'll then show you a plaintext password, note that down.
3.4 Connecting to the Browser Server
- We are ready to try to connect to the browser server! Make a PS script called start_browser_server.ps1 on your Surface, like so:
Note: You'll have to replace the region, your browser server's instance-id, its username, and the plaintext password in the script below.
Code:
PS C:\Users\Tony\Desktop> cat .\start_browser_server.ps1
$aws_profile = "browser";
$region = "<your-region>";
$instance_id = "<your-instance-id>";
$aws_args = $("-InstanceId " + $instance_id + " -ProfileName " + $aws_profile + " -Region " + $region);
echo "Starting ...";
iex "Start-EC2Instance $aws_args";
echo "Browser server started. Checking status ...";
$browser_server_status = iex "Get-EC2InstanceStatus $aws_args";
while ($browser_server_status.InstanceState.Name.Value -ne "running") {
$(Get-Date).DateTime;
echo $("Browser server is " + $browser_server_status.InstanceState.Name.Value + ". Checking again in 5s.");
Start-Sleep -s 5;
$browser_server_status = iex "Get-EC2InstanceStatus $aws_args";
}
echo "Browser server running!";
$browser_server = iex "Get-EC2Instance $aws_args";
$browser_server_dns = $(nslookup $browser_server.Instances.PublicIpAddress resolver1.opendns.com | Select-String "Name") -Split ":\s+" | Select -Index 1;
echo $("Browser Server DNS: " + $browser_server_dns + ". Connecting ...");
cmdkey /generic:"$browser_server_dns" /user:"<your-username>" /pass:"<your-plaintext-password>";
mstsc /f /v:$browser_server_dns;
Start-Sleep -s 30;
cmdkey /delete:"$browser_server_dns";
- Now simply run this script. Accept any certificate warnings it throws at you, and voila! You should be able to RDP into the browser server. It should have the Chromium-based MSFT Edge in it already.
- When you're done, you can stop the server using:
Code:
Stop-EC2Instance -InstanceIds <your-instance-id> -ProfileName browser -Region <your-region>
4 - Cost
At the time of writing, AWS' Free Tier for EC2 includes 750 hours worth of runtime per month of a Windows t2.micro. That's the one we selected when we checked "Free tier only". So for the first year, you won't be billed for your browser server even if it's running 24x7.
After that, a Windows t2.micro instance costs $0.0162 / hr. If you're planning to use this for, let's say, 5 hours a day, then it'll only cost you ~$2.43 / month.
5 - Verdict
For me, it's well worth the cost. While not ideal, this has made browsing definitely possible on the Surface 2 RT. I'm mostly using mine as a dev machine, so I don't do a lot of media-heavy browsing anyway. It's mostly checking docs, maybe browsing Reddit, XDA, etc.
I did try playing a YouTube video. It took some minor work to get the sound playing on my Surface 2 RT, but it worked. The video was a bit laggy, but the sound was okay. If you're planning on listening to songs or podcasts, or even just watch not-media-heavy videos like technical tutorials and stuff, this will do the trick for you.
Lastly, I wrote this post on my browser server too!
Yours truly,
Tony
Can you help me?
I have evertthing done without problem but now im stuck at opening the browser.ps1 file
It says Starting... for long time.
Julian2004 said:
Can you help me?
I have evertthing done without problem but now im stuck at opening the browser.ps1 file
It says Starting... for long time.
Click to expand...
Click to collapse
Hey! Sorry for the late reply. I can try to help, please DM me. Fair warning though, it can be somewhat of a pain to debug over text, but we'll give it a shot~
Hello, how can I block this ip address that I have captured with the PCAPdroid app?
{
"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"
}
Methods I've tried:
/system/etc/hosts file
I tried changing my DNS addresses. (Auto, 8.8.8.8, 94.140.14.14)
The apps I was able to uninstall were uninstalled and tested.
I unpacked the boot.img and checked the unencrypted files and couldn't find a trace.
VPN tried. I don't remember their names, I tried at least 5 apps.
I have tried many net traffic capture apps.
No app other than PCAPdroid was able to capture this ip address.
AFWall+ only caught this ip address once, but when I tried to go to the logs, the application crashed.
Then I solved this problem by using the old design in the log section, but it could not catch this ip address again.
AFWall+
Apps blocked one by one.
All apps were blocked.
All apps were allowed.
These operations were also performed at the system level and the kernel level.
Log records opened.
I tried blocking using the iptables in Terminal. Commands i tried:
iptables -I INPUT -s 91.193.5.50 -j REJECT
ip6tables -I INPUT -s 91.193.5.50 -j REJECT
iptables -I INPUT -s 91.193.5.50 -j REJECT --reject-with icmp-host-prohibited
ip6tables -I INPUT -s 91.193.5.50 -j REJECT --reject-with icmp-host-prohibited
iptables -I INPUT -p udp --dport 51820 -j REJECT
iptables -I INPUT -p tcp --dport 51820 -j REJECT
iptables -I INPUT -p udp --dport 55818 -j REJECT
iptables-save
ip6tables-save
According to my checks, the iptables table is reset every 1-2 minutes (without reboot).
That's why the above 2 methods don't seem to work.
A connection is established with this IP address every two or three minutes.
I deleted the /system/bin/iptables-restore file.
It was automatically regenerated after a few minutes.
When I delete it again it is no longer created automatically but iptables still keeps resetting.
Why did I try so hard?
If I can't prevent this ip address or something else after all, I'm getting obsessed and want to find a solution.
I don't know much about the Android system.
Sorry for the long post.
Add the IP to Android's hosts file.
Have you found which app installed on your device is attempting to connect that ip address?
xXx yYy said:
Add the IP to Android's hosts file.
Click to expand...
Click to collapse
I explained that I had already tried this. Thanks for your response.
James_Watson said:
Have you found which app installed on your device is attempting to connect that ip address?
Click to expand...
Click to collapse
I haven't found it yet.
bugattiveyrontr said:
I explained that I had already tried this. Thanks for your response.
Click to expand...
Click to collapse
IMO blocking an IP through hosts file is sufficient: don't waste your time with finding another solutions.
xXx yYy said:
IMO blocking an IP through hosts file is sufficient: don't waste your time with finding another solutions.
Click to expand...
Click to collapse
bugattiveyrontr said:
I explained that I had already tried this. Thanks for your response.
I haven't found it yet.
Click to expand...
Click to collapse
UDP 51820 is default for Wireguard VPN
that maching is a server alright with all the bells and whistles
does the name webcitynews.com rign a bell?
the IP is on 2 blacklists just so you know
dnsbl.dronebl.orgYesAbused VPN Service
dnsbl.spfbl.netYes
DNSBL check page
matrix.spfbl.net
it can be normal to see UDP inside a LAN else the Internet wouldn't work
iusr419 said:
UDP 51820 is default for Wireguard VPN
that maching is a server alright with all the bells and whistles
does the name webcitynews.com rign a bell?
the IP is on 2 blacklists just so you know
dnsbl.dronebl.orgYesAbused VPN Service
dnsbl.spfbl.netYes
DNSBL check page
matrix.spfbl.net
it can be normal to see UDP inside a LAN else the Internet wouldn't work
Click to expand...
Click to collapse
Thank you for your explanation.
I did not use Wireguard VPN.
"webcitynews.com" I've never come across this address.
I solved the problem. But I'm not sure which one exactly fixed this problem as I've done a lot of things. I will write the steps I did below.
I checked iptables and ip6tables and there are no records that I added. So the solution is not here.
I updated some system apps.
Samsung Smart Manager
Samsung Calculator
Samsung Experience
In my current hosts file
127.0.0.1 91.193.5.50 (I previously added)
::1 91.193.5.50 (I previously added)
:: 91.193.5.50 (I added this later)
I turned off the services that I do not use with the app called "Blocker".
app link
The output of the ifw rules of the services I have disabled. Rules can be applied through the application.
Warning: I am sharing this because it is one of my solutions, you do not have to download it, and there may be services that you use that I do not use, and these services can be turned off with these rules. ifw.zip
I sincerely thank everyone for your help.
Awesome the problem is solved! Thanks for sharing the solution.