johanw666 / Signal-Android

Fork from a private messenger for Android with extra options added: full backup and (partial, ony text) xml backup of messages. Restore can happen at any time, not only after a fresh install. Import SMS database. Import of (unencrypted) WhatsApp databases. Removed apk expire. Choose between passphrase protection and the Android screenlock. Choice for the backup location (internal or removable storage on Android < 11 (on 11 and higher this is already possible)). Set the maptype in the place picker. Option to treat view-once media as normal media. Option to ignore remote deletion. Choose between FCM or websocket notification delivery.
https://johanw.home.xs4all.nl/Signal/signal-jw.html
GNU Affero General Public License v3.0
250 stars 16 forks source link

Merging with Signal and Whatsapp imports #27

Open roberts011 opened 3 years ago

roberts011 commented 3 years ago

Hello @johanw666 ,

thank you very much for this fork. In conjunction with @jukefoxer s fork of it, this is currently the only possibility of importing Whatsapp Chats to Signal.

To improve the transition process to Signal from other apps overall, I wanted to ask whether you are strategically considering to merge this into the main Signal app.

Furthermore, as @jukefoxer doesn't seem to be around anymore (and with no possibility of contacting them), I'd kindly ask you if you could try to add his "Whatsapp database import function" into your fork.

Regards

Robert S.

johanw666 commented 3 years ago

Merging is on the long time planning, but currently I'm recovering from Covid19 and I honestly have no energy to take on this task right now.

roberts011 commented 3 years ago

Omg now I feel like a jerk. Take your time to get better.

roberts011 commented 3 years ago

If you want help, hit me up.

My idea was mainly to copy the Whatsapp Import feature of @jukefoxer s fork into this, so it all can be merged into the main app.

jukefoxer commented 3 years ago

Hi Johan and Robert,

it would be great if my fork would be merged into Johan's fork and I would welcome your contribution.

Yes, I had to abandon the project because I'm currently pretty overworked with the upcoming product launch of my startup.

If you decide to do the merge, feel free to contact me with any questions ( @.***).

@Johan: I'm sorry to hear about your Covid-infection and wish you a good recovery.

Best,

Sam

Am So., 18. Apr. 2021 um 19:09 Uhr schrieb Robert S. < @.***>:

If you want help, hit me up.

My idea was mainly to copy the Whatsapp Import feature of @jukefoxer https://github.com/jukefoxer s fork into this, so it all can be merged into the main app.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/johanw666/Signal-Android/issues/27#issuecomment-822025194, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHHDWBQYA6Y6IYGJO5MUPVDTJMG25ANCNFSM43D2OOQQ .

roberts011 commented 3 years ago

Hey Sam,

thats great to hear! (Didn't actually expect this to work)

Could you maybe point us to the place in your fork where you changed / inserted the "import Whatsapp msgstore.db" part?

That would make things far easier. I would be happy to organize the merge / import / copy. As your (@jukefoxer) Signal version doesn't support the latest changes to the backup system, namely the switch to a singular backup file (.backup), anymore.

Ps: Your email is censored out, was that intentional?

jukefoxer commented 3 years ago

The 2 main files that do the import are:

https://github.com/jukefoxer/Signal-Android/blob/master/app/src/main/java/org/thoughtcrime/securesms/database/WhatsappBackupImporter.java

(contains the main entry point) and

https://github.com/jukefoxer/Signal-Android/blob/master/app/src/main/java/org/thoughtcrime/securesms/database/WhatsappBackup.java

The strings that I added are in the file:

https://github.com/jukefoxer/Signal-Android/blob/master/app/src/main/res/values/strings1.xml

I also added an import dialog which is in (code and xml)

https://github.com/jukefoxer/Signal-Android/blob/master/app/src/main/java/org/thoughtcrime/securesms/ImportWhatsappDialog.java https://github.com/jukefoxer/Signal-Android/blob/master/app/src/main/res/layout/dialog_import_whatsapp.xml

The main entry point is the method:

public static void importWhatsappFromSd(Context context, ProgressDialog progressDialog, boolean importGroups, boolean avoidDuplicates, boolean importMedia, int numDaysToImport)

in the WhatsappBackupImporter.java file.

... Seems like there is no way I can let you know my email address that is non-public...

roberts011 commented 3 years ago

Hey Sam,

thanks a lot for that! Don't worry about the email. Personally I think its totally fine if you're reachable here. If you want you can PM me it tho.

@johanw666 do you think you can integrate those parts? (obviously after you recovered)

johanw666 commented 3 years ago

The explanation of jukefoxer is helpful, I know what to do. I've already bought a 2nd device and put Android 11 on it, required for the manage storage stuff but rooting it causes problems (bootloops, unable to unlock the device, TWRP does not store its settings) so I'll have to wait until that is fixed.

jukefoxer commented 3 years ago

Hi Johan, Did you try an Android 11 emulator? To my knowledge these are rooted by default.

johanw666 commented 3 years ago

Hi Johan, Did you try an Android 11 emulator? To my knowledge these are rooted by default.

Unfortunately my laptop is not going to handle that. It has the maximum amount of memory that it can handle (12GB) and a clean compile from Signal takes over 10 minutes (when no new libraries have to be downloaded).

roberts011 commented 3 years ago

Hey @johanw666 , sorry for being absent. University exams came down upon me and a conference that was supposed to be fun turned into an organizational nightmare. I was just checking and saw your code is up to date with the current Signal version, thats great! Did you manange to make any progress including jukefoxers code?

Kind regards Robert

Also adding a reference here: https://github.com/YuvrajRaghuvanshiS/WhatsApp-Key-Database-Extractor/discussions/64#discussion-3343630

Wollwolke commented 2 years ago

Hey guys, In advance: I'm not an android developer, I just tried to make it work for me :) I added the commits from @jukefoxer to the latest version of this repo (with some additions). Maybe this is helpful for you: wa-db-import in Signal 5.23.1.1-JW

jukefoxer commented 2 years ago

Hey guys, In advance: I'm not an android developer, I just tried to make it work for me :) I added the commits from @jukefoxer to the latest version of this repo (with some additions). Maybe this is helpful for you: wa-db-import in Signal 5.23.1.1-JW

That's great! Thanks for letting us know.

roberts011 commented 2 years ago

Thanks! Could you build a version of that?

From: Samuel Welten @.> Sent: Tuesday, 7 September, 2021 10:14 To: johanw666/Signal-Android @.> Cc: Robert S. @.>; Author @.> Subject: Re: [johanw666/Signal-Android] Merging with Signal and Whatsapp imports (#27)

Hey guys, In advance: I'm not an android developer, I just tried to make it work for me :) I added the commits from @jukefoxerhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjukefoxer&data=04%7C01%7C%7C2c59d5ccf3924aeadec908d971d77464%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637665992443905720%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=16lgcJZNwdJ3O1y5epEERc9yFR2KS%2F2UNUfeyAc8TWs%3D&reserved=0 to the latest version of this repo (with some additions). Maybe this is helpful for you: wa-db-import in Signal 5.23.1.1-JW</Wollwolke/Signal-Android/tree/feature/wa-db-import>

That's great! Thanks for letting us know.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjohanw666%2FSignal-Android%2Fissues%2F27%23issuecomment-914090680&data=04%7C01%7C%7C2c59d5ccf3924aeadec908d971d77464%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637665992443915714%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=R%2BKqU2%2F1nW5Aq0ef7ljQu7nleCn1m%2FqVwzYm4NtZGq0%3D&reserved=0, or unsubscribehttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAHSNGCUZWIZU4QOEVQM7UCLUAXCUVANCNFSM43D2OOQQ&data=04%7C01%7C%7C2c59d5ccf3924aeadec908d971d77464%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637665992443915714%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=vnl12Su9T9ggYKF%2BJJAqNpY0gHUoJvx%2BWDy1O0wZxzQ%3D&reserved=0.

Wollwolke commented 2 years ago

Unfortunately I don't have access to my development PC for the next week. But I can send you the version that is installed on my phone. It's a self-signed PlayProdRelease build for arm64-v8a of version 5.23.1.0-JW

https://drive.google.com/file/d/1jDB6SdYupE2ClUXZlYfCCxMPW8VeUOYF/view?usp=sharing

johanw666 commented 2 years ago

I finally found the time to merge this in my build and released in 5.23.6.1-JW.

When I tested this I noticed 2 things: it crashed on my WA database when I selected "Import group chats", and when importing has reached the last record it just stops, I had to force-close Signal and then the new data was visible in Signal. Should I hard-close Signal from code when it is finished reading all WA data?

roberts011 commented 2 years ago

I mean if it is a necessity, yes of course. Maybe try to do it with a little informational prompt or message tho.

Wollwolke commented 2 years ago

I didn't get the behavior at the end, the process just ends and I can click on the back key to get back to the chats overview. But I didn't import group chats... I'll try that in the next couple of days

johanw666 commented 2 years ago

I didn't get the behavior at the end, the process just ends and I can click on the back key to get back to the chats overview.

I might have missed something in the merge.

But I didn't import group chats... I'll try that in the next couple of days

The groups import just crashed. I'll try again and see what the error was. Edit: I didn't create a same-named group in Signal first. But it shouldn't crash on that.

johanw666 commented 2 years ago

@jukefoxer @roberts01 now that WhatsApp has also introduced message reactions, can anyone please check if it is easy to update the WA import code with this? I also got this question about the import when the senders are not in yur phone book: https://github.com/johanw666/Signal-Android/issues/49 , would that be difficult to fix?

jukefoxer commented 2 years ago

I'm unable to help directly, sorry. I don't have access to Whatsapp anymore. If it helps, my approach to import specific Whatsapp features was something like this:

Am Mi., 11. Mai 2022 um 11:46 Uhr schrieb johanw666 < @.***>:

@jukefoxer https://github.com/jukefoxer @roberts01 https://github.com/roberts01 now that WhatsApp has also introduced message reactions, can anyone please check if it is easy to update the WA import code with this? I also got this question about the import: #49 https://github.com/johanw666/Signal-Android/issues/49 , would that be difficult to fix?

— Reply to this email directly, view it on GitHub https://github.com/johanw666/Signal-Android/issues/27#issuecomment-1123459270, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHHDWBWKF42PQOTMYM5ITW3VJN6WNANCNFSM43D2OOQQ . You are receiving this because you were mentioned.Message ID: @.***>

johanw666 commented 2 years ago

Getting unencrypted WA databases is not a problem, all my Android devices are rooted so access to these is trivial.