<rdf:RDF
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xmlns:s='http://snipsnap.org/rdf/snip-schema#'
    xml:base='http://www.mobile-j.de/snipsnap/rdf'>
    <s:Snip rdf:about='http://www.mobile-j.de/snipsnap/rdf#J2ME/Self+signed+midlets+for+the+lazy+bones'
         s:cUser='bjoernQ'
         s:oUser='bjoernQ'
         s:mUser='bjoernQ'>
        <s:name>J2ME/Self signed midlets for the lazy bones</s:name>
        <s:content>While some Nokia technical documents say it&apos;s not possible to install midlets signed with a self signed certificate it works. At least on some phones. (Not on S60 3rd Edition ... )&#xD;&#xA;&#xD;&#xA;So here&apos;s a quick step-by-step how to if you don&apos;t want to tinker with Java keytool.\\&#xD;&#xA;(If you want to do so please look at this {link:forum thread|http://discussion.forum.nokia.com/forum/showthread.php?t=42411&amp;page=1&amp;pp=15})&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Download {link:example.sks|http://www.mobile-j.de/snipsnap/space/J2ME/Self+signed+midlets+for+the+lazy+bones/example.sks} and {link:testCA.cer|http://www.mobile-j.de/snipsnap/space/J2ME/Self+signed+midlets+for+the+lazy+bones/testCA.cer}&#xD;&#xA;&#xD;&#xA;Now you have to use Nokia NDS (Nokia Developer Suite for J2ME).\\&#xD;&#xA;&#xD;&#xA;-Choose &quot;Sign Application Package&quot;.\\&#xD;&#xA;-Choose &quot;Import Key Pair..&quot;\\&#xD;&#xA;-Locate the downloaded &quot;example.sks&quot; file\\&#xD;&#xA;-Password is &quot;password&quot;\\&#xD;&#xA;-Choose &quot;testca&quot; from the list (there&apos;s nothing else to choose)\\&#xD;&#xA;-Again the password is &quot;password&quot;\\&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Choose &quot;Sign..&quot;:&#xD;&#xA;&#xD;&#xA;-Choose the JAD file of your MIDlet\\&#xD;&#xA;&#xD;&#xA;Now your MIDlet is signed. Basically two lines were added to your JAD file.&#xD;&#xA;&#xD;&#xA;Example:&#xD;&#xA;{code}&#xD;&#xA;MIDlet-Certificate-1-1: MIIB4zCCAY0CBEQEq60wDQYJKoZIhvcNAQEEBQAwezELMAkGA1UEBhMCZGUxFDASBgNVBAgTC1Nlb&#xD;&#xA;GYgc2lnbmVkMRQwEgYDVQQHEwtTZWxmIHNpZ25lZDEUMBIGA1UEChMLU2VsZiBzaWduZWQxFDASBg&#xD;&#xA;NVBAsTC1NlbGYgc2lnbmVkMRQwEgYDVQQDEwtTZWxmIHNpZ25lZDAeFw0wNjAyMjgxOTU5NDFaFw0&#xD;&#xA;xNjAxMDcxOTU5NDFaMHsxCzAJBgNVBAYTAmRlMRQwEgYDVQQIEwtTZWxmIHNpZ25lZDEUMBIGA1UE&#xD;&#xA;BxMLU2VsZiBzaWduZWQxFDASBgNVBAoTC1NlbGYgc2lnbmVkMRQwEgYDVQQLEwtTZWxmIHNpZ25lZ&#xD;&#xA;DEUMBIGA1UEAxMLU2VsZiBzaWduZWQwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAxaMZkESxicyTxS&#xD;&#xA;ElLnyuFwmfs0mfDEItCp3uSO58cQaFY8TCihBoqG44qPp8YVb/NfXeatwVaINxVdOAbn2d4wIDAQA&#xD;&#xA;BMA0GCSqGSIb3DQEBBAUAA0EAPczWIYkE+0NXIK0XZXTikme+xicgBUOwNYOIPYkHKGtu5OuWVVmp&#xD;&#xA;T1IvnA0gywfck7zp3gfgdIkcpwJCwJCbPA==&#xD;&#xA;MIDlet-Jar-RSA-SHA1:  uE4ACE/VpdPXAOlEnrh50bZLiTxpuUCQDog5c9C+/qFO1up+X6chOyA&#xD;&#xA;/TNG16TY+NO+ezO5d1kXSnXfzFfllHA==&#xD;&#xA;{code}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Now send the downloaded &quot;testCA.cer&quot; to your phone. (e.g. via bluetooth)&#xD;&#xA;&#xD;&#xA;Save / install the certificate.&#xD;&#xA;&#xD;&#xA;On the phone use System / Settings/Preferences / Security / Certificate Management&#xD;&#xA;&#xD;&#xA;Locate the newly installed certificate.&#xD;&#xA;&#xD;&#xA;Use &quot;Options&quot; / &quot;Trust settings&quot;&#xD;&#xA;&#xD;&#xA;Enable everything. (Set everything to &quot;yes&quot;)&#xD;&#xA;&#xD;&#xA;{image:SignMidlet1.jpg}&#xD;&#xA;&#xD;&#xA;Save your settings.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Send your MIDlet to your phone. (The JAR AND the JAD file.)&#xD;&#xA;&#xD;&#xA;Install using the JAD file! (DON&apos;T INSTALL IT VIA THE JAR FILE ONLY!)&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Now you can alter the security settings of you trusted MIDlet by using the &quot;Application Manager&quot;.&#xD;&#xA;The only thing you can&apos;t set to &quot;Always allowed&quot; is &quot;Messages&quot;.&#xD;&#xA;&#xD;&#xA;{image:SignMidlet2.jpg}&#xD;&#xA;&#xD;&#xA;For your convenience you can test this also with my {link:HelloWorld|http://www.mobile-j.de/snipsnap/space/J2ME/Self+signed+midlets+for+the+lazy+bones/signedMidlet.zip}  MIDlet.&#xD;&#xA;</s:content>
        <s:mTime>2006-04-24 10:33:46.255</s:mTime>
        <s:cTime>2006-02-28 20:19:35.716</s:cTime>
        <s:comments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
        <s:snipLinks>
            <rdf:Bag>
                <rdf:li rdf:resource='#J2ME'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Getting the IMEI or not ...'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Sending SMS from MIDlet without user intervention'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Reading files from J2ME on a 6600'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/How to verify the phone&apos;s MSISDN'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#Products/GETrack'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Guessing the network operator'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Getting content from a MIDlet into the phone'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/System.out redirect on S60 3rd Edition'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Fun with sending mms from a midlet'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Putting together BlueCove and avetanaOBEX'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Start Real One Player from J2ME'/>
                <rdf:li rdf:resource='#snipsnap-search'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Using the N95 accelerometer in Java - kind of'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#Products/POIXpress'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Sending blinking sms to older Nokias ...'/>
                <rdf:li rdf:resource='#snipsnap-index'/>
                <rdf:li rdf:resource='#bjoernQ'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2006-02-28/1'/>
                <rdf:li rdf:resource='#snipsnap-notfound'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#Products/S60 Screensaver Maker Pro'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Accelerometer BallGame code and binaries'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2006-02-28/2'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2006-04-04/1'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2006-07-25/1'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/MovingBall example ported to JME'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2006-02-03/1'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/jCIFS port for JME'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#J2ME/Self signed midlets for the lazy bones/'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2007-04-30/1'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2008-02-16/1'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#j2me/start+real+one+player+from+j2me'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#start/2006-01-17/1'/>
                <rdf:li rdf:resource='http://www.mobile-j.de/snipsnap/rdf#Fun/Send PC screen to SU2'/>
            </rdf:Bag>
        </s:snipLinks>
        <s:attachments>
            <rdf:Bag>
                <rdf:li>
                    <s:Attachment rdf:about='http://www.mobile-j.de/snipsnap/space/J2ME/Self+signed+midlets+for+the+lazy+bones/SignMidlet1.jpg'
                         s:fileName='SignMidlet1.jpg'
                         s:contentType='image/jpeg'
                         s:size='42612'>
                        <s:date>Tue Feb 28 20:20:39 GMT 2006</s:date>
                    </s:Attachment>
                </rdf:li>
                <rdf:li>
                    <s:Attachment rdf:about='http://www.mobile-j.de/snipsnap/space/J2ME/Self+signed+midlets+for+the+lazy+bones/SignMidlet2.jpg'
                         s:fileName='SignMidlet2.jpg'
                         s:contentType='image/jpeg'
                         s:size='37644'>
                        <s:date>Tue Feb 28 20:20:53 GMT 2006</s:date>
                    </s:Attachment>
                </rdf:li>
                <rdf:li>
                    <s:Attachment rdf:about='http://www.mobile-j.de/snipsnap/space/J2ME/Self+signed+midlets+for+the+lazy+bones/example.sks'
                         s:fileName='example.sks'
                         s:contentType='application/octet-stream'
                         s:size='965'>
                        <s:date>Tue Feb 28 20:20:21 GMT 2006</s:date>
                    </s:Attachment>
                </rdf:li>
                <rdf:li>
                    <s:Attachment rdf:about='http://www.mobile-j.de/snipsnap/space/J2ME/Self+signed+midlets+for+the+lazy+bones/signedMidlet.zip'
                         s:fileName='signedMidlet.zip'
                         s:contentType='application/x-zip-compressed'
                         s:size='2466'>
                        <s:date>Tue Feb 28 20:21:21 GMT 2006</s:date>
                    </s:Attachment>
                </rdf:li>
                <rdf:li>
                    <s:Attachment rdf:about='http://www.mobile-j.de/snipsnap/space/J2ME/Self+signed+midlets+for+the+lazy+bones/testCA.cer'
                         s:fileName='testCA.cer'
                         s:contentType='application/x-x509-ca-cert'
                         s:size='487'>
                        <s:date>Tue Feb 28 20:20:13 GMT 2006</s:date>
                    </s:Attachment>
                </rdf:li>
            </rdf:Bag>
        </s:attachments>
    </s:Snip>
</rdf:RDF>

