Wednesday, May 25, 2011

Droid Explorer 1.0 on Non-Rooted Devices

I hit somewhat of a milestone today. I got the Droid Explorer 1.0 branch to build. Not only that, about 90% of the communication from Droid Explorer and the device is now done through MadBee. That’s the Managed Android Debug Bridge, if you were not aware. MadBee is basically an enhanced port of the Android Debug Bridge library that ships as part of the Android SDK. There are other features that I have added to it, like the ability to check if the device has BusyBox, or if the device can execute SU commands.

MadBee is available from NuGet, but is still very young. I occasionally notice some issues with how things work while using it as the “power” behind Droid Explorer, and go in and make some modifications. But I always update on NuGet, but that means I may update there often.

What, exactly does MadBee mean for Droid Explorer? Well, I am glad I asked. MadBee is the link between the device and Droid Explorer. Since it is based off the original Android Debug Bridge, it was initially meant for non-rooted devices. It has always been my intentions, and goal, to have Droid Explorer working on ALL devices, not just rooted ones. MadBee helps make that happen. Now, MadBee does not circumvent any security that is already in place on your device, so if you don’t have a rooted device, you will not be able to perform any tasks that would require root, like remount /system with read-write.

There is still a lot of work to be done before this build of Droid Explorer will be ready for the public, but here is a teaser of Droid Explorer connected to a non-rooted Galaxy Tab.

de-on-unrooted-gtab

Wednesday, May 18, 2011

The spirit of Android is piracy?

JackI have voiced my opinions a couple of times about the use of Ad Blocking tools on android devices and how they are a form of Piracy. I am a software developer by trade and I write software to make money. Any software that I release is written in my “spare time”, which is limited, having 3 children between 12 and 17. I do not write software strictly for fun, but I do usually enjoy doing it.

Initially, when the Android Market launched, there was no way for developers to sell their applications. They had to be free. Over time, Google implemented solutions to allow developers to charge for their applications. A lot of developers still offer a free version, that is usually limited in functionality or ad-supported. The key word that is “Ad-Supported”. This means the developer is putting the application on the Android Market at zero monetary cost to the user, but still is looking to generate some revenue from the application via advertising. Users were “spoiled” by the early days of the Android Market. When developers started charging for applications twitter and other social media outputs were populated with complaints about having to pay $0.99USD for an application.

Let’s take a little look at the most common price point of an application, $0.99USD. That is cheaper then a bottle of soda pop, cup of coffee, a McDonalds McChicken and even a candy bar. The minimum wage, in the state of Illinois, is $8.25 per hour, so a person working a place like McDonalds, makes at least that to make your McChicken. Now, myself, when I freelance for a client, I charge $90.00USD per hour, minimum. So if I sell my application for $0.99USD, and it takes me 20 hours of development, testing, etc, to build and release the application (which it could really take a lot more, depending on the application), I would have to sell ~2609 licenses of the software title before I actually started to make a “profit” from the application. Why ~2609, when 90 * 20 = 1800 and 1800 / 0.99 = ~1818? Well, of that $0.99USD, Google takes $0.30USD off the top, so I am only making $0.69USD for each license sold. If the application is free, the ROI from advertising, usually, is a lot lower, unless you have a “hit” application that sees millions of downloads. But it does still generate some revenue for the developer.

Just the other day, I received an email from a user of one of my applications that I check for software on the Android device that is know to “block ads”. He voiced how he was upset that I would actually stop my application from being usable if there is “ad blocking” software installed on the device.

I just wanted to email you to let you know how much I loved the application. I tried it out after freezing [ad blocking app] just so I could give it a try. I REALLY wanted to buy this app but I really couldn't justify buying it from a developer who tells me what I can and cant run on my device. This goes against the whole spirit of android. I'm sorry that I will not be able to purchase your product at this time and will have to go with other solution even if it is less advanced. If you ever decide to change your app so people can try it freely without having to uninstall other programs I would be more than glad to buy it.

One of the key statements in that email that caught my attention is “This goes against the whole spirit of android.”. Is the spirit of Android to steal or does this person mean because Android is open source that he should be able to block my ads? Let me point out, just because something is open source, doesn’t mean it is free, or that everything associated with it is free. Just because Android is open source, do you think that Google just lets the phone manufactures and the mobile carriers have the “with Google” apps like the Android Market, Gmail, YouTube, etc. for Free? I can tell you, with 100% certainty, they do not. Those applications, and the “with Google” are licensed to the manufacturers/carriers, for a fee. Another example is MySql, an open source database engine, they have “Enterprise” versions that range from $2,000.00USD to $10,000.00USD, per server, per year. So just because something is open source doesn’t mean that it is Free. Also, just because Android is open source, does not mean the software that developers write for the platform are also open source or Free.

Tuesday, May 17, 2011

Droid Explorer 0.8.8.2 Released

sgstabshotdeviceselectiondialogI released an update to Droid Explorer today that addresses some needed issues.

  • New Device selection dialog
  • all assemblies are now signed again
  • fixed the "runner" so apk's can now be installed from the machine (along with the other plugins)
  • when upgrading, and using an existing SDK, the value will now be pulled from the registry, if it exists.
  • fixed bug in uninstall that would remove the sdk, even if you used an existing sdk
  • removed anda.pk plugin since the site is dead.
  • added a link in the bootstrapper (installer) to download the sdk.
  • refactored some strings to the external resources files in the bootstrapper (installer)
  • changed the reboot commands to use the adb commands, not the shell commands
  • fixed rm command to now use busybox as it was passing args that are not supported on the "stock" rm command.
  • added the sph-p100 (Sprint Samsung Galaxy Tab) device icon

 

Download Droid Explorer v0.8.8.2

CyanogenMod 7 on Galaxy S Vibrant

CM7_256_072The nightly builds for CyanogenMod 7 for Samsung Galaxy S line of devices is now available via Rom Manager. It is now a “Single Update” install, 2 if you want to add gapps.

Here are some of the issues I had when doing the install, and how I worked around them.

  • Follow the instructions Here and Read the FAQ here. This is just a “helper” for some of the issues I had, not a replacement or step by step.
  • You will need to be able to get in to the Recovery via the 3 Button Method. If you cannot, then you will have problems.
  • Before you start with ROM Manager, you need to download the gapps package and place it on the internal sdcard. You cannot use ROM Manager to install the gapps, it will not work.
  • The easy part is installing CM7 from ROM Manager. Open up Rom Manager and download the CM ROM
  • ROM Manager will now download the ROM. Once completed, it will prompt you to wipe data and cache and backup. You should do them ALL. Then Click OK.
  • The device will reboot and it will install the CM package. Be patient, it can take a while.
  • Once the device is rebooted you will want to turn the device off. DO NOT USE ROM Manager, or any other shiny thing, to get in to the recovery, it will not work correctly.
  • Power the device back on using the 3 Button Recovery method. Hold down Vol+ & Vol- & Power. Once you see the “Vibrant” Screen release ONLY THE POWER button.
  • Now that you are in Clockwork, select install package from sdcard and select the gapps package you downloaded before you started.
  • Reboot your device and enjoy.
  • Update: If your PC does not recognize your device any more, you need to install the Google USB Drivers.

I forgot how much I missed using AOSP + the things that the CM team adds to the party. Being stuck using TouchWiz for so long, it is like getting a new phone again. Even if you run ROMs like Trigger or Bionix, you are still stuck with the TouchWiz additions.

Thanks TeamHackSung, my Galaxy S is happy now.

Wednesday, May 4, 2011

I always feel like, somebody’s watching me…

1984-bookThere has been a lot of news lately about Android devices logging, and reporting GPS information back to Google. Not to mention the same thing going on with the iPhone. Two women from Michigan have even filed a Class Action suite against Google. I think this is ridiculous! Of course they are reporting your location back to Google/Apple. How do you think they can give you maps with your current location? Or even Turn-By-Turn directions… How about when you “check in” on Facebook, how do you think they know your location? You give it to them with the GPS coordinates.

Ok, you may argue that “you are giving them permission” when you get directions, or check in to Facebook, but you already gave Google permission also when you set up your phone and the little checkbox that said “provide Google with location data” was checked, or when you downloaded an application and it said one of the “permissions” that is uses is “GPS Location”.

Let me talk about this GPS data that everyone is talking about. Google, and Apple for that matter, couldn’t care less about where you are. What they actually care about is that you will continue to use their products, so they use your data to make the experience better, for you. That location data that you are so worried about is telling Google where WiFi access points are and cell towers are in regards to your location. This information is used so when you fire up Google Maps, or Google Navigation, they can quickly pinpoint your location, even if you don’t yet have a GPS lock. If they did not have this data, the time it would take for you to get your location and the information you want to know, like where you are going, would take way longer.

If you don’t want your device to report GPS info, there is a quick and easy “opt out”, don’t turn on your GPS, and also turn off “use wifi to find your location”. Also, when you set up your device, uncheck the option to send the data to Google. If you want someone to “worry” about, worry about companies like AT&T and Verizon, for example, that know, basically, where you are at all times of the day, even if you turn off your GPS. They know exactly what cell towers you are in range of at any given time of day. Where is the case against them asking how they use this data and if they store it.

I like the benefits that I get out of having the data sent. I use Google Maps, and Navigation all the time, if you don’t use it, or don’t want your data “sent” then don’t send it, but don’t screw things up for the people that do use it, and don’t think it’s 1984.

Droid Explorer 1.0 on Non-Rooted Devices

I hit somewhat of a milestone today. I got the Droid Explorer 1.0 branch to build. Not only that, about 90% of the communication from Droid Explorer and the device is now done through MadBee. That’s the Managed Android Debug Bridge, if you were not aware. MadBee is basically an enhanced port of the Android Debug Bridge library that ships as part of the Android SDK. There are other features that I have added to it, like the ability to check if the device has BusyBox, or if the device can execute SU commands.

MadBee is available from NuGet, but is still very young. I occasionally notice some issues with how things work while using it as the “power” behind Droid Explorer, and go in and make some modifications. But I always update on NuGet, but that means I may update there often.

What, exactly does MadBee mean for Droid Explorer? Well, I am glad I asked. MadBee is the link between the device and Droid Explorer. Since it is based off the original Android Debug Bridge, it was initially meant for non-rooted devices. It has always been my intentions, and goal, to have Droid Explorer working on ALL devices, not just rooted ones. MadBee helps make that happen. Now, MadBee does not circumvent any security that is already in place on your device, so if you don’t have a rooted device, you will not be able to perform any tasks that would require root, like remount /system with read-write.

There is still a lot of work to be done before this build of Droid Explorer will be ready for the public, but here is a teaser of Droid Explorer connected to a non-rooted Galaxy Tab.

de-on-unrooted-gtab

The spirit of Android is piracy?

JackI have voiced my opinions a couple of times about the use of Ad Blocking tools on android devices and how they are a form of Piracy. I am a software developer by trade and I write software to make money. Any software that I release is written in my “spare time”, which is limited, having 3 children between 12 and 17. I do not write software strictly for fun, but I do usually enjoy doing it.

Initially, when the Android Market launched, there was no way for developers to sell their applications. They had to be free. Over time, Google implemented solutions to allow developers to charge for their applications. A lot of developers still offer a free version, that is usually limited in functionality or ad-supported. The key word that is “Ad-Supported”. This means the developer is putting the application on the Android Market at zero monetary cost to the user, but still is looking to generate some revenue from the application via advertising. Users were “spoiled” by the early days of the Android Market. When developers started charging for applications twitter and other social media outputs were populated with complaints about having to pay $0.99USD for an application.

Let’s take a little look at the most common price point of an application, $0.99USD. That is cheaper then a bottle of soda pop, cup of coffee, a McDonalds McChicken and even a candy bar. The minimum wage, in the state of Illinois, is $8.25 per hour, so a person working a place like McDonalds, makes at least that to make your McChicken. Now, myself, when I freelance for a client, I charge $90.00USD per hour, minimum. So if I sell my application for $0.99USD, and it takes me 20 hours of development, testing, etc, to build and release the application (which it could really take a lot more, depending on the application), I would have to sell ~2609 licenses of the software title before I actually started to make a “profit” from the application. Why ~2609, when 90 * 20 = 1800 and 1800 / 0.99 = ~1818? Well, of that $0.99USD, Google takes $0.30USD off the top, so I am only making $0.69USD for each license sold. If the application is free, the ROI from advertising, usually, is a lot lower, unless you have a “hit” application that sees millions of downloads. But it does still generate some revenue for the developer.

Just the other day, I received an email from a user of one of my applications that I check for software on the Android device that is know to “block ads”. He voiced how he was upset that I would actually stop my application from being usable if there is “ad blocking” software installed on the device.

I just wanted to email you to let you know how much I loved the application. I tried it out after freezing [ad blocking app] just so I could give it a try. I REALLY wanted to buy this app but I really couldn't justify buying it from a developer who tells me what I can and cant run on my device. This goes against the whole spirit of android. I'm sorry that I will not be able to purchase your product at this time and will have to go with other solution even if it is less advanced. If you ever decide to change your app so people can try it freely without having to uninstall other programs I would be more than glad to buy it.

One of the key statements in that email that caught my attention is “This goes against the whole spirit of android.”. Is the spirit of Android to steal or does this person mean because Android is open source that he should be able to block my ads? Let me point out, just because something is open source, doesn’t mean it is free, or that everything associated with it is free. Just because Android is open source, do you think that Google just lets the phone manufactures and the mobile carriers have the “with Google” apps like the Android Market, Gmail, YouTube, etc. for Free? I can tell you, with 100% certainty, they do not. Those applications, and the “with Google” are licensed to the manufacturers/carriers, for a fee. Another example is MySql, an open source database engine, they have “Enterprise” versions that range from $2,000.00USD to $10,000.00USD, per server, per year. So just because something is open source doesn’t mean that it is Free. Also, just because Android is open source, does not mean the software that developers write for the platform are also open source or Free.

Droid Explorer 0.8.8.2 Released

sgstabshotdeviceselectiondialogI released an update to Droid Explorer today that addresses some needed issues.

  • New Device selection dialog
  • all assemblies are now signed again
  • fixed the "runner" so apk's can now be installed from the machine (along with the other plugins)
  • when upgrading, and using an existing SDK, the value will now be pulled from the registry, if it exists.
  • fixed bug in uninstall that would remove the sdk, even if you used an existing sdk
  • removed anda.pk plugin since the site is dead.
  • added a link in the bootstrapper (installer) to download the sdk.
  • refactored some strings to the external resources files in the bootstrapper (installer)
  • changed the reboot commands to use the adb commands, not the shell commands
  • fixed rm command to now use busybox as it was passing args that are not supported on the "stock" rm command.
  • added the sph-p100 (Sprint Samsung Galaxy Tab) device icon

 

Download Droid Explorer v0.8.8.2

CyanogenMod 7 on Galaxy S Vibrant

CM7_256_072The nightly builds for CyanogenMod 7 for Samsung Galaxy S line of devices is now available via Rom Manager. It is now a “Single Update” install, 2 if you want to add gapps.

Here are some of the issues I had when doing the install, and how I worked around them.

  • Follow the instructions Here and Read the FAQ here. This is just a “helper” for some of the issues I had, not a replacement or step by step.
  • You will need to be able to get in to the Recovery via the 3 Button Method. If you cannot, then you will have problems.
  • Before you start with ROM Manager, you need to download the gapps package and place it on the internal sdcard. You cannot use ROM Manager to install the gapps, it will not work.
  • The easy part is installing CM7 from ROM Manager. Open up Rom Manager and download the CM ROM
  • ROM Manager will now download the ROM. Once completed, it will prompt you to wipe data and cache and backup. You should do them ALL. Then Click OK.
  • The device will reboot and it will install the CM package. Be patient, it can take a while.
  • Once the device is rebooted you will want to turn the device off. DO NOT USE ROM Manager, or any other shiny thing, to get in to the recovery, it will not work correctly.
  • Power the device back on using the 3 Button Recovery method. Hold down Vol+ & Vol- & Power. Once you see the “Vibrant” Screen release ONLY THE POWER button.
  • Now that you are in Clockwork, select install package from sdcard and select the gapps package you downloaded before you started.
  • Reboot your device and enjoy.
  • Update: If your PC does not recognize your device any more, you need to install the Google USB Drivers.

I forgot how much I missed using AOSP + the things that the CM team adds to the party. Being stuck using TouchWiz for so long, it is like getting a new phone again. Even if you run ROMs like Trigger or Bionix, you are still stuck with the TouchWiz additions.

Thanks TeamHackSung, my Galaxy S is happy now.

I always feel like, somebody’s watching me…

1984-bookThere has been a lot of news lately about Android devices logging, and reporting GPS information back to Google. Not to mention the same thing going on with the iPhone. Two women from Michigan have even filed a Class Action suite against Google. I think this is ridiculous! Of course they are reporting your location back to Google/Apple. How do you think they can give you maps with your current location? Or even Turn-By-Turn directions… How about when you “check in” on Facebook, how do you think they know your location? You give it to them with the GPS coordinates.

Ok, you may argue that “you are giving them permission” when you get directions, or check in to Facebook, but you already gave Google permission also when you set up your phone and the little checkbox that said “provide Google with location data” was checked, or when you downloaded an application and it said one of the “permissions” that is uses is “GPS Location”.

Let me talk about this GPS data that everyone is talking about. Google, and Apple for that matter, couldn’t care less about where you are. What they actually care about is that you will continue to use their products, so they use your data to make the experience better, for you. That location data that you are so worried about is telling Google where WiFi access points are and cell towers are in regards to your location. This information is used so when you fire up Google Maps, or Google Navigation, they can quickly pinpoint your location, even if you don’t yet have a GPS lock. If they did not have this data, the time it would take for you to get your location and the information you want to know, like where you are going, would take way longer.

If you don’t want your device to report GPS info, there is a quick and easy “opt out”, don’t turn on your GPS, and also turn off “use wifi to find your location”. Also, when you set up your device, uncheck the option to send the data to Google. If you want someone to “worry” about, worry about companies like AT&T and Verizon, for example, that know, basically, where you are at all times of the day, even if you turn off your GPS. They know exactly what cell towers you are in range of at any given time of day. Where is the case against them asking how they use this data and if they store it.

I like the benefits that I get out of having the data sent. I use Google Maps, and Navigation all the time, if you don’t use it, or don’t want your data “sent” then don’t send it, but don’t screw things up for the people that do use it, and don’t think it’s 1984.