I have developed a mobile application in PhoneGap. We had a security test on the application and it has flagged that application can be installed on a rooted device and we don't want to allow this. Is there a way to restrict an application to be installed on a jailbreak phone using phonegap
Thanks
The short answer
No, you can't at install time.
The long answer
You can restrict the installation on devices by two ways:
Using the uses-feature meta tag in the manifest. Check out the doc here.
Via the android console, where you can manage restrictions on any model by excluding or including some of them as target for the install of your application.
Since the root is not a feature implemented as part of the device, it is a software restriction, you might accept users to install the application and check it at runtime if the device is rooted. Here is a link on how you can try to do it, but there is not an official way or consistent for all devices as far as I know.
Related
I want to know how to disable internet for particular application, Please suggest me how to achieve because many application given this type of feature
It depends if you are asking to control this in an app you are writing yourself or in a 3rd party app on your device
For 3rd party apps: Android 4.3 had a permission manager that allowed adjusting permissions individually for installed apps. This feature was pulled (Google said it was released by mistake) from Android 4.4 and it no longer available. A similar feature might be available on vendor-specific/un-official ROMs.
For apps you write yourself: You need to add proper permissions (android:name="android.permission.INTERNET) to access network. Without it the app will not be able to make any network traffic.
We have made some changes in the "skia" library of Android OS (Froyo) and it works well in emulator.
It also worked when we pushed (replaced) the corresponding .so files in to a device.
Now we want to provide this service to the end users. Is it possible to make an application(apk) that people install to perform this task?
If not possible, then what is the best way we can provide the service to others?
If you have created a useful functionality that will be useful for a range of users you can submit your patch to Google code review (you can read how to do this here)
You cannot, unfortunately, unless
you are the device manufacturer (or Google)
you are developing a replacement system image, or target only rooted devices
I believe this would only be possible if the app has root access or you distributed a ROM to your users yourselves.
I have been searching the internet wildly for an answer to this question.
We are creating custom android app for internal use only and we would be installing that on custom andoid devices. We would like to have full control of the device through the app. The end user of this device is not meant to use anything other than the app on this device. I have sealed out all the possibilities of getting out of the app except this one possibility where the program tries to update itself and asks for user permission.
Let me repeat again, This app is not meant to be put on market, only for use with custom devices designed for specific purpose. So security is not an issue here.
The device is rooted and we have done a lot of alterations with it. But I cant quite figure out how to make this update work.
If you have any ideas/solution please share it with me. I can do anything with my device, (even dig a hole in it if required :P) as they would be custom made, and would be packaged with us before going out. Just have to make it work.
If you are talking about internally installing the APK with like an update application specifically designed to update your other application which is not managed by Google Play you may want to look into this. So between xjaphx's answer and the link I just shared you will be able to install and maintain updates.
This is as simple as how it works.
Pre-condition:
Get devices rooted
Prepare Android development environment (Android SDK, platforms-tools)
A cable to connect PC and devices.
Steps:
Open command-line if Windows or shell if Linux
type: "adb push YourApp.apk /system/app"
That's done for installation of the app. Reboot and check whether your app works or not.
The Settings on Android provides an option to add VPN manually.
Can this be done programmatically through some kind of an API?
I'm not looking for a way to connect to a VPN. I'm only concerned about configuring a VPN profile.
Please see this answer, it is not possible with the Android SDK.
This is not possible with Android SDK. However, some manufactures like
Motorola have their own flavor of android and in their SDK they have
made it possible.
See also this question -- Create VPN profile on Android. Briefly, we came to the conclusion that it's not only not possible with the Android SDK, but it's not possible even with a hacked SDK unless you have a rooted device (because the VPN profiles are stored via the system KeyStore, so you would need to be running as a system process to add / modify them).
However, there does appear to be a third-party VPN app that at least claims to do this without a rooted device, but it doesn't appear to be open-source and I can't vouch for it (see the comments here: http://code.google.com/p/android/issues/detail?id=8915).
I have developed the Google map application in android using Eclipse and AVD. Is it possible to run the application on device or I need any development certificate to install application on device (just like iPhone).
Kindly guide me so that I can test my application on my device.
You do not need a certificate you need a phone with debugging enabled. Read this article:
http://developer.android.com/guide/developing/device.html
After an successful installation of your app, you might want to read this article:
http://developer.android.com/guide/developing/tools/adb.html
Although you might want to ask at stackoverflow.com for programming related questions.