When performing adb pull / on a non-rooted device, I see hundreds of items with pathnames that begin with /proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root?

That's not a typo. That is literally how the path of each of these items is prefaced.

It looks recursive or like an infinite loop, but eventually the repetition ends with a unique file or folder name.

What is going on? What is adb doing here?

  • 1
    Usually that happens when dealing with chroot and/or mount namespace. /proc/<pid>/root points to the rootfs a process is seeing. Doing adb pull on "entire device" doesn't make sense. You should at maximum pull only persistent storage partitions, not pseudo filesystems. Mar 9, 2021 at 7:19
  • @IrfanLatif Yes, I'm undoubtedly trying to capture a gnat with too large of a net. I was trying to apply some of the tips provided in android.stackexchange.com/questions/234446/…, and so I cast the net as wide and large as possible. I'm searching for anywhere the lost data could be stored (cache, temp files, etc.), and so I tried pulling everything starting at root to try to get everything possible. Mar 9, 2021 at 7:37
  • 1
    User data is stored nowhere ever except on /data. Mar 9, 2021 at 7:53
  • 1
    / is just tmpfs in RAM and does not survive reboot. there is no benefit in pulling / no matter device is rooted or unrooted. it makes lot more sense to pull physical partitions, although only one partition is of any use
    – alecxs
    Mar 9, 2021 at 12:14
  • 1
    And also that won't succeed because some pseudo files (like /dev/zero and /dev/urandom) have no end of file. You'll get an infinitely increasing file. Mar 9, 2021 at 13:01


You must log in to answer this question.

Browse other questions tagged .