Debug an system application - android

I'm trying to develop an app that requires System App permission (for example, I want to reboot the device and install new apks).
Now, I write the code and I generate a apk which I place intro /system/priv-app.
Then I reboot the device and I run the app.
The problem is that I want to debug my app, because write code without debugging is so tedious.
Can be debugged a system app?
And how?
The device is rooted, so I can do anything with it, and, for the release version, it will be a full image of AOSP with the apk contained in /sytem/priv-app
Regards.

Related

Debugging a third party app on an android smartphone

Since a few days an installed app on my smartphone is crashing. Now I am wondering if there is a way to debug an app on my smartphone not created by me. I just have the apk file, not the actual code so I guess I'm not able to run it from android studio on my device. (The debuggable flag is not set so it is false if that is important). I know I can install the apk on emulator devices but the app is running on them without problems so I need to now the problem with my smartphone in particular.
Or maybe it's possible to get at least a log file with more information to the crash from my smartphone? I already found some apps that claimed they could do but that didn't work. Does anybody have a device to my situation?

Another way to debug an android app

I want to debug my android application, I have Eclipse Installed fully setup for android developement.
The problem is,
1) I can't run android emulator(Hardware Concerns).
2) I can't attach phone to my computer(Driver Concerns).
Now,
Is there a way to get debug functionality by putting directly the apk into the phone storage and installing it from there.
I wanted get the logcat of the application that I'll be running.
Basically I'm quite naive in android, I'm not quite sure of the terms I said but, What I want is a way to test my app on my phone without the role of my PC.
If you have root you can use Wifi ADB
Also you can remove drivers for this device and install other driver from your device manufacturer.
If you can run standard emulator you can use Genymotion.

Testing as android.uid.system user

I am developing an android app that will run under the android.uid.system user (the tablet manufacturer is signing the app for me so it will be able to run under this user id).
The problem I have is that it takes about 2 to 3 weeks each time I want the app signing. As I make code changes I want to be able to test them under the system user but it is not feasible for me to wait this long to be able to test/debug my changes - especially if they turn out to be wrong.
Is there any way I can test the app on the tablet as the system user (or mimicking system user privileges) without having to get it signed every time?
Further info:
I am developing on windows 7, using Eclipse IDE.
The tablets are running Android 4.4.2 and 4.4.4 (2 different models).
The tablets are not and will not be rooted.
Assume a fairly basic level of understanding of app signing on my part.
Thanks in advance
Root the device and install app to system/app folder
I have sorted this myself by rooting the device for development purposes and then copying the app from the data/app folder to system/app and then removing the it from data/app folder.
The device then treats it as a system app and so far all of the system level functions I have tried have been working (such as reboot device and set timezone).
This article helped (although I had to copy (cp) and remove (rm) rather than move (mv) the app).

Does Developing Android Applications require a Rooted Device?

I am looking generally in to Android development.
I keep seeing information on root however I am unclear how this relates to general android app development.
I understand that there is an emulator however when I get to actually test the software on a phone does that phone have to be a rooted device or is this only required if you wish to edit the core features of the os?
Finally are there are any development disadvantages to rooting the device such as that is no longer behaves like other android phones I may deploy too?
Thank you
You don't need root to develop for Android.
The easiest setup is to run Eclipse with the Android Development Tools installed. Then, you can debug your application in the emulator, or register your phone with the SDK and debug directly on your phone. The only thing you need to do on your phone is check the development mode under Settings -> Applications
I can understand the allure of having a rooted device, but I can't really see a reason for changing the bootloader or os binaries. You can, however, change most of the default applications (including the Home application) with other applications available on the Market. For instance, OpenHome is about $5 and allows you to replace the home app, add themes, and replace many of the core apps (e.g. clock).
Rooting is only required, if you want to play around with advanced features or update your firmware, etc.
If you develop your software using the Android SDK you will be able to use it on your phone regularly (as long as you have the corresponding version). No rooting needed.
I have never heard of any problems according to your concerns. But I cannot deny that there are none. Though I personally don't expect that there are any problems with rooted phones.
On the Nexus S running Android 2.3, the /data folder is not visible in the DDMS File Explorer or the ADB shell, but it is visible in the emulator. This occurred with debug turned on in both the manifest and on the phone. I confirmed that debug mode was properly enabled by successfully stepping through the app using breakpoints and also by receiving messages from logcat.
Not being able to see the /data folder means that you will not be able to get your application's private data.

how to install unsigned android application on the device?

Currently a team of developers is working on Android application and during the development process testers already have to test the current state and report issues.
So far I have simply installed the application by connecting the tester's device on my pc and hit run in the IDE. This way we waste a lot of time if an application has to be installed on multiple devices multiple times daily.
What I would like is to send the testing team the .apk file and let them install and run the application by themselves.
Does anyone know what's the best way to do it?
Thank you!
You can allow untrusted applications in the settings.
Settings / Applications / Unknown sources
with that setting on, you can just point your phone to the url of an .apk and install it IIRC.
It is also possible to install apks using debug mode and adb-commands over USB-cable.
Here is what I do for that, simple:
Build in debug mode, no need to sign with a special key.
Mail them the application by regular email to their computers. Then have them connect their USB cables (comes with the phone) and copy to sd card. Access the sd card from the within the phone using any available file browser, and they can install it from the SD card.
Regards
There is also software called Installapk that allows you to install APKs on your device very easily, though it is only available for Microsoft Windows, and is currently in beta.
Installapk

Categories

Resources