Search code examples
javaandroidsdkoverwriteshutdown

Creating a custom android shutdown system


So recently my phone was stolen and besides all the trouble I had with the lost files I was pretty angry about the fact that it didn't came to my mind to create an app for android that prevents easy stealing or to be precise that will act as a Trojan horse inside of the thief's pocket. So what i thought about is an application that kicks in whenever you're holding your standby button or whatever you usually do to shutdown your phone. This application then looks like the real shutdown menu and asks you to shutdown with a pin or without one and whenever you shutdown without the right pin the phone will actually fake shut down in a way where it is still transmitting GPS and connecting to the next transmission tower so it is easily locatable (by fake shutdown I mean a black screen and silent mode until you are repeating the same method you used to shut your phone down). So is there any way of creating an app that has a higher priority than the android shutdown system so a custom menu pops up whenever you're trying to shutdown your phone?


Solution

  • Your idea isn't entirely impossible for Android.

    There is no way for an app to have a higher priority than the Android Shutdown menu. However, that doesn't mean there's no hope.

    If you remember popular Alarm apps, they typically have a feature that prevent you from turning off your phone when the alarm rings. This is usually done by detecting that a Long Press of the Power Button is pressed and then dismissing the Power Off Menu.

    You can look at this answer for how to do this: https://stackoverflow.com/a/53679477

    However, this is just so you can dismiss Android's Power Off Menu so you can show your own Power-Off Menu.

    Afterwards, with your idea of displaying a Black Screen and Silent Mode... there's actually four three problems.

    • Screen Backlight for non AMOLED screens

    • Status and Navigation Bars

    • Can't block a Forced Shutdown

    Personally, during the early days of Android and my early years of Android development, I released an app with a similar idea (have the phone give off the illusion of being turned off, so there's a higher possibility of phone remaining on if stolen), but due to those four problematic areas, the app has been retired.

    So I speak with experience in saying that:

    • A black screen doesn't play nicely with screens that require a backlight. Even at lowest brightness settings, a completely black screen will still easily be seen as on.

    • Android doesn't have a way permanently hide the Navigation and Status bars. The best you'll get is Immersive Mode, but this mode will cause the bars to temporarily appear if you touch the screen. Even if you use a Full-Screen Activity, swiping down or swiping up will still show these bars. I believe your only option for hiding both of these bars is Root.

    • There's absolutely no way to block someone from doing a force shutdown. This completely bypasses the Power Off Menu and it's simply unblockable. So while your app might block some thieves, it might not block the more paranoid ones.

    Hopefully, my answer is enough to nudge you in the right direction for your app.