tgalal / yowsup

The WhatsApp lib
GNU General Public License v3.0
7.08k stars 2.23k forks source link

WhatsApp Keystore update #3042

Closed mahmoud-hassan-911 closed 3 years ago

mahmoud-hassan-911 commented 3 years ago

in the latest WhatsApp version, Keystore.xml file has changed and "client_static_keypair" changed to "client_static_keypair_pwd_enc" , it's a encrypted value for the old "client_static_keypair" used in login. the question is how to decrypt "client_static_keypair_pwd_enc" to get "client_static_keypair" so I can login with it ?

GM12Tick commented 3 years ago

Can you elaborate more? Does that impact your Yowsup work?

GM12Tick commented 3 years ago

Client static keypair is generated in the WARequest, why would it impact you?

ben221199 commented 3 years ago

It doesn't impact. It only makes it harder to extract it from a device.

GM12Tick commented 3 years ago

Yea, but why not register using Yowsup cli?

ben221199 commented 3 years ago

Because of the possibility of being banned directly after registration. When doing registration using WhatsApp Android app, and then using the client_static_keypair in yowsup, the chances of getting banned are smaller.

GM12Tick commented 3 years ago

Interesting @ben221199 , even if you use latest protocol ?

ben221199 commented 3 years ago

@GM12Tick What do you mean?

mahmoud-hassan-911 commented 3 years ago

Because of the possibility of being banned directly after registration. When doing registration using WhatsApp Android app, and then using the client_static_keypair in yowsup, the chances of getting banned are smaller.

that's the point @ben221199 , in the latest versions of WhatsApp they've encrypted "client_static_keypair" value and I cannot use it with Yowsup any more

ben221199 commented 3 years ago

@mahmoud-hassan-911 But are you able to decrypt the client_static_keypair_pwd_enc? If not, find out how to decrypt. If you are, then it should work with Yowsup.

thousandsofthem commented 3 years ago

btw, client_static_keypair_pwd_enc looks like this (after unescaping):

[2,"V6U4...KAxPK3\/bPySNw","wethCW\/p6nVKfa6QftK8wg","Dx\/5LQ","GDpww...3B+lpnGQ"]
mahmoud-hassan-911 commented 3 years ago

@mahmoud-hassan-911 But are you able to decrypt the client_static_keypair_pwd_enc? If not, find out how to decrypt. If you are, then it should work with Yowsup.

no, I'm not able to decrypt it

GM12Tick commented 3 years ago

@ben221199 any thoughts on why regging with app and then using the static client still works? or its some of the reg process?

I can work on the Static key decryption.

Is there any group working together (reverse engineers) ? i can join and contribute.

ben221199 commented 3 years ago

@GM12Tick Appearently we have 2 Discord servers:

GM12Tick commented 3 years ago

Is it active? remember being there and it had 0 response /activity

ben221199 commented 3 years ago

It isn't that busy. I'm in both servers now, but I know that I'm the most active in the first one. We are discussing this issue there too.

ben221199 commented 3 years ago

I think I fixed it. Use this code together with this link:

JSONArray arr = new JSONArray();
arr.put(2);
arr.put("<ciphertext>");
arr.put("<iv>");
arr.put("<salt>");
arr.put("<password>");

EncryptedClientStaticKeypair csk = EncryptedClientStaticKeypair.fromJSONArray(arr);
try {
    System.err.println("Decrypted = "+Hex.fromBytes(csk.decrypt()));
} catch (Exception e) {
    e.printStackTrace();
} 

https://github.com/ben221199/WAPI/blob/java/src/main/java/nl/ben221199/wapi/tools/EncryptedClientStaticKeypair.java

Whomakes commented 3 years ago
JSONArray arr = new JSONArray();
arr.put(2);
arr.put("<ciphertext>");
arr.put("<iv>");
arr.put("<salt>");
arr.put("<password>");

EncryptedClientStaticKeypair csk = EncryptedClientStaticKeypair.fromJSONArray(arr);
try {
    System.err.println("Decrypted = "+Hex.fromBytes(csk.decrypt()));
} catch (Exception e) {
    e.printStackTrace();
} 

how to use it?

ben221199 commented 3 years ago

@Whomakes Follow the steps:

pizdjuk commented 3 years ago

I spent three hours to learn Java, but failed.... :(

Here is my code:

import org.json.JSONArray; import tools.EncryptedClientStaticKeypair;

import org.apache.commons.codec.binary.Hex; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.spec.InvalidKeySpecException; import java.util.Base64;

import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.SecretKeySpec;

public class FirstJavaProgram {

public static void main(String[] args){ JSONArray arr = new JSONArray(); arr.put(2); arr.put("key"); arr.put("iv"); arr.put("pw"); arr.put("otherpw");

EncryptedClientStaticKeypair csk = EncryptedClientStaticKeypair.fromJSONArray(arr); try { System.err.println("Decrypted = "+Hex.encodeHexString(csk.decrypt())); } catch (Exception e) { e.printStackTrace(); }

System.out.println("This is my first program in java");

}//End of main }//End of FirstJavaProgram Class

I filled the array with my data. It compiles, but doesnt run. Says:

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONArray at FirstJavaProgram.main(FirstJavaProgram.java:26) Caused by: java.lang.ClassNotFoundException: org.json.JSONArray at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 1 more

pizdjuk commented 3 years ago

ook. solved. You forgot, that one needs to get your Hex class too from that repo :)

pizdjuk commented 3 years ago

@ben221199

could you help how fill out the config of yowsup from plain whatsapp data?

ben221199 commented 3 years ago

ook. solved. You forgot, that one needs to get your Hex class too from that repo :)

Oh yes, but that Hex class isn't that important. :D

ben221199 commented 3 years ago

@ben221199

could you help how fill out the config of yowsup from plain whatsapp data?

If you know the HEX version of your client_static_keypair, use this one (https://cryptii.com/pipes/hex-to-base64) to convert it to Base64. That is the base64 version of your keypair.

nightcoder22 commented 3 years ago

@ben221199 I am able to get client_static_keypair using your program.. Thanks a lot! But how will you get other fields like edge_routing_info, expid, fdid, id These are also required in config.json file to login via yowsup Thanks,

ben221199 commented 3 years ago

I don't know about expid, fdid and id. If I remember correctly, you also generate them yourself, but I don't know for sure. The edge_routing_info will be sent to you by the WhatsApp Registration server if you do everything correctly.

GM12Tick commented 3 years ago

Routing info is at the com.whatsapp_preferences_light.xml

bahtiarp commented 3 years ago

@ben221199 This my client_static_keypair_pwd_enc: [2,"4at0psc3Mc8AaBv31GtkFP0h2eCclIWU9+9zDOR+7I852uxD2E9RjH1WBvb7fR2aAAZk88hLjTn6m3FIJwuFug","ognFKbsC+STxHjxHvfTeGw","qBUW+w","2mPHom81JAsvyY1lBgC0bw"] hex decrypted result using your class: 051F0376C944349BC00497DE4CBCC4B56B1979A8B2C56D15017DC4699FED8AEE9735BF1D7675580FA94D43B0C0EF6CC7487625D6A5DCD5CBAE17C54C69239E6A base64: BR8DdslENJvABJfeTLzEtWsZeaiyxW0VAX3EaZ/tiu6XNb8ddnVYD6lNQ7DA72zHSHYl1qXc1cuuF8VMaSOeag==

But stil not able to login in yowsup. s that something wrong with the decrypted result?

Btw, if i registrate using whatsapp mod , i can extracted: client_static_keypair, server_static_public and edge_routing_info from keystore.xml and whatsapp_preferences_light.xml and i can use it sucessfuly login from yowsup-cli

ben221199 commented 3 years ago

🤔 Hmmmmmmm

endroemily commented 3 years ago

@ben221199 This my client_static_keypair_pwd_enc: [2,"4at0psc3Mc8AaBv31GtkFP0h2eCclIWU9+9zDOR+7I852uxD2E9RjH1WBvb7fR2aAAZk88hLjTn6m3FIJwuFug","ognFKbsC+STxHjxHvfTeGw","qBUW+w","2mPHom81JAsvyY1lBgC0bw"] hex decrypted result using your class: 051F0376C944349BC00497DE4CBCC4B56B1979A8B2C56D15017DC4699FED8AEE9735BF1D7675580FA94D43B0C0EF6CC7487625D6A5DCD5CBAE17C54C69239E6A base64: BR8DdslENJvABJfeTLzEtWsZeaiyxW0VAX3EaZ/tiu6XNb8ddnVYD6lNQ7DA72zHSHYl1qXc1cuuF8VMaSOeag==

But stil not able to login in yowsup. s that something wrong with the decrypted result?

Btw, if i registrate using whatsapp mod , i can extracted: client_static_keypair, server_static_public and edge_routing_info from keystore.xml and whatsapp_preferences_light.xml and i can use it sucessfuly login from yowsup-cli

Can we set for yowsup to login with client_static_keypair_pwd_enc?

bahtiarp commented 3 years ago

@ben221199 This my client_static_keypair_pwd_enc: [2,"4at0psc3Mc8AaBv31GtkFP0h2eCclIWU9+9zDOR+7I852uxD2E9RjH1WBvb7fR2aAAZk88hLjTn6m3FIJwuFug","ognFKbsC+STxHjxHvfTeGw","qBUW+w","2mPHom81JAsvyY1lBgC0bw"] hex decrypted result using your class: 051F0376C944349BC00497DE4CBCC4B56B1979A8B2C56D15017DC4699FED8AEE9735BF1D7675580FA94D43B0C0EF6CC7487625D6A5DCD5CBAE17C54C69239E6A base64: BR8DdslENJvABJfeTLzEtWsZeaiyxW0VAX3EaZ/tiu6XNb8ddnVYD6lNQ7DA72zHSHYl1qXc1cuuF8VMaSOeag== But stil not able to login in yowsup. s that something wrong with the decrypted result? Btw, if i registrate using whatsapp mod , i can extracted: client_static_keypair, server_static_public and edge_routing_info from keystore.xml and whatsapp_preferences_light.xml and i can use it sucessfuly login from yowsup-cli

Can we set for yowsup to login with client_static_keypair_pwd_enc?

should be

bahtiarp commented 3 years ago

I think I fixed it. Use this code together with this link:

JSONArray arr = new JSONArray();
arr.put(2);
arr.put("<ciphertext>");
arr.put("<iv>");
arr.put("<salt>");
arr.put("<password>");

EncryptedClientStaticKeypair csk = EncryptedClientStaticKeypair.fromJSONArray(arr);
try {
    System.err.println("Decrypted = "+Hex.fromBytes(csk.decrypt()));
} catch (Exception e) {
    e.printStackTrace();
} 

https://github.com/ben221199/WAPI/blob/java/src/main/java/nl/ben221199/wapi/tools/EncryptedClientStaticKeypair.java

@mahmoud-hassan-911 did you succesfuly login with decrypted client_static_keypair_pwd_enc using @ben221199 method?

lovethiscode commented 3 years ago

There is an Android program that can help you. It can parse the encrypted keypair and export WhatsApp's environment. It also provides a Java version of WhatsApp implementation, which is still being improved.

https://github.com/lovethiscode/Gorgeous-Whatsapp

lovethiscode commented 3 years ago

in the latest WhatsApp version, Keystore.xml file has changed and "client_static_keypair" changed to "client_static_keypair_pwd_enc" , it's a encrypted value for the old "client_static_keypair" used in login. the question is how to decrypt "client_static_keypair_pwd_enc" to get "client_static_keypair" so I can login with it ?

There is an Android program that can help you. It can parse the encrypted keypair and export WhatsApp's environment. It also provides a Java version of WhatsApp implementation, which is still being improved.

https://github.com/lovethiscode/Gorgeous-Whatsapp

ben221199 commented 3 years ago

There is an Android program that can help you. It can parse the encrypted keypair and export WhatsApp's environment. It also provides a Java version of WhatsApp implementation, which is still being improved.

https://github.com/lovethiscode/Gorgeous-Whatsapp

Hmmm self-promotion 😂 But I will take a look if you have some useful code for me

lovethiscode commented 3 years ago

There is an Android program that can help you. It can parse the encrypted keypair and export WhatsApp's environment. It also provides a Java version of WhatsApp implementation, which is still being improved. https://github.com/lovethiscode/Gorgeous-Whatsapp

Hmmm self-promotion 😂 But I will take a look if you have some useful code for me

yes, may be there are some useful for you .

GM12Tick commented 3 years ago

Did this work for anyone yet?

ben221199 commented 3 years ago

It is just stringFromJNI that does the magic. But if that magic is correct... I don't know. Is there any source of that code?

ben221199 commented 3 years ago

I fixed the key decryptor. The documentation is here: https://github.com/ben221199/WAPI/wiki/WhatsApp-Keystore

bahtiarp commented 3 years ago

I fixed the key decryptor. The documentation is here: https://github.com/ben221199/WAPI/wiki/WhatsApp-Keystore

thanks @ben221199 , it works now like a charms!

ben221199 commented 3 years ago

@mahmoud-hassan-911 Can you close the issue? The problem is solved.

nightcoder22 commented 3 years ago

@ben221199 hi, how did you managed to successfully logged in using client static key and edge routing info only.. dont you required expid, fdid, id? I tried with random values, as i can not figure out how to extract them.. but i successfully got client static key and edge routing info from keystore and preferences xml. But yowsup fails while handshake. I get handshake error? Can you please help.. Cause registering using yowsup is now near to impossible for me.

lovethiscode commented 3 years ago

image

sometoken is wrong

ben221199 commented 3 years ago

image

sometoken is wrong

What is wrong with it?

ben221199 commented 3 years ago

@ben221199 hi, how did you managed to successfully logged in using client static key and edge routing info only.. dont you required expid, fdid, id? I tried with random values, as i can not figure out how to extract them.. but i successfully got client static key and edge routing info from keystore and preferences xml. But yowsup fails while handshake. I get handshake error? Can you please help.. Cause registering using yowsup is now near to impossible for me.

The encryption of client_static_keypair_pwd_enc does not depend on any fdid, edge_routing_info or other variable, so decrypting the whole thing is very easy. The fdid is generated by the client during registration, the edge_routing_info is given to you by the server. So, they should be saved somewhere. As far as I know, fdid isn't used during handshake, so that could not cause the error. The edge_routing_info is used during handshake, so that one could maybe cause the error, but I don't know for sure. If you can show me the error you get, maybe I can help you.

nightcoder22 commented 3 years ago

Okay, so first things first, I downloaded and rooted bluestack app player. and installed latest whatsapp on it. Registered my number using that official whatsapp apk. Account got registered successfully. No I navigated to root directory to get keystore.xml and preference_light.xml..

Then I used the java program to get Base64 string of client_static_key_pair_pwd_enc.. and took the edge routing info from preferences_light.xml.. Its value was CAwIBQ I assume I need to append == at the end of it.. so I did.. so my edge routing info becomes CAwIBQ==

Now I didnt have expid, fdid and id field to put in config.json... I had one previous config.json from where I copied those three fields to my new config.json.

Finaly this is the config.json which i am using to login to Yowsup.. { "__version__": 1, "cc": "91", "client_static_keypair": "NGUEVGrI6q1ZXaeU5HbL3XiKNmfwZ4e6xtlcDOu2uKS8/UGUKA0mcfyP7Ydoe00JPBd58A4UNC3ytN0B/1AsXg==", "edge_routing_info": "CAwIBQ==", "expid": "3zNKHQTeQXiG8czxo4MSlw==", "fdid": "7ad4763f-13e9-46a3-a0f1-c0a2a92c1cec", "id": "blzgLhuDCJMUevmOSC4tS0kpAWQ=", "mcc": "310", "mnc": "410", "phone": "919XXXXXXX21", "server_static_public": "LKFtqKAASnxIgl89fmUjtpxpL8WVkwPZLMk3ybT3ggI=", "sim_mcc": "310", "sim_mnc": "410" }

I hit this command in terminal.. demos -y -d -c .config/yowsup/919XXXXXXX21/config.json

The output i am getting is this.. `D 2021-03-06 19:15:05,367 yowsup.config.manager - load_path(path=.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:05,367 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:05,367 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:05,367 yowsup.config.manager - Loading config D 2021-03-06 19:15:05,367 yowsup.config.manager - Detecting config for username=919XXXXXXX21, dir=/home/ubuntu/.config/yowsup/919XXXXXXX21/ D 2021-03-06 19:15:05,367 yowsup.config.manager - Trying /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:05,367 yowsup.config.manager - load_path(path=/home/ubuntu/.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:05,367 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:05,367 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:05,367 yowsup.config.manager - Loading config D 2021-03-06 19:15:05,367 yowsup-cli - starting cmd yowsup-cli v3.2.0 yowsup v3.2.3

Copyright (c) 2012-2019 Tarek Galal http://www.openwhatsapp.org

This software is provided free of charge. Copying and redistribution is encouraged.

If you appreciate this software and you would like to support future development please consider donating: http://openwhatsapp.org/yowsup/donate

D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Initializing stack D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Network Layer D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Noise Segments Layer D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Noise Layer D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Coder Layer D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed Logger Layer D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed <yowsup.layers.axolotl.layer_control.AxolotlControlLayer object at 0x7feba4c35250> D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed Axolotl Layer - <yowsup.layers.axolotl.layer_receive.AxolotlReceivelayer object at 0x7feba4d84450> D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed Authentication Layer - Messages Layer - Receipt Layer - Ack Layer - Presence Layer - Ib Layer - Iq Layer - notification Ib Layer - Iq Layer - Chatstate Layer - call Layer - Groups Iq Layer - Media Layer - Privacy Layer - Profiles Layer D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed CLI Interface Layer Yowsup Cli client

Type /help for available commands

D 2021-03-06 19:15:12,132 yowsup.layers.network.layer - Created asyncore dispatcher I 2021-03-06 19:15:12,132 yowsup.layers.network.layer - Connecting to e3.whatsapp.net:443 D 2021-03-06 19:15:12,132 yowsup.layers.network.dispatcher.dispatcher_asyncore - connect(('e3.whatsapp.net', 443)) D 2021-03-06 19:15:12,484 yowsup.layers.network.dispatcher.dispatcher_asyncore - handle_connect D 2021-03-06 19:15:12,484 yowsup.layers.network.layer - Connected D 2021-03-06 19:15:12,484 yowsup.axolotl.factory - get_manager(username=919XXXXXXX21) D 2021-03-06 19:15:12,501 yowsup.axolotl.manager - Initialized AxolotlManager [username=919XXXXXXX21, db=/home/ubuntu/.config/yowsup/919XXXXXXX21/axolotl.db] D 2021-03-06 19:15:12,501 yowsup.axolotl.manager - level_prekeys(force=False) D 2021-03-06 19:15:12,502 yowsup.axolotl.manager - len(pending_prekeys) = 0 I 2021-03-06 19:15:12,502 yowsup.axolotl.manager - Generating 812 prekeys I 2021-03-06 19:15:12,624 yowsup.axolotl.manager - Storing 812 prekeys D 2021-03-06 19:15:13,330 yowsup.axolotl.manager - load_unsent_prekeys I 2021-03-06 19:15:13,332 yowsup.axolotl.manager - Loaded 812 unsent prekeys D 2021-03-06 19:15:13,332 yowsup.axolotl.factory - get_manager(username=919XXXXXXX21) D 2021-03-06 19:15:13,332 yowsup.axolotl.manager - Initialized AxolotlManager [username=919XXXXXXX21, db=/home/ubuntu/.config/yowsup/919XXXXXXX21/axolotl.db] D 2021-03-06 19:15:13,333 yowsup.axolotl.factory - get_manager(username=919XXXXXXX21) D 2021-03-06 19:15:13,333 yowsup.axolotl.manager - Initialized AxolotlManager [username=919XXXXXXX21, db=/home/ubuntu/.config/yowsup/919XXXXXXX21/axolotl.db] D 2021-03-06 19:15:13,333 yowsup.layers.noise.layer - Received auth event D 2021-03-06 19:15:13,333 yowsup.config.manager - Detecting config for username=919XXXXXXX21, dir=/home/ubuntu/.config/yowsup/919XXXXXXX21/ D 2021-03-06 19:15:13,333 yowsup.config.manager - Trying /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:13,333 yowsup.config.manager - load_path(path=/home/ubuntu/.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:13,333 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:13,333 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:13,333 yowsup.config.manager - Loading config D 2021-03-06 19:15:13,334 yowsup.env.env - Env not set, setting it to android D 2021-03-06 19:15:13,334 yowsup.env.env - Current env changed to android D 2021-03-06 19:15:13,334 yowsup.layers.noise.layer - Performing handshake [username= 919XXXXXXX21, passive=True] D 2021-03-06 19:15:13,334 yowsup.layers.noise.layer - Starting handshake worker D 2021-03-06 19:15:14,116 yowsup.config.manager - Detecting config for username=919XXXXXXX21, dir=/home/ubuntu/.config/yowsup/919XXXXXXX21/ D 2021-03-06 19:15:14,116 yowsup.config.manager - Trying /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:14,116 yowsup.config.manager - load_path(path=/home/ubuntu/.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:14,116 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:14,116 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:14,116 yowsup.config.manager - Loading config D 2021-03-06 19:15:14,117 yowsup.common.tools - writePhoneData(phone=919XXXXXXX21, name=config.json, val=[omitted]) D 2021-03-06 19:15:14,117 yowsup.common.tools - Writing /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:14,584 yowsup.layers.network.dispatcher.dispatcher_asyncore - handle_close D 2021-03-06 19:15:14,584 yowsup.layers.network.layer - Disconnected D 2021-03-06 19:15:14,673 yowsup.layers.axolotl.layer_control - Disconnected, reboot_connect? = False general: Disconnected: offline: offline: `

I think this is failing on handshake error.. I am sure client_static_key_pair and edge_routing_info both are correct as per my knowledge.

ben221199 commented 3 years ago

I think it is your yowsup setup that is failing. I also got this error today in yowsup when I knew that my keypair was 100% correct.

lovethiscode commented 3 years ago

Okay, so first things first, I downloaded and rooted bluestack app player. and installed latest whatsapp on it. Registered my number using that official whatsapp apk. Account got registered successfully. No I navigated to root directory to get keystore.xml and preference_light.xml..

Then I used the java program to get Base64 string of client_static_key_pair_pwd_enc.. and took the edge routing info from preferences_light.xml.. Its value was CAwIBQ I assume I need to append == at the end of it.. so I did.. so my edge routing info becomes CAwIBQ==

Now I didnt have expid, fdid and id field to put in config.json... I had one previous config.json from where I copied those three fields to my new config.json.

Finaly this is the config.json which i am using to login to Yowsup.. { "__version__": 1, "cc": "91", "client_static_keypair": "NGUEVGrI6q1ZXaeU5HbL3XiKNmfwZ4e6xtlcDOu2uKS8/UGUKA0mcfyP7Ydoe00JPBd58A4UNC3ytN0B/1AsXg==", "edge_routing_info": "CAwIBQ==", "expid": "3zNKHQTeQXiG8czxo4MSlw==", "fdid": "7ad4763f-13e9-46a3-a0f1-c0a2a92c1cec", "id": "blzgLhuDCJMUevmOSC4tS0kpAWQ=", "mcc": "310", "mnc": "410", "phone": "919XXXXXXX21", "server_static_public": "LKFtqKAASnxIgl89fmUjtpxpL8WVkwPZLMk3ybT3ggI=", "sim_mcc": "310", "sim_mnc": "410" }

I hit this command in terminal.. demos -y -d -c .config/yowsup/919XXXXXXX21/config.json

The output i am getting is this.. `D 2021-03-06 19:15:05,367 yowsup.config.manager - load_path(path=.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:05,367 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:05,367 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:05,367 yowsup.config.manager - Loading config D 2021-03-06 19:15:05,367 yowsup.config.manager - Detecting config for username=919XXXXXXX21, dir=/home/ubuntu/.config/yowsup/919XXXXXXX21/ D 2021-03-06 19:15:05,367 yowsup.config.manager - Trying /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:05,367 yowsup.config.manager - load_path(path=/home/ubuntu/.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:05,367 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:05,367 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:05,367 yowsup.config.manager - Loading config D 2021-03-06 19:15:05,367 yowsup-cli - starting cmd yowsup-cli v3.2.0 yowsup v3.2.3

Copyright (c) 2012-2019 Tarek Galal http://www.openwhatsapp.org

This software is provided free of charge. Copying and redistribution is encouraged.

If you appreciate this software and you would like to support future development please consider donating: http://openwhatsapp.org/yowsup/donate

D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Initializing stack

D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Network Layer D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Noise Segments Layer D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Noise Layer D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Coder Layer D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed Logger Layer D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed <yowsup.layers.axolotl.layer_control.AxolotlControlLayer object at 0x7feba4c35250> D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed Axolotl Layer - <yowsup.layers.axolotl.layer_receive.AxolotlReceivelayer object at 0x7feba4d84450> D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed Authentication Layer - Messages Layer - Receipt Layer - Ack Layer - Presence Layer - Ib Layer - Iq Layer - notification Ib Layer - Iq Layer - Chatstate Layer - call Layer - Groups Iq Layer - Media Layer - Privacy Layer - Profiles Layer D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed CLI Interface Layer Yowsup Cli client Type /help for available commands

D 2021-03-06 19:15:12,132 yowsup.layers.network.layer - Created asyncore dispatcher I 2021-03-06 19:15:12,132 yowsup.layers.network.layer - Connecting to e3.whatsapp.net:443 D 2021-03-06 19:15:12,132 yowsup.layers.network.dispatcher.dispatcher_asyncore - connect(('e3.whatsapp.net', 443)) D 2021-03-06 19:15:12,484 yowsup.layers.network.dispatcher.dispatcher_asyncore - handle_connect D 2021-03-06 19:15:12,484 yowsup.layers.network.layer - Connected D 2021-03-06 19:15:12,484 yowsup.axolotl.factory - get_manager(username=919XXXXXXX21) D 2021-03-06 19:15:12,501 yowsup.axolotl.manager - Initialized AxolotlManager [username=919XXXXXXX21, db=/home/ubuntu/.config/yowsup/919XXXXXXX21/axolotl.db] D 2021-03-06 19:15:12,501 yowsup.axolotl.manager - level_prekeys(force=False) D 2021-03-06 19:15:12,502 yowsup.axolotl.manager - len(pending_prekeys) = 0 I 2021-03-06 19:15:12,502 yowsup.axolotl.manager - Generating 812 prekeys I 2021-03-06 19:15:12,624 yowsup.axolotl.manager - Storing 812 prekeys D 2021-03-06 19:15:13,330 yowsup.axolotl.manager - load_unsent_prekeys I 2021-03-06 19:15:13,332 yowsup.axolotl.manager - Loaded 812 unsent prekeys D 2021-03-06 19:15:13,332 yowsup.axolotl.factory - get_manager(username=919XXXXXXX21) D 2021-03-06 19:15:13,332 yowsup.axolotl.manager - Initialized AxolotlManager [username=919XXXXXXX21, db=/home/ubuntu/.config/yowsup/919XXXXXXX21/axolotl.db] D 2021-03-06 19:15:13,333 yowsup.axolotl.factory - get_manager(username=919XXXXXXX21) D 2021-03-06 19:15:13,333 yowsup.axolotl.manager - Initialized AxolotlManager [username=919XXXXXXX21, db=/home/ubuntu/.config/yowsup/919XXXXXXX21/axolotl.db] D 2021-03-06 19:15:13,333 yowsup.layers.noise.layer - Received auth event D 2021-03-06 19:15:13,333 yowsup.config.manager - Detecting config for username=919XXXXXXX21, dir=/home/ubuntu/.config/yowsup/919XXXXXXX21/ D 2021-03-06 19:15:13,333 yowsup.config.manager - Trying /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:13,333 yowsup.config.manager - load_path(path=/home/ubuntu/.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:13,333 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:13,333 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:13,333 yowsup.config.manager - Loading config D 2021-03-06 19:15:13,334 yowsup.env.env - Env not set, setting it to android D 2021-03-06 19:15:13,334 yowsup.env.env - Current env changed to android D 2021-03-06 19:15:13,334 yowsup.layers.noise.layer - Performing handshake [username= 919XXXXXXX21, passive=True] D 2021-03-06 19:15:13,334 yowsup.layers.noise.layer - Starting handshake worker D 2021-03-06 19:15:14,116 yowsup.config.manager - Detecting config for username=919XXXXXXX21, dir=/home/ubuntu/.config/yowsup/919XXXXXXX21/ D 2021-03-06 19:15:14,116 yowsup.config.manager - Trying /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:14,116 yowsup.config.manager - load_path(path=/home/ubuntu/.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:14,116 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:14,116 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:14,116 yowsup.config.manager - Loading config D 2021-03-06 19:15:14,117 yowsup.common.tools - writePhoneData(phone=919XXXXXXX21, name=config.json, val=[omitted]) D 2021-03-06 19:15:14,117 yowsup.common.tools - Writing /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:14,584 yowsup.layers.network.dispatcher.dispatcher_asyncore - handle_close D 2021-03-06 19:15:14,584 yowsup.layers.network.layer - Disconnected D 2021-03-06 19:15:14,673 yowsup.layers.axolotl.layer_control - Disconnected, reboot_connect? = False general: Disconnected: offline: offline: `

I think this is failing on handshake error.. I am sure client_static_key_pair and edge_routing_info both are correct as per my knowledge.

You can use this apk tool to extract the config.json.file and log in again。

![Uploading image.png…]()

yowsup_config_tool.apk

https://github.com/lovethiscode/Gorgeous-Whatsapp

nightcoder22 commented 3 years ago

Okay, so first things first, I downloaded and rooted bluestack app player. and installed latest whatsapp on it. Registered my number using that official whatsapp apk. Account got registered successfully. No I navigated to root directory to get keystore.xml and preference_light.xml..

Then I used the java program to get Base64 string of client_static_key_pair_pwd_enc.. and took the edge routing info from preferences_light.xml.. Its value was CAwIBQ I assume I need to append == at the end of it.. so I did.. so my edge routing info becomes CAwIBQ==

Now I didnt have expid, fdid and id field to put in config.json... I had one previous config.json from where I copied those three fields to my new config.json.

Finaly this is the config.json which i am using to login to Yowsup.. { "version": 1, "cc": "91", "client_static_keypair": "NGUEVGrI6q1ZXaeU5HbL3XiKNmfwZ4e6xtlcDOu2uKS8/UGUKA0mcfyP7Ydoe00JPBd58A4UNC3ytN0B/1AsXg==", "edge_routing_info": "CAwIBQ==", "expid": "3zNKHQTeQXiG8czxo4MSlw==", "fdid": "7ad4763f-13e9-46a3-a0f1-c0a2a92c1cec", "id": "blzgLhuDCJMUevmOSC4tS0kpAWQ=", "mcc": "310", "mnc": "410", "phone": "919XXXXXXX21", "server_static_public": "LKFtqKAASnxIgl89fmUjtpxpL8WVkwPZLMk3ybT3ggI=", "sim_mcc": "310", "sim_mnc": "410" }

I hit this command in terminal.. demos -y -d -c .config/yowsup/919XXXXXXX21/config.json

The output i am getting is this.. `D 2021-03-06 19:15:05,367 yowsup.config.manager - load_path(path=.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:05,367 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:05,367 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:05,367 yowsup.config.manager - Loading config D 2021-03-06 19:15:05,367 yowsup.config.manager - Detecting config for username=919XXXXXXX21, dir=/home/ubuntu/.config/yowsup/919XXXXXXX21/ D 2021-03-06 19:15:05,367 yowsup.config.manager - Trying /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:05,367 yowsup.config.manager - load_path(path=/home/ubuntu/.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:05,367 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:05,367 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:05,367 yowsup.config.manager - Loading config D 2021-03-06 19:15:05,367 yowsup-cli - starting cmd yowsup-cli v3.2.0 yowsup v3.2.3

Copyright (c) 2012-2019 Tarek Galal http://www.openwhatsapp.org

This software is provided free of charge. Copying and redistribution is encouraged.

If you appreciate this software and you would like to support future development please consider donating: http://openwhatsapp.org/yowsup/donate

D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Initializing stack D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Network Layer D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Noise Segments Layer D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Noise Layer D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Coder Layer D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed Logger Layer D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed <yowsup.layers.axolotl.layer_control.AxolotlControlLayer object at 0x7feba4c35250> D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed Axolotl Layer - <yowsup.layers.axolotl.layer_receive.AxolotlReceivelayer object at 0x7feba4d84450> D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed Authentication Layer - Messages Layer - Receipt Layer - Ack Layer - Presence Layer - Ib Layer - Iq Layer - notification Ib Layer - Iq Layer - Chatstate Layer - call Layer - Groups Iq Layer - Media Layer - Privacy Layer - Profiles Layer D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed CLI Interface Layer Yowsup Cli client Type /help for available commands

D 2021-03-06 19:15:12,132 yowsup.layers.network.layer - Created asyncore dispatcher I 2021-03-06 19:15:12,132 yowsup.layers.network.layer - Connecting to e3.whatsapp.net:443 D 2021-03-06 19:15:12,132 yowsup.layers.network.dispatcher.dispatcher_asyncore - connect(('e3.whatsapp.net', 443)) D 2021-03-06 19:15:12,484 yowsup.layers.network.dispatcher.dispatcher_asyncore - handle_connect D 2021-03-06 19:15:12,484 yowsup.layers.network.layer - Connected D 2021-03-06 19:15:12,484 yowsup.axolotl.factory - get_manager(username=919XXXXXXX21) D 2021-03-06 19:15:12,501 yowsup.axolotl.manager - Initialized AxolotlManager [username=919XXXXXXX21, db=/home/ubuntu/.config/yowsup/919XXXXXXX21/axolotl.db] D 2021-03-06 19:15:12,501 yowsup.axolotl.manager - level_prekeys(force=False) D 2021-03-06 19:15:12,502 yowsup.axolotl.manager - len(pending_prekeys) = 0 I 2021-03-06 19:15:12,502 yowsup.axolotl.manager - Generating 812 prekeys I 2021-03-06 19:15:12,624 yowsup.axolotl.manager - Storing 812 prekeys D 2021-03-06 19:15:13,330 yowsup.axolotl.manager - load_unsent_prekeys I 2021-03-06 19:15:13,332 yowsup.axolotl.manager - Loaded 812 unsent prekeys D 2021-03-06 19:15:13,332 yowsup.axolotl.factory - get_manager(username=919XXXXXXX21) D 2021-03-06 19:15:13,332 yowsup.axolotl.manager - Initialized AxolotlManager [username=919XXXXXXX21, db=/home/ubuntu/.config/yowsup/919XXXXXXX21/axolotl.db] D 2021-03-06 19:15:13,333 yowsup.axolotl.factory - get_manager(username=919XXXXXXX21) D 2021-03-06 19:15:13,333 yowsup.axolotl.manager - Initialized AxolotlManager [username=919XXXXXXX21, db=/home/ubuntu/.config/yowsup/919XXXXXXX21/axolotl.db] D 2021-03-06 19:15:13,333 yowsup.layers.noise.layer - Received auth event D 2021-03-06 19:15:13,333 yowsup.config.manager - Detecting config for username=919XXXXXXX21, dir=/home/ubuntu/.config/yowsup/919XXXXXXX21/ D 2021-03-06 19:15:13,333 yowsup.config.manager - Trying /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:13,333 yowsup.config.manager - load_path(path=/home/ubuntu/.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:13,333 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:13,333 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:13,333 yowsup.config.manager - Loading config D 2021-03-06 19:15:13,334 yowsup.env.env - Env not set, setting it to android D 2021-03-06 19:15:13,334 yowsup.env.env - Current env changed to android D 2021-03-06 19:15:13,334 yowsup.layers.noise.layer - Performing handshake [username= 919XXXXXXX21, passive=True] D 2021-03-06 19:15:13,334 yowsup.layers.noise.layer - Starting handshake worker D 2021-03-06 19:15:14,116 yowsup.config.manager - Detecting config for username=919XXXXXXX21, dir=/home/ubuntu/.config/yowsup/919XXXXXXX21/ D 2021-03-06 19:15:14,116 yowsup.config.manager - Trying /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:14,116 yowsup.config.manager - load_path(path=/home/ubuntu/.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:14,116 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:14,116 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:14,116 yowsup.config.manager - Loading config D 2021-03-06 19:15:14,117 yowsup.common.tools - writePhoneData(phone=919XXXXXXX21, name=config.json, val=[omitted]) D 2021-03-06 19:15:14,117 yowsup.common.tools - Writing /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:14,584 yowsup.layers.network.dispatcher.dispatcher_asyncore - handle_close D 2021-03-06 19:15:14,584 yowsup.layers.network.layer - Disconnected D 2021-03-06 19:15:14,673 yowsup.layers.axolotl.layer_control - Disconnected, reboot_connect? = False general: Disconnected: offline: offline: `

I think this is failing on handshake error.. I am sure client_static_key_pair and edge_routing_info both are correct as per my knowledge.

You can use this apk tool to extract the config.json.file and log in again。

yowsup_config_tool.apk

https://github.com/lovethiscode/Gorgeous-Whatsapp

Perfect!! This apk worked perfectly on rooted device and gives you the required config.. Just few thing I need to tweak on generated json..

  1. it adds '/' before \ in base64 encoded string.. which i need to remove manually
  2. the edge_routing_info has padding issue.. adding '==' to the end solves it.
  3. key 'login' is identified as invalid which I need to remove.

Other than this the config works perfect! Thank you soo much for writing this app. Upvoted. I also noticed that the server_static_key generated by @ben221199 programs is different than the one generated by your apk.

nightcoder22 commented 3 years ago

Also @ben or @lovethiscode Can you share the zip of your working yowsup? If possible can you mail it to me on hiwaleakshay@gmail.com

lovethiscode commented 3 years ago

Okay, so first things first, I downloaded and rooted bluestack app player. and installed latest whatsapp on it. Registered my number using that official whatsapp apk. Account got registered successfully. No I navigated to root directory to get keystore.xml and preference_light.xml.. Then I used the java program to get Base64 string of client_static_key_pair_pwd_enc.. and took the edge routing info from preferences_light.xml.. Its value was CAwIBQ I assume I need to append == at the end of it.. so I did.. so my edge routing info becomes CAwIBQ== Now I didnt have expid, fdid and id field to put in config.json... I had one previous config.json from where I copied those three fields to my new config.json. Finaly this is the config.json which i am using to login to Yowsup.. { "version": 1, "cc": "91", "client_static_keypair": "NGUEVGrI6q1ZXaeU5HbL3XiKNmfwZ4e6xtlcDOu2uKS8/UGUKA0mcfyP7Ydoe00JPBd58A4UNC3ytN0B/1AsXg==", "edge_routing_info": "CAwIBQ==", "expid": "3zNKHQTeQXiG8czxo4MSlw==", "fdid": "7ad4763f-13e9-46a3-a0f1-c0a2a92c1cec", "id": "blzgLhuDCJMUevmOSC4tS0kpAWQ=", "mcc": "310", "mnc": "410", "phone": "919XXXXXXX21", "server_static_public": "LKFtqKAASnxIgl89fmUjtpxpL8WVkwPZLMk3ybT3ggI=", "sim_mcc": "310", "sim_mnc": "410" } I hit this command in terminal.. demos -y -d -c .config/yowsup/919XXXXXXX21/config.json The output i am getting is this.. D 2021-03-06 19:15:05,367 yowsup.config.manager - load_path(path=.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:05,367 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:05,367 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:05,367 yowsup.config.manager - Loading config D 2021-03-06 19:15:05,367 yowsup.config.manager - Detecting config for username=919XXXXXXX21, dir=/home/ubuntu/.config/yowsup/919XXXXXXX21/ D 2021-03-06 19:15:05,367 yowsup.config.manager - Trying /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:05,367 yowsup.config.manager - load_path(path=/home/ubuntu/.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:05,367 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:05,367 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:05,367 yowsup.config.manager - Loading config D 2021-03-06 19:15:05,367 yowsup-cli - starting cmd yowsup-cli v3.2.0 yowsup v3.2.3 Copyright (c) 2012-2019 Tarek Galal http://www.openwhatsapp.org This software is provided free of charge. Copying and redistribution is encouraged. If you appreciate this software and you would like to support future development please consider donating: http://openwhatsapp.org/yowsup/donate D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Initializing stack D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Network Layer D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Noise Segments Layer D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Noise Layer D 2021-03-06 19:15:05,528 yowsup.stacks.yowstack - Constructed Coder Layer D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed Logger Layer D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed <yowsup.layers.axolotl.layer_control.AxolotlControlLayer object at 0x7feba4c35250> D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed Axolotl Layer - <yowsup.layers.axolotl.layer_receive.AxolotlReceivelayer object at 0x7feba4d84450> D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed Authentication Layer - Messages Layer - Receipt Layer - Ack Layer - Presence Layer - Ib Layer - Iq Layer - notification Ib Layer - Iq Layer - Chatstate Layer - call Layer - Groups Iq Layer - Media Layer - Privacy Layer - Profiles Layer D 2021-03-06 19:15:05,529 yowsup.stacks.yowstack - Constructed CLI Interface Layer Yowsup Cli client Type /help for available commands D 2021-03-06 19:15:12,132 yowsup.layers.network.layer - Created asyncore dispatcher I 2021-03-06 19:15:12,132 yowsup.layers.network.layer - Connecting to e3.whatsapp.net:443 D 2021-03-06 19:15:12,132 yowsup.layers.network.dispatcher.dispatcher_asyncore - connect(('e3.whatsapp.net', 443)) D 2021-03-06 19:15:12,484 yowsup.layers.network.dispatcher.dispatcher_asyncore - handle_connect D 2021-03-06 19:15:12,484 yowsup.layers.network.layer - Connected D 2021-03-06 19:15:12,484 yowsup.axolotl.factory - get_manager(username=919XXXXXXX21) D 2021-03-06 19:15:12,501 yowsup.axolotl.manager - Initialized AxolotlManager [username=919XXXXXXX21, db=/home/ubuntu/.config/yowsup/919XXXXXXX21/axolotl.db] D 2021-03-06 19:15:12,501 yowsup.axolotl.manager - level_prekeys(force=False) D 2021-03-06 19:15:12,502 yowsup.axolotl.manager - len(pending_prekeys) = 0 I 2021-03-06 19:15:12,502 yowsup.axolotl.manager - Generating 812 prekeys I 2021-03-06 19:15:12,624 yowsup.axolotl.manager - Storing 812 prekeys D 2021-03-06 19:15:13,330 yowsup.axolotl.manager - load_unsent_prekeys I 2021-03-06 19:15:13,332 yowsup.axolotl.manager - Loaded 812 unsent prekeys D 2021-03-06 19:15:13,332 yowsup.axolotl.factory - get_manager(username=919XXXXXXX21) D 2021-03-06 19:15:13,332 yowsup.axolotl.manager - Initialized AxolotlManager [username=919XXXXXXX21, db=/home/ubuntu/.config/yowsup/919XXXXXXX21/axolotl.db] D 2021-03-06 19:15:13,333 yowsup.axolotl.factory - get_manager(username=919XXXXXXX21) D 2021-03-06 19:15:13,333 yowsup.axolotl.manager - Initialized AxolotlManager [username=919XXXXXXX21, db=/home/ubuntu/.config/yowsup/919XXXXXXX21/axolotl.db] D 2021-03-06 19:15:13,333 yowsup.layers.noise.layer - Received auth event D 2021-03-06 19:15:13,333 yowsup.config.manager - Detecting config for username=919XXXXXXX21, dir=/home/ubuntu/.config/yowsup/919XXXXXXX21/ D 2021-03-06 19:15:13,333 yowsup.config.manager - Trying /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:13,333 yowsup.config.manager - load_path(path=/home/ubuntu/.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:13,333 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:13,333 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:13,333 yowsup.config.manager - Loading config D 2021-03-06 19:15:13,334 yowsup.env.env - Env not set, setting it to android D 2021-03-06 19:15:13,334 yowsup.env.env - Current env changed to android D 2021-03-06 19:15:13,334 yowsup.layers.noise.layer - Performing handshake [username= 919XXXXXXX21, passive=True] D 2021-03-06 19:15:13,334 yowsup.layers.noise.layer - Starting handshake worker D 2021-03-06 19:15:14,116 yowsup.config.manager - Detecting config for username=919XXXXXXX21, dir=/home/ubuntu/.config/yowsup/919XXXXXXX21/ D 2021-03-06 19:15:14,116 yowsup.config.manager - Trying /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:14,116 yowsup.config.manager - load_path(path=/home/ubuntu/.config/yowsup/919XXXXXXX21/config.json) D 2021-03-06 19:15:14,116 yowsup.config.manager - Detected config type: json D 2021-03-06 19:15:14,116 yowsup.config.manager - Opening config for reading D 2021-03-06 19:15:14,116 yowsup.config.manager - Loading config D 2021-03-06 19:15:14,117 yowsup.common.tools - writePhoneData(phone=919XXXXXXX21, name=config.json, val=[omitted]) D 2021-03-06 19:15:14,117 yowsup.common.tools - Writing /home/ubuntu/.config/yowsup/919XXXXXXX21/config.json D 2021-03-06 19:15:14,584 yowsup.layers.network.dispatcher.dispatcher_asyncore - handle_close D 2021-03-06 19:15:14,584 yowsup.layers.network.layer - Disconnected D 2021-03-06 19:15:14,673 yowsup.layers.axolotl.layer_control - Disconnected, reboot_connect? = False general: Disconnected: offline: offline: I think this is failing on handshake error.. I am sure client_static_key_pair and edge_routing_info both are correct as per my knowledge. You can use this apk tool to extract the config.json.file and log in again。 yowsup_config_tool.apk https://github.com/lovethiscode/Gorgeous-Whatsapp

Perfect!! This apk worked perfectly on rooted device and gives you the required config.. Just few thing I need to tweak on generated json..

  1. it adds '/' before \ in base64 encoded string.. which i need to remove manually
  2. the edge_routing_info has padding issue.. adding '==' to the end solves it.
  3. key 'login' is identified as invalid which I need to remove.

Other than this the config works perfect! Thank you soo much for writing this app. Upvoted. I also noticed that the server_static_key generated by @ben221199 programs is different than the one generated by your apk.

I have fixed the above problem, but the first one should be working and the APK has been updated.

please Let more people know. may be you can give a star. @nightcoder22

@ben221199 your sometoken is wrong。so handshake failed.