android


Does an app that uses system permissions need to be in the /system/app folder?


The project that I am working on in our company makes use of some system permissions. This is achieved by:
Adding the following line to the manifest: android:sharedUserId="android.uid.system".
Signing the app with our platform key.
Placing the app in the /system/app/ folder during our ROM creation process.
The device we use is not rooted by default so to update the APK we have to recreate the ROM with the new APK in place which is a very time consuming process. From what I understand, this is because, without root privileges, I can't write to /system/app.
As a proof of concept, I created an app that restarts the device when you press a button which makes use of the "android.permission.REBOOT" system level permission. I achieved this by:
Adding the following line to the manifest: android:sharedUserId="android.uid.system"
Signing the app with our platform key.
Then I simply loaded the proof of concept app using ADB which places the app in the user apps folder, /data/app, and it worked just fine. I did not need to place it in /system/app for it to work. In addition, if I created a ROM without our app in it, and tried to load our app with ADB, it worked just fine in the /data/app folder.
So my question is: Is it necessary to place the app in /system/app if you're using system permissions or is the user app folder, /data/app, sufficient? If the /data/app folder is sufficient, then what do you accomplish by putting your app in the /system/app folder? Other than preventing users from deleting the app for instance.
The answers I found were somewhat contradictory, this does not mention the /system/app folder. This says it's part of the process.

Related Links

How can I ensure a execution after thread saves a result?
Facebook Tagged Places>are these tags posted in real-time or delayed
Create own beacons service for Proximity based mobile application
How do I save state of animation in android, onPause() method?
Custom filter in array adaptor
Layouts with two different colors
ListView not being displayed within fragment?
How to set the position (scroll down position) of a webview after it is loaded?
Android Material Design Text Field Templates
read file from assets android
Android Studio - Google map still blank on real Android device
Android x86 emulator extremly slow
How to remove an item from recyclerView after removing it from database
Unable to use any of the Opencv drawing operations in android
How to test iccTransmitApduBasicChannel API?
best approach to android development process [closed]

Categories

HOME
phantom-dsl
microsoftgraph
deep-learning
redux-form
android-studio-2.2
nunit
formal-languages
toolbox
interface
solver
knitr
seo
edge
mips
3d-reconstruction
augeas
android-securityexception
job-scheduling
dimensional-modeling
dreamweaver
delphi-xe5
swagger-2.0
sar
string-concatenation
imageresizer
aggregation
google-api-client
mount
opentk
mat
outliers
ms-access-2003
apktool
ceylon
twiml
testcomplete
google-earth
panoramas
kudu
zend-debugger
instantiation
installshield-le
sendbird
sql-delete
protege4
sessionstorage
xdocreport
modernizr
sharp-snmp
apache-spark-dataset
memory-mapping
monkey-testing
jide
openblas
arq
stdmap
spring-data-couchbase
google-photos
vibrate
shinobi
bootstrap-tags-input
vcloud-director-rest-api
gets
chromium-os
cudd
flex4.6
model-associations
jquery-jscrollpane
android-dateutils
jclouds
stream-processing
zen-cart
snoop
teamcity-9.1
nsurlsessiondatatask
aspectj-maven-plugin
node-serialport
user-permissions
gamekit
rapidsvn
structuremap3
nsmenu
live555
alternate
solace-mq
c++builder-xe5
code-duplication
model-driven-development
font-awesome-4.0.0
pagedown
pdfviewer
patricia-trie
garbage
htdocs
update-statement
automationelement
rmdir
mbeans
event-receiver
twitterizer
addchild
scrollbars
pagemethods
escrow
cardspace
appliance

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App