Why do application need serial number? - android

I use XPrivacy module on my android mobile. After installation of some app, when I check permissions that application is asking, 'almost all' the time application ask for "Identification" which I suppose is generally is serial number of my device. I have few noob questions on this
Why do android application need serial number of my device ?
Why it stops working when I block access to it (it stops working initially but works after 3-4 times you open app)
What will company do with that information (I know it will vary according to their privacy policy but what do they do in general?)

According to [https://android.stackexchange.com/questions/73361/what-does-serial-and-proc-permissions-stand-for][1] "Serial permission allows the app to grab a unique identifier for for your phone." I think it can be applied on user behavior stats report upload, to identify each different mobile user.
The reason why it stops working when you deny the permission request from the app is because it can't get the permission and some of it's function might throw some run time exception and cause the app crashes or stopped if the app developer handles the run time exception properly.

Related

How can i get the caller phone number on android PIE without using read call log permission?

I've built a cool app that uses the outgoing/incoming phone number
and send it some data.
The phone number retrieval works fine in all android versions
except android P (version 9).
In that version i needed to add a READ_CALL_LOG permission in addition to the READ_PHONE_STATE permission,
and than, the PHONE_STATE broadcast got called twice.
(the phone number is included only in the second time.)
but then i can't upload my app to google play because READ_CALL_LOG is a sensitive permission and my app goal is not listed in the allowed cases.
i believe that there are a lot of apps that makes use in the incoming/outgoing phone number without the need to actually read the users call logs.
my question is:
is there another way to retrieve phone number in android P without using READ_CALL_LOG?
or,
is there any way to bypass google play's restriction for that particular use case?
thanks.

How to solve "For your messages security, System message app has been set as the default message app” issue on Oppo devices?

I implemented an SMS app. Now I'm having trouble with Oppo devices because whenever a message is received, the system changes the default app to the built-in app and shows this message:
For your messages security, System message app has been set as the default message app
I need to solve this issue programmatically as thousands of users will be using the app and I cannot let them change it manually
Found this in a other thread on OPPO:
Whatever settings you change for the messaging will not make any difference, the phone will always revert to the default app.
I took this up directly with OPPO and had the following response:
We decided not to allow customer to set 3rd party applications as default message application, for security of the devices cannot be guaranteed. We also want to let you experience our built-in application and to be spared from the malfunction like virus, bug or etc.
Not the response I wanted or expected!
Possibly the phone has been set this way is because in China the government is granted access to all private communications as a way to preserve a permanent dictatorship? Thus Chinese brands may be knowingly spreading these settings in android devices around the world.

disabling Privacy, Device permissions and device access

I've recently created an app which is basically a webview component that displays a website, when I want to install the app on an android phone (havent tried on iOS yet) the privacy setting and device permissions/access you have to agree with are far more than what the app requires, if it is a simple webview app it should not need access to anything other than full network access, however other requirements that you have to agree with before installing the app are "read contacts, read texts, make calls, send texts... etc." it pretty much requires all the possible device permissions that there is, and so some people might not want to install the app due to this reason. Is there any way I can cancel or disable the device access/permissions that the app requires?

Android standalone apk installation problem

I am trying to install an application as a standalone apk (not in Android Market place) by placing the signed apk package on the SD card and then clicking it to install it.
The application installs fine and I start it however it will always crash unless the PC cable is connected to the phone in which case it works fine!
It is frustrating for me, I know it must be trying to save or access something on the PC or have a setting on the phone that needs changing.
I am sorry if this is a rather simple question, but I just do not know what I am doing wrong.
Any help with this would be much appreciated.
EDIT (More Information):
The application is a messaging application using a specific message protocol that has a background service that has a socket that listens for messages arriving and the application UI will listen to message events raised and also send messages by connecting to this service running.
The application does save details about the person who is logged in and the messages that have been received and uses GPS for navigation.
Specifically the application will always crash whenever the usb cable is NOT CONNECTED to the phone. I cannot get past the login screen which would start the background service and save the person who is logging in.
As for logcat output, well this is a release application and it works fine when I have been previously been debugging it from eclipse.
However now I am trying to create a release build to give to clients.
This is a snippet that I know will execute when I try and login however without the cable attached the application just crashes.
// Start the background connection to the server now the user is logged in
startService(new Intent(this, ConnectorBackgroundService.class));
// If there is a user that has been logged in otherwise load from settings
if (user == null) {
user = loadUserFromSettings();
}
// Write the login to file to allow automatic login if the application is restarted
repository.saveLoggedInUser(user);
Have you removed dobug mode from manifest?
Thanks anyone who spent time looking at this problem.
It was because I had an event which watched for the device being unplugged and plugged in because it stopped GPS the application was using when on battery to conserve battery.
As I was always testing the device when it was plugged in via USB, I never noticed that it was calling bad code when I unplugged the lead causing a null reference exception.
I guess I was always thinking that it was trying to communicate with the debugger or something which was why it was not working properly.
This site will finally allow me to put my own answer in.

Are there any tools to sandbox a malware application even more than the granted permissions on Android?

Suppose I want to run some program which requests too many permissions. For example, record from the microphone or read IMEI of my phone. However, there are no practical explanation why recording from the mic or IMEI number is needed for this particular application, except for data mining.
I want to try this app, but restrict its permissions. For example, if it reads IMEI, it should get random IMEI(but the same every time). If it tries to read the mic, it should get silence.
Some other interesting permissions:
Phonebook read/write access -
returns zero contacts, pretend that
write is OK, but actually do
nothing.
Send SMS - pretend that SMS
is sent, but do nothing.
Get list of
visible Wi-Fi networks - return zero
networks.
Obviously the tool should require a rooted phone. Are there any such tools?
You could download the Android SDK and use an emulator to test our the applications. You could then set info like your phone book and test out how the app is using that data.
There is a TISSA prototype application, but it is not released, yet. In CyanogenMod 7 there is a setting to revoke application permissions, but if the app expects the API to return something useful instead of failing, it will crash, it is still not faking data.
i just found the free LBE Privacy Guard for rooted phones. It pretends to protect sms, Internet access, contacts, Call Logs, Positioning, Phone ID, Phone Call and phone state.

Categories

Resources