Motivation

So this is probably a strange request but I really want to do this. For some reason, when I restored the WhatsApp chats most of the photos there got to the private directory where it doesn’t show on my android gallery. I don’t know what happened but there is no official solution to get the photos back. So I thought why not do it myself.

What I already did

I rooted m phone (temporarily) to get access to the msgstore.db file so that I can change the paths of the media. I can do that easily with a sqlite query.

What I couldn’t do

When I try to modify the actual database, it says that I cannot do it since the file got corrupted. I think there might be a checksum or something somewhere but I can’t seem to find any information about it. Does anyone know how I can do this without tripping the integrity checker?

  • stifle867@programming.dev
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    1
    ·
    7 months ago

    If the photos go to a private directory but you are now rooted you should be able to directly access that directory and copy the files out. This is assuming that they are stored as regular files in that directory instead of being solely in the sqlite db. Does that work?

    • spookedbyroachesOP
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      2
      ·
      7 months ago

      I can but then the photos are gonna be duplicates which would take up a lot of space

        • spookedbyroachesOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          7 months ago

          That would have been a genius idea actually it would solve all of my problems. However, it seems like Android doesn’t allow hard or soft links through SELinux. I tried doing it in termux in root mode but it told me “Function not implemented.”

            • spookedbyroachesOP
              link
              fedilink
              English
              arrow-up
              2
              ·
              7 months ago

              I tried it on termux and it says “permission denied”, and I have access to write on both folders on termux

                • spookedbyroachesOP
                  link
                  fedilink
                  English
                  arrow-up
                  2
                  ·
                  7 months ago

                  I think it’s Android itself. I can only do symlinks in the /data partition not /storage/emulated according to this. And I tried it and it seems to be true.

                  ` ~ $ pwd

                  /data/data/com.termux/files/home

                  ~ $ touch ok

                  ~ $ ln ok ok.ok

                  ln: failed to create hard link ‘ok.ok’ => ‘ok’: Permission denied

                  ~ $ ln ok -s ok.ok

                  ~ $ ls

                  ok ok.ok

                  ~ $ cd /storage/emulated/0

                  …/emulated/0 $ touch ok

                  …/emulated/0 $ ln ok -s ok.ok

                  ln: failed to create symbolic link ‘ok.ok’: Permission denied

                  `

    • spookedbyroachesOP
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      4
      ·
      7 months ago

      Then I can’t see them in the chat since they’re in a different location.

      • Tippon@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        5
        ·
        7 months ago

        WhatsApp expects to see your images in the images folder. Move the photos into that and they should be picked up. The folder should be

        Android/media/com.whatsapp/WhatsApp/Media/WhatsApp Images/

        The private folder is a subfolder of WhatsApp Images, so you should just need to move them up one level.