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?

up vote 17 down vote accepted

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

  • 1
    for completeness: subsequently rm i.e. delete the original – Ujjwal Singh Nov 25 '14 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 '15 at 21:03
  • Adding to alexus's answer: If you don't have busybox, you can simply use cat SOURCE > DESTINATION to imitate cp – johnny May 25 '16 at 8:33
  • use "busybox mv <from> <to>". Works for me all the time. – user176395 Jul 14 '16 at 10:03
  • @johnny you can't use cat to copy binary, cat would only work for text file. – alexus Jul 14 '16 at 16:27

protected by Community Jul 15 '16 at 9:54

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.