title: Android 5.0/Lollipop: Force rescan of /system/priv-app
body: <p>In Android 4.x, it was enough to put an APK-file into /system/priv-app, and the package-manager recognized that new file and (un-)installed the corresponding application or service.</p>
  
  <p>Since Android L, it seems to be not enough to just put the file into that directory - a reboot of the system is required to force Android to recognize that change.</p>
  
  <p>Has anyone an idea how to circumvent this? Maybe with any <code>setprop ctl.restart xxx</code> or by killing a dedicated service?</p>
  
  <p>EDIT:</p>
  
  <p>Here are some logs from logcat:</p>
  
  <h3>1. Move APK from /system to /system/priv-app (=installation)</h3>
  
  <pre><code>su
  mount -o remount rw /system
  cd /system/priv-app
  mv ../AARSCService.apk . // move from /system to /system/priv-app
  
  W/mv      ( 3268): type=1400 audit(0.0:53): avc: denied { rename } for name="AARSCService.apk" dev="mmcblk0p22" ino=23041 scontext=u:r:init:s0 tcontext=u:object_r:system_file:s0 tclass=file
  </code></pre>
  
  <p>(but file HAS been moved as the current root-implementation for Nexus 7 Android Android L P2 disables SELinux for the root-commands!)</p>
  
  <p>-> APK NOT loaded and not listed in app-list -> NOT as expected, APK is going to be automatically installed once put into priv-app folder on Android 4.4.</p>
  
  <h3>2. Reboot device, having APK inside /system/priv-app</h3>
  
  <pre><code>reboot
  
  I/PackageManager(  567): /system/priv-app/AARSCService.apk changed; collecting certs
  </code></pre>
  
  <p>-> APK IS loaded and listed in app-list -> as expected</p>
  
  <h3>3. Move APK from /system/priv-app to /system (=deinstallation)</h3>
  
  <pre><code>su
  mount -o remount rw /system
  cd /system/priv-app
  mv AARSCService.apk .. // move from /system/priv-app to /system
  
  W/mv      ( 3189): type=1400 audit(0.0:31): avc: denied { rename } for name="AARSCService.apk" dev="mmcblk0p22" ino=23041 scontext=u:r:init:s0 tcontext=u:object_r:system_file:s0 tclass=file
  </code></pre>
  
  <p>(but file HAS been moved as the current root-implementation for Nexus 7 Android Android L P2 disables SELinux for the root-commands!)</p>
  
  <p>-> APK still loaded and listed inside app-list, service inside app can still be bound from another app -> NOT as expected, APK is going to be automatically uninstalled once removed from priv-app folder on Android 4.4.</p>
  
  <h3>4. Reboot device, having APK NOT inside /system/priv-app</h3>
  
  <pre><code>reboot 
  
  W/PackageManager(  570): System package eu.airaudio.aarscservice no longer exists; wiping its data
  </code></pre>
  
  <p>-> APK is no more loaded and no more listed in app-list -> as expected</p>
  
  <p>EDIT 2:</p>
  
  <p>There's the same behaviour on unrooted Android L (21) emulator - sure, without the SELinux-warning.
  But the APK is also just (un-)installed after reboot (=kill zygote).</p>