I'm trying to mv .apk file from my /sdcard to /system and getting following error:

failed on 'XXX.apk' - Cross-device link

I did remount my /system as rw

root@ghost:/ # mount -o rw,remount /dev/block/platform/msm_sdcc.1/by-name/system /system
root@ghost:/ # mount | grep system                                             
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 rw,seclabel,relatime,data=ordered 0 0
root@ghost:/ # 

I also tried following, but without luck(

mbp:~ alexus$ adb root
adbd cannot run as root in production builds
mbp:~ alexus$ adb remount
remount failed: Permission denied
mbp:~ alexus$ 

Why can't I still move apk file to /system? What am I missing?

1 Answer 1


and the answer is pretty simple, use cp instead of mv)

  • 3
    for completeness: subsequently rm i.e. delete the original Nov 25, 2014 at 21:35
  • This is a limitation of the Busybox mv. When the original mv encounters a move across device borders, it just does exactly cp followed by rm, tho I think it sets the file's time to the old values.
    – ott--
    May 14, 2015 at 21:03
  • 1
    Adding to alexus's answer: If you don't have busybox, you can simply use cat SOURCE > DESTINATION to imitate cp
    – johnny
    May 25, 2016 at 8:33
  • use "busybox mv <from> <to>". Works for me all the time.
    – user176395
    Jul 14, 2016 at 10:03
  • @johnny you can't use cat to copy binary, cat would only work for text file.
    – alexus
    Jul 14, 2016 at 16:27

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .