mirror of
https://github.com/usetrmnl/trmnl-android.git
synced 2026-04-29 13:35:26 -07:00
Merge pull request #131 from usetrmnl/debug-workflow
[MORE] Debugging for the key
This commit is contained in:
@@ -285,3 +285,130 @@ jobs:
|
||||
echo "Full entry details:"
|
||||
cat keystore-test/entry-details.txt
|
||||
fi
|
||||
|
||||
- name: Compare Working vs Broken Keystore
|
||||
if: always()
|
||||
run: |
|
||||
echo "Comparing your keystore with the working debug keystore..."
|
||||
|
||||
echo "=== Your keystore details ==="
|
||||
keytool -list -v -keystore keystore-test/release.keystore \
|
||||
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
|
||||
-alias "${{ secrets.KEY_ALIAS }}" > keystore-test/your-keystore-details.txt 2>&1 || true
|
||||
|
||||
echo "=== Debug keystore details ==="
|
||||
keytool -list -v -keystore keystore-test/debug.keystore \
|
||||
-storepass "android" \
|
||||
-alias "androiddebugkey" > keystore-test/debug-keystore-details.txt 2>&1 || true
|
||||
|
||||
echo "=== Testing jarsigner with debug keystore ==="
|
||||
jarsigner -keystore keystore-test/debug.keystore \
|
||||
-storepass "android" \
|
||||
-keypass "android" \
|
||||
-signedjar keystore-test/debug-signed.jar \
|
||||
keystore-test/test.jar \
|
||||
"androiddebugkey" > keystore-test/debug-signing.txt 2>&1 || true
|
||||
|
||||
if [ -f keystore-test/debug-signed.jar ]; then
|
||||
echo "✅ Debug keystore can sign files successfully"
|
||||
ls -la keystore-test/debug-signed.jar
|
||||
else
|
||||
echo "❌ Even debug keystore failed to sign"
|
||||
cat keystore-test/debug-signing.txt
|
||||
fi
|
||||
|
||||
- name: Test with Different jarsigner Options
|
||||
if: always()
|
||||
run: |
|
||||
echo "Testing jarsigner with different options..."
|
||||
|
||||
# Try with explicit storetype
|
||||
echo "=== Trying with explicit -storetype PKCS12 ==="
|
||||
jarsigner -keystore keystore-test/release.keystore \
|
||||
-storetype PKCS12 \
|
||||
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
|
||||
-keypass "${{ secrets.KEY_PASSWORD }}" \
|
||||
-signedjar keystore-test/signed-pkcs12.jar \
|
||||
keystore-test/test.jar \
|
||||
"${{ secrets.KEY_ALIAS }}" > keystore-test/signing-pkcs12.txt 2>&1 || true
|
||||
|
||||
# Try with JKS storetype
|
||||
echo "=== Trying with explicit -storetype JKS ==="
|
||||
jarsigner -keystore keystore-test/release.keystore \
|
||||
-storetype JKS \
|
||||
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
|
||||
-keypass "${{ secrets.KEY_PASSWORD }}" \
|
||||
-signedjar keystore-test/signed-jks.jar \
|
||||
keystore-test/test.jar \
|
||||
"${{ secrets.KEY_ALIAS }}" > keystore-test/signing-jks.txt 2>&1 || true
|
||||
|
||||
# Try without keypass (in case store and key passwords are the same)
|
||||
echo "=== Trying without explicit -keypass ==="
|
||||
jarsigner -keystore keystore-test/release.keystore \
|
||||
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
|
||||
-signedjar keystore-test/signed-no-keypass.jar \
|
||||
keystore-test/test.jar \
|
||||
"${{ secrets.KEY_ALIAS }}" > keystore-test/signing-no-keypass.txt 2>&1 || true
|
||||
|
||||
echo "Results summary:"
|
||||
for test in pkcs12 jks no-keypass; do
|
||||
if [ -f keystore-test/signed-$test.jar ]; then
|
||||
echo "✅ $test approach worked"
|
||||
else
|
||||
echo "❌ $test approach failed:"
|
||||
cat keystore-test/signing-$test.txt | head -2
|
||||
fi
|
||||
done
|
||||
|
||||
- name: Analyze Private Key Accessibility
|
||||
if: always()
|
||||
run: |
|
||||
echo "Analyzing private key accessibility..."
|
||||
|
||||
# Try to export the private key (this will fail but give us info)
|
||||
echo "=== Attempting to access private key directly ==="
|
||||
keytool -exportcert -keystore keystore-test/release.keystore \
|
||||
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
|
||||
-alias "${{ secrets.KEY_ALIAS }}" \
|
||||
-file keystore-test/cert.der > keystore-test/export-cert.txt 2>&1 || true
|
||||
|
||||
if [ -f keystore-test/cert.der ]; then
|
||||
echo "✅ Certificate export successful"
|
||||
file keystore-test/cert.der
|
||||
openssl x509 -in keystore-test/cert.der -inform DER -text -noout | head -10
|
||||
else
|
||||
echo "❌ Certificate export failed"
|
||||
cat keystore-test/export-cert.txt
|
||||
fi
|
||||
|
||||
# Check if we can change the key password (requires private key access)
|
||||
echo "=== Testing private key access by changing key password ==="
|
||||
cp keystore-test/release.keystore keystore-test/test-copy.keystore
|
||||
keytool -keypasswd -keystore keystore-test/test-copy.keystore \
|
||||
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
|
||||
-alias "${{ secrets.KEY_ALIAS }}" \
|
||||
-keypass "${{ secrets.KEY_PASSWORD }}" \
|
||||
-new "newpassword123" > keystore-test/keypasswd-test.txt 2>&1 || true
|
||||
|
||||
if grep -q "Warning" keystore-test/keypasswd-test.txt; then
|
||||
echo "❌ Cannot access private key for password change"
|
||||
cat keystore-test/keypasswd-test.txt
|
||||
else
|
||||
echo "✅ Private key is accessible for password changes"
|
||||
|
||||
# Now try jarsigner with the new password
|
||||
echo "=== Testing jarsigner with new key password ==="
|
||||
jarsigner -keystore keystore-test/test-copy.keystore \
|
||||
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
|
||||
-keypass "newpassword123" \
|
||||
-signedjar keystore-test/signed-newpass.jar \
|
||||
keystore-test/test.jar \
|
||||
"${{ secrets.KEY_ALIAS }}" > keystore-test/signing-newpass.txt 2>&1 || true
|
||||
|
||||
if [ -f keystore-test/signed-newpass.jar ]; then
|
||||
echo "✅ Signing worked with new key password!"
|
||||
else
|
||||
echo "❌ Still failed with new key password"
|
||||
cat keystore-test/signing-newpass.txt
|
||||
fi
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user