11

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?

19

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

  • 2
    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

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