An Explanation of My Recent "Self Destruct" Application

An Explanation of My Recent “Self Destruct” Application

Self Destruct” is simply an application I made for fun, as a proof of concept. This application demonstrates a way to create an application that is able to “destroy” itself, preventing it from running until it is uninstalled, and then reinstalled later. I’d like to personally thank HandlerExploit for giving me a hint about how to do this (he mentioned that he found the trick in the provisioning code). HandlerExploit uses a similar technique in his application, “iBrick Proof of Concept”. As soon as the user opens the application, it removes it’s main class from the Dalvik package manager, preventing itself from being able to run again. The only way to run the application again after opening it is to uninstall the application, and reinstall it. This application serves no real purpose other than to demonstrate an interesting trick, and it is not malicious in any way. Please note that after running the application, it’s icon will remain in the launcher, although you won’t be able to open it. Uninstalling the application will remove the icon. I’d release the entire source code for this application, but really, the only part that actually matters is the part that removes the class from Dalvik and prevents the application from running again. Interestingly, this application requires absolutely no permissions, at all in order to do this. In case you are interested in how I did this, here is the source code for the main class in the project:

package com.dylantaylor.selfdestruct;
import android.app.Activity;
import android.content.ComponentName;
import android.content.pm.PackageManager;
import android.os.Bundle;

public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        PackageManager pm = getPackageManager(); ComponentName name = new ComponentName(this, Main.class);
        pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
    }
}

Yes, I realize that this application serves no real purpose, but it’s just something interesting that I made for fun. If you don’t want it, don’t download it. Otherwise, have fun! 🙂

P.S. Do whatever you want with that source code, it’s virtually worthless to me anyways.

Sound Added to "Simple Dice"!

Sound Added to “Simple Dice”!

I added sound to “Simple Dice” when you roll the dice. The sound played is a modified, low quality version of Mike Koenig’s “Shake and Roll Dice Sound”. The file takes up less than 10 additional kilobytes, and the sound is only played if the “Media volume” is not muted, to avoid disturbing others.  I also plan on adding the sound to “Dice Betting” when it is released. The sound truly makes the application more realistic feeling and more interesting. Expect to see the changes on GitHub and the Android market shortly!

UPDATE: The sounds are now in the git repository, and the new version is up on the market!

Introducing “Simple Dice”

Introducing “Simple Dice”

This isn’t quite the dice game that I’m currently working on, but I liked the animation I made so much in the other game (“Dice Betting”) that I just had to release an Android application with just the dice images and the animation. Simply tap anywhere on the screen in order to roll the dice. Dice rolls are random. Simple Dice will definitely be released under version 3 of the GNU General Public license, and the source will be available online as soon as I get a chance to upload it. I will update this post with the link to the source code once it’s online. Until then, check it out in the Android market! It’s 100% free! Also, the entire application takes up only a measly 24KB! 😉

UPDATE: The source code is now available on GitHub! Check it out! 🙂

Working on a New Simple Dice Game

Working on a New Simple Dice Game

I’ve been working on creating a basic dice game for Android with animation, rules, betting, and more! The game is currently a work in progress, but I’m really excited to release it! The animation works wonderfully, and the interface, although very unfinished is already starting to look polished, especially in the game’s menus. For now, the game is simply called “Dice Betting”, and yes, I realize how lame and generic that sounds, but I might end up changing the name of the game before it is released. Similar to “Find the Mouse”, I’ll probably end up open sourcing this game (under the GNU General Public License, of course), although it isn’t even remotely close to being released yet. The game will have a built-in statistics tracking system, and the rolling of the dice will be completely animated. Right now, the animation I have done looks really cool, and I’m incredibly anxious to publicly release this. Check back soon! 🙂

Find The Mouse Improvements Complete!

Find The Mouse Improvements Complete!

I finished making the changes to “Find The Mouse”, and the new code is up on github. I’m already in the process of signing and uploading the new version to the Android market. You should be able to download it very soon! The new version automatically advances to the next level after you successfully find the mouse, it keeps track of your winning streak and current score, and the user interface feels much nicer. Enjoy! 🙂

UPDATE: The new version is now up on the market! Check it out!

Pssst… Planned Improvements for "Find The Mouse"

Pssst… Planned Improvements for “Find The Mouse”

I realize that “Find The Mouse” isn’t that much fun yet. I’m working on implementing a feature to keep track of scoring. For each round successfully completed, you will get one point plus one point for every click left. The game will also keep track of how many games were won in a row. Keep in mind that this game was never originally designed to be very fun, it was meant to be an example to teach (very) basic Android programming. These upcoming features are simply the result me giving into peer pressure and trying to make the game more enjoyable. Keep in mind that this is an open source project and anyone is welcome to contribute code if they would like to see it in the game. The feature is done as far as coding, I just have to work on the new layout.

Introducing “Find The Mouse”, a Basic Open Source Android Game!

Introducing “Find The Mouse”, a Basic Open Source Android Game!
So, a friend of mine asked me to show them how to make a basic Android game, which resulted in me coding up something simple for him. “Find The Mouse” is the result of this coding. This entire game was started and finished in around 20 minutes today, and the counter was added in later. All of the artwork in the game is public domain artwork found on sites like clker.com. The card background was heavily modified in order to reduce file size and make it look nicer on mobile screens. The object of the game is to find the mouse hidden behind one of five cards. You have three chances to find the mouse before you lose. The game is, as I stated earlier, incredibly simple, yet somewhat useful to someone who is learning to code for the Android operating system. The entire source code as well as all resources are available on GitHub, and I will probably end up putting this on the Android market soon, so that all of you without the Android SDK or the time to compile source code can play with this. This game will definitely be 100% free, and I have no intention of ever charging for it. The version on the market will likely have an AdMob advertisement in it, however, the version on github will not if you have the time to compile it and run it yourself. I am releasing this project under version 3 of the GNU General Public License, and all original artwork created by me in relation to this project is released to the public domain. You may copy, edit, modify and redistibute this project as long as you follow the terms of version 3 of the GPL. Enjoy! The project’s source code can be found on this GitHub repository. 😉

P.S. Hitting the Search button or the Menu button resets the game.

I’m Now Accepting Donations For Clippy

I’m Now Accepting Donations For Clippy

I just finished setting up a Pledgie campaign in order to raise money to support the development of Clippy, my clipboard manager for Android. If you use Clippy, and find useful, please consider making a small donation. Clippy is currently a 100% free application, no strings attached, and in order to keep it that way, I need a way to make a little bit of money. Clippy is currently a one-man project, and I do all the work I do on it during my spare time. I have invested many hours into developing Clippy, and I’m hoping that some of that work will start to pay off soon.  The more money that is donated to the Clippy project, the more time I’m able to invest in developing and supporting Clippy. Also, as an added incentive to encourage donations, if I receive over $20,000 $10,000 in donations, I will release the entire source code for Clippy under version 3 of the GNU General Public License, and all of the resources, including the original vector graphic files, under the Creative Commons Attribution 3.0 Unported License.  In addition to that, I’ll set up a repository on github to encourage open development, and allow others to contribute code. I got the inspiration for this idea from an independent gaming package called the “Humble Indie Bundle“, where you could pay what you want for a package of 5 games. Basically, they offered to make their games open source if they could raise $1 Million. Needless to say, they succeeded. So, in the spirit of the Humble Indie Bundle, I’m offering to make my application open source if I can raise $10,000, which is practically pocket change compared to the goal they set, yet still a very substantial amount to me. If you don’t feel like signing up for Pledgie, you can make a donation using traditional PayPal, but I’d have to manually enter your donation into Pledgie for it to count towards the $10,000 goal.

Click here to lend your support to: Clippy Clipboard Manager and make a donation at www.pledgie.com !

Thoughts on Catch The Ball

Thoughts on Catch The Ball

I haven’t written very much about Catch The Ball lately, so I thought I’d take some time to do so. The project is not dead, and I have several plans for what I’m going to change when I resume working on it. I want to make the game more fun and exciting, so here is a list of several improvements that I have been planning:

  • When the user successfully catches the ball, I want to display an animated image of the ball exploding, or something more interesting.
  • I plan on getting the difficulty selection to work properly
  • I’m going to add an options menu, which will allow you to toggle the “guides” on and  off
  • I will also have a set difficulty preference, which will allow the user to change the difficulty. This will allow me to clean up the main menu a bit, since I won’t have to have the difficulty selection there.
  • I will allow the user to choose whether the game will be rendered horizontally or vertically. Based on this decision, I will display the game’s status on the “top” of the screen.
  • I plan on adding sound effects. Since I don’t really have any means of producing these myself, I will probably incorporate public domain sounds. In particular, I want to have sound effects when the ball is successfully caught, and when the ball bounces off of the walls.
  • I will finally get the game’s timer working, and have the current level and time remaining displayed on the screen. I will also make adjustments to the time given to the player, in order to make it possible to beat the game on all difficulty levels, and provide a pleasant experience.

I’m currently busy working on Clippy, but look forward to seeing an update to Catch The Ball in the future. After all, it is an open source project, so even if I completely abandon it, someone else can take over the work.

Catch The Ball Now Compiles Again!

Catch The Ball Now Compiles Again!

If you checked out the source code for “Catch The Ball” lately, you might have noticed that the source code wasn’t compiling. The reason for this is because even though I tested the code to compile and run before committing it to the repository, I added comments to the XML files, stating that the file is a part of “Catch The Ball”, and that it’s licensed under version 3 of the GNU General Public License. What I didn’t realize, however, is that the line “<xml version=”1.0″ encoding=”UTF-8″?>” needs to come first in the XML file, before any comments, or else the compiler will produce error messages. I pushed the code to the repository without realizing this, and then started working on fixing issues with Clippy, so I didn’t find out about the problem until I tried to compile the Catch The Ball code again, at which point, I became extremely confused, as I knew I tested the code before committing it to git, and the only changes I made involved adding internal documentation to the code, which shouldn’t affect the application at all. Anyways, it’s fixed now, and I just wanted to let you know.