📣 📣 📣 📣 The java command has recently been changed after the publishing of this video tutorial so copy the new command and use output.zip instead of countville.pem; the rest of the steps are the same as shown in the video. New java command: 27 Dec 2023 $ java -jar pepk.jar --keystore=foo.keystore --alias=foo --output=output.zip --include-cert --rsa-aes-encryption --encryption-key-path=/path/to/encryption_public_key.pem
hey i follow this step and it worked but now i have a zip file so how can i upload it google because i can not upload zip so please can you help me with this ?
You do get a zip file after new command changes. Previously, we had provided the file extension for output ourselves, so I used to make it .pem myself, but now the generated file extension has been provided by Google, so .zip should work when you upload it.
The password should have been created by you when you created the key. There are usually two passwords. One that you made for your keystore and the other one is for your app's key. You might have given the same password for both your keystore and your app's key. Try entering the same password.
@ObsidianSoftEducation C:\Users\Nur>java -version java version "20.0.2" 2023-07-18 Java(TM) SE Runtime Environment (build 20.0.2+9-78) Java HotSpot(TM) 64-Bit Server VM (build 20.0.2+9-78, mixed mode, sharing) C:\Users\Nur>java -jar E:\Projects\DontDelete\pepk.jar --keystore=E:\Projects\DontDelete\PinBallArcade.keystore --alias=PinBallArcade --output=E:\Projects\DontDelete\Output\output.zip --include-cert --rsa-aes-encryption --encryption-key-path=E:\Projects\DontDelete\encryption_public_key.pem Enter password for store 'PinBallArcade.keystore': Enter password for key 'PinBallArcade': Error: Unable to export or encrypt the private key java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/NONE/OAEPWithSHA1AndMGF1Padding at java.base/javax.crypto.Cipher.getInstance(Cipher.java:574) at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.encryptPrivateKeyWithCkmRsaAesKeyWrapEncryption(ExportEncryptedPrivateKeyTool.java:284) at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.run(ExportEncryptedPrivateKeyTool.java:213) at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.main(ExportEncryptedPrivateKeyTool.java:165)
I'm getting "Unable to parse the input" error whenever I'm trying to run the code in cmd. And since there were spaces in the name of directories I put quotes(" ") at the start and end of all paths,still I'm getting this. Could you please help? Thanks in advance. Edit :- Also, there is this "java.lang.NullPointerException - Output not specified" error.
Copy the files to the downloads folder to avoid spaces. Also, you need to provide a name for the key that will be generated by the command. In my case, I had written \countville.pem after the path of the output folder.
So this is if your app is already signed using Google , what if you have an existing app that was published without Google app signing , could I do the same ? or do I have to submit a totally new app instead to enable Google app signing ? (fyi i lost my original app signing key =) )
No, this video is for apps that weren't signed using Google Play App signing. For example, the app I am showing in this video was made using Solar2D and not Android Studio. The video explains how you can enroll in Play app signing using your existing keystore and key that you used when publishing the app for the first time. Therefore, it assumes that you haven't lost them. If you have lost your keystore and key, you can contact Play Console support. They might ask for some proof that you actually own the app and might let you publish it again as an existing app.
Try using it directly in command with jks extension, and if that doesn't work, then keystore extension. If both don't work, convert keystore to jks. There are many solutions on the Internet but this seems good: stackoverflow.com/questions/49924556/convert-keystore-to-jks-to-sign-apk/49925137#49925137
First of all check that you have given the correct file path for the jar file. Also, have you installed openjdk 20 and set it as Java home? That process has also been explained in the video. If you have done all that too and are also running command prompt as a system administrator and your file path is correct too then I am afraid that there is something wrong with your key store file.
@@ObsidianSoftEducation Hello its me from different account I follow your video carefully and did all of steps but the error not going . Please help me my app have issue I need to update it ASAP. This is my Command: java -jar C:\Users\TAWAKAL LAPTOP\Downloads\pepk.jar --keystore=C:\Users\TAWAKAL LAPTOP\Downloads\sqs.keystore --alias=sqs --output=C:\Users\TAWAKAL LAPTOP\Desktop\output\sqs.pem --rsa-aes-encryption --encryption-key-path=C:\Users\TAWAKAL LAPTOP\Downloads\encryption_public_key.pem when I paste this command on cmd it gives error: Error: Unable to access jarfile C:\Users\TAWAKAL
Sorry to hear that you didn't find it easy. What problem did you encounter? Ensure you know where the Java keystore for your app is on your computer. Also, you should know the name of the alias i.e. key for your app within this keystore. The tutorial assumes that you have done all of this while publishing your app and now, you need to just enroll in play app signing for uploading an update to your app. If you have lost your keystore file or don't know the passwords then you can't run this java command to generate your encrypted key for enrolling in play app signing.
Error: Unable to export or encrypt the private key@@ObsidianSoftEducation java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/NONE/OAEPWithSHA1AndMGF1Padding I'm phasing these two difficulties.
It is your Java keystore file. It contains all the private keys for your apps. It must be somewhere on your computer. It might not be named "ks" as this is the name I gave to my keystore file. But it should have the extension jks. It is essential for this play app signing tutorial to work. If you have lost your keystore and your original key then you will have to contact Google Play Console for help.
Unable to parse the input: [--keystore=C:\Users\Administrator\Documents\andro\key0.jks, --alias=key0, --output=, C:\Users\Administrator\Desktop\AndroOutput\output.zip, --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a]
Error: Unable to export or encrypt the private key how to fix it mam.........java -jar C:\Users\HP\Downloads\pepk.jar --keystore=C:\acer1\Zcandy\threedi_neww\3d-3d_key.jks --alias=threedi --output=C:\acer1\Zcandy\threedi_neww\key_path\threedi.pem --rsa-aes-encryption --encryption-key-path=C:\Users\HP\Downloads\encryption_public_key.pem
Please see pinned comment. The command has recently been changed by Google so use the latest command. Also, the new key generated will not be .pem but .zip previously, google hadn't given a file type for the generated key so I used to make it .pem but now, in the new command, they have given the file type .zip for the new key so use .zip instead of .pem
The new play console command is this: java -jar pepk.jar --keystore=foo.keystore --alias=foo --output=output.zip --include-cert --rsa-aes-encryption --encryption-key-path=/path/to/encryption_public_key.pem Where is "include-cert" in your command? Also, the output.zip in your command should be the path of a folder on your computer followed by \output.zip. So, --output = "some folder path on your computer"\output.zip
📣 📣 📣 📣
The java command has recently been changed after the publishing of this video tutorial so copy the new command and use output.zip instead of countville.pem; the rest of the steps are the same as shown in the video.
New java command: 27 Dec 2023
$ java -jar pepk.jar --keystore=foo.keystore --alias=foo --output=output.zip --include-cert --rsa-aes-encryption --encryption-key-path=/path/to/encryption_public_key.pem
Invalid or corrupt jarfile after new command changes
hey i follow this step and it worked but now i have a zip file so how can i upload it google because i can not upload zip so please can you help me with this ?
You do get a zip file after new command changes. Previously, we had provided the file extension for output ourselves, so I used to make it .pem myself, but now the generated file extension has been provided by Google, so .zip should work when you upload it.
@@aronpaul8987 answered via email too but you can upload zip file now.
@@ObsidianSoftEducation whats ur mail id..mam
This tutorial made the process of enrolling in Play App Signing much easier to understand
This video came just in time when my son was having some problem. Thnx❤
Glad I could help
That's a much needed easy solution. You're doing really good.
Ohhh my dear thanks a lot ... I had a big issues for a week. Thanks again
Most welcome 😊
You just make everything so easy!!! I just love it ❤
Thank you! 😊
It's great to watch this sort of tutorials on this platform, thanks for it 😊
Thanks for this tutorial! I was able to enroll in Play App Signing and upload my app bundle without any problems.
Glad it helped!
Such simple, on point tutorial. Thankyou so much.
Glad it was helpful!
You made everything so easy by explaining every detail. Thanks for sharing 🙏☺️. Keep posting
My pleasure 😊
Very thanks, this tutorial saved me.
Most welcome 😊
This was worth watching. Thanks for sharing all details.
nice video. solved my problem. thank you
Glad it helped
This is a very detailed tutorial. Thanks for sharing this
This tutorial is very helpful. Keep sharing more
Tutorial is easy and easy to learn
I always enjoy listening and watching your videos, very very informative and useful information is shared.
So nice of you
Thank you for the vast knowledge, success!
Most welcome 😊
Very well explained, step by step 😊
Thank you 😊
Thank you for sharing this tutorial ☺️
You made everything so easy thanks for sharing helpfull videos ❤
Thanks for sharing the informative tutorial…keep sharing more content
Thank you, I will
Very detailed tutorial keep sharing
Very helpful and informative tutorial
Thanks for the help dear.
Your tutorial made me understand and overcome the problem.
Very helpful and informative tutorial 😊
Glad it was helpful!
Great Explanation, Thanks
Thank you for watching 😊
7:45 thanks for this kind of tutorial. but I'm not clean here what kind of key password I need to enter. 😰
The password should have been created by you when you created the key. There are usually two passwords. One that you made for your keystore and the other one is for your app's key. You might have given the same password for both your keystore and your app's key. Try entering the same password.
@@ObsidianSoftEducation i gived the same password but it's giving this error
@ObsidianSoftEducation C:\Users\Nur>java -version
java version "20.0.2" 2023-07-18
Java(TM) SE Runtime Environment (build 20.0.2+9-78)
Java HotSpot(TM) 64-Bit Server VM (build 20.0.2+9-78, mixed mode, sharing)
C:\Users\Nur>java -jar E:\Projects\DontDelete\pepk.jar --keystore=E:\Projects\DontDelete\PinBallArcade.keystore --alias=PinBallArcade --output=E:\Projects\DontDelete\Output\output.zip --include-cert --rsa-aes-encryption --encryption-key-path=E:\Projects\DontDelete\encryption_public_key.pem
Enter password for store 'PinBallArcade.keystore':
Enter password for key 'PinBallArcade':
Error: Unable to export or encrypt the private key
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/NONE/OAEPWithSHA1AndMGF1Padding
at java.base/javax.crypto.Cipher.getInstance(Cipher.java:574)
at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.encryptPrivateKeyWithCkmRsaAesKeyWrapEncryption(ExportEncryptedPrivateKeyTool.java:284)
at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.run(ExportEncryptedPrivateKeyTool.java:213)
at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.main(ExportEncryptedPrivateKeyTool.java:165)
@blackboxgamingofficial this is not a password error. You need to use openjdk and set java home properly. This has been explained in this video.
thanks. clear instructions.
Most welcome 😊
Thank you for sharing this easy method
Thanks for liking
Very helpful and informative
Interesting! Thanks for the detailed explanation
Wow, very helpful sharing
thanks ... solved my issue !
Most welcome 😊
thanks, this video solve my issue
Most welcome 😊
This tutorial is very helpful
Wow, this is an excellent tutorial very helpful
Excellent video!
Thank you very much!
I'm getting "Unable to parse the input" error whenever I'm trying to run the code in cmd.
And since there were spaces in the name of directories I put quotes(" ") at the start and end of all paths,still I'm getting this.
Could you please help? Thanks in advance.
Edit :- Also, there is this "java.lang.NullPointerException - Output not specified" error.
Copy the files to the downloads folder to avoid spaces. Also, you need to provide a name for the key that will be generated by the command. In my case, I had written \countville.pem after the path of the output folder.
Nicely explained video
Thanks a lot
So this is if your app is already signed using Google , what if you have an existing app that was published without Google app signing , could I do the same ? or do I have to submit a totally new app instead to enable Google app signing ? (fyi i lost my original app signing key =) )
No, this video is for apps that weren't signed using Google Play App signing. For example, the app I am showing in this video was made using Solar2D and not Android Studio. The video explains how you can enroll in Play app signing using your existing keystore and key that you used when publishing the app for the first time. Therefore, it assumes that you haven't lost them. If you have lost your keystore and key, you can contact Play Console support. They might ask for some proof that you actually own the app and might let you publish it again as an existing app.
Why is a file requested..zip. What should I do?
I have already answered your query when you contacted me through Instagram 😊
Thx for sharing 🎉
Why is a file requested... What should I do?
This tutorial is for already published apps. For new apps, let Google manage your key.
Лучший туториал! Спасибо огромное! Искал эту инфу 2 дня )
Thank you!
how can I conctact support google for recovery lost certificate
support.google.com/googleplay/android-developer/gethelp
please help is this need to enter passowrd in cmd because to let me write anything please help me
When you will run Java command successfully, it will ask you to enter password. Are you getting an error?
Very essential process to know
Hello,
Here I get AccessDenied Error.How to solve this error ?
In case of such an error, you have to run the command prompt as system administrator. I have explained how to do this in video description too.
What do I do if I don't have a .JKS, but an actual ".keystore" file?
Try using it directly in command with jks extension, and if that doesn't work, then keystore extension. If both don't work, convert keystore to jks. There are many solutions on the Internet but this seems good: stackoverflow.com/questions/49924556/convert-keystore-to-jks-to-sign-apk/49925137#49925137
Please help
Error in Cmd: Unable to access jarfile
Run cmd as a system administrator. The process is explained in the video description.
still showing error @@ObsidianSoftEducation
First of all check that you have given the correct file path for the jar file. Also, have you installed openjdk 20 and set it as Java home? That process has also been explained in the video. If you have done all that too and are also running command prompt as a system administrator and your file path is correct too then I am afraid that there is something wrong with your key store file.
Can you please send me the entire error?
@@ObsidianSoftEducation Hello its me from different account I follow your video carefully and did all of steps but the error not going . Please help me my app have issue I need to update it ASAP.
This is my Command:
java -jar C:\Users\TAWAKAL LAPTOP\Downloads\pepk.jar --keystore=C:\Users\TAWAKAL LAPTOP\Downloads\sqs.keystore --alias=sqs --output=C:\Users\TAWAKAL LAPTOP\Desktop\output\sqs.pem --rsa-aes-encryption --encryption-key-path=C:\Users\TAWAKAL LAPTOP\Downloads\encryption_public_key.pem
when I paste this command on cmd it gives error:
Error: Unable to access jarfile C:\Users\TAWAKAL
What about Unreal Engine build based game ? Any idea ?
This should work as long as you have a java keystore and key for your already published app/game and you haven't enrolled in Play app signing yet.
Getting this error Use a valid app signing key to continue
The file does not seem to be a valid zip file.
When are you getting the error? Do you get the error when you run the java command in cmd? if yes, please post the entire error here.
"The private key was not properly encrypted, or its not a type of key we support" error on google play
Please see my pinned comment.
Very helpful
The private key doesn't match the current app certificate
Are you using the correct keystore and alias for the app for which you are trying to enroll in play app signing?
thanks it works
You're welcome!
Thanks problem solved
Not easy.
Sorry to hear that you didn't find it easy. What problem did you encounter? Ensure you know where the Java keystore for your app is on your computer. Also, you should know the name of the alias i.e. key for your app within this keystore. The tutorial assumes that you have done all of this while publishing your app and now, you need to just enroll in play app signing for uploading an update to your app. If you have lost your keystore file or don't know the passwords then you can't run this java command to generate your encrypted key for enrolling in play app signing.
Error: Unable to export or encrypt the private key@@ObsidianSoftEducation
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/NONE/OAEPWithSHA1AndMGF1Padding
I'm phasing these two difficulties.
This is because you didn't install openjdk 20 and set it as java home. All this has been explained in the tutorial.
Thanks. I done it. @@ObsidianSoftEducation
What about the " ks.jks " file? i didn't find it!
It is your Java keystore file. It contains all the private keys for your apps. It must be somewhere on your computer. It might not be named "ks" as this is the name I gave to my keystore file. But it should have the extension jks. It is essential for this play app signing tutorial to work. If you have lost your keystore and your original key then you will have to contact Google Play Console for help.
I get this error
Cannot find any provider supporting RSA/NONE/OAEPWithSHA1AndMGF1Padding
Please download openJdK 20 as mentioned in my video and set it as java home.
@@ObsidianSoftEducation Same error with me. I have downloaded Java 20 and configured as it is. but same error again.
Thanks Work me
@rizwanhashmi4116 most welcome 😊
Brilliant. You have saved my LIFE. Do we have to repeat this process for every app? Or the generated .pem Key is applicable for all apps?
Repeat for all apps with the correct keystore and alias i.e key.
Unable to parse the input: [--keystore=C:\Users\Administrator\Documents\andro\key0.jks, --alias=key0, --output=, C:\Users\Administrator\Desktop\AndroOutput\output.zip, --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a]
Fix the paths. There seem to be quite a few problems .
Error: Unable to export or encrypt the private key how to fix it mam.........java -jar C:\Users\HP\Downloads\pepk.jar --keystore=C:\acer1\Zcandy\threedi_neww\3d-3d_key.jks --alias=threedi --output=C:\acer1\Zcandy\threedi_neww\key_path\threedi.pem --rsa-aes-encryption --encryption-key-path=C:\Users\HP\Downloads\encryption_public_key.pem
Please see pinned comment. The command has recently been changed by Google so use the latest command. Also, the new key generated will not be .pem but .zip previously, google hadn't given a file type for the generated key so I used to make it .pem but now, in the new command, they have given the file type .zip for the new key so use .zip instead of .pem
@@ObsidianSoftEducation not works
Show me your final command as you weren't using the latest command previously according to your earlier comment.
@@ObsidianSoftEducation $ java -jar C:\Users\HP\Downloads\pepk.jar --keystore=C:\acer1\Zcandy\threedi_neww\3d-3d_key.jks --alias=arun --output=output.zip --rsa-aes-encryption --encryption-key-path=C:\Users\HP\Downloads\encryption_public_key.pem
The new play console command is this:
java -jar pepk.jar --keystore=foo.keystore --alias=foo --output=output.zip --include-cert --rsa-aes-encryption --encryption-key-path=/path/to/encryption_public_key.pem
Where is "include-cert" in your command?
Also, the output.zip in your command should be the path of a folder on your computer followed by \output.zip.
So,
--output = "some folder path on your computer"\output.zip