0

McCoy ツールを使用して、install.rdf ファイルを「インストール」し、update.rdf ファイルに署名しました。

私のInstall.rdfファイルには次のものがあります。

<?xml version="1.0"?>
<RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#"
         xmlns:NC="http://home.netscape.com/NC-rdf#"
         xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <RDF:Description RDF:about="rdf:#$e2DK."
                   em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
                   em:minVersion="4.0"
                   em:maxVersion="15.*" />
  <RDF:Description RDF:about="urn:mozilla:install-manifest"
                   em:id="{ext-id}"
                   em:type="2"
                   em:name="Ext X"
                   em:version="1.0.4"
                   em:description="..."
                   em:creator="Bruno Leonardo Michels"
                   em:updateURL="http://www.example.com/dl/update.rdf"
                   em:bootstrap="false"
                   em:updateKey="xxx">
    <em:targetApplication RDF:resource="rdf:#$e2DK."/>
  </RDF:Description>
</RDF:RDF>

私のUpdate.rdfファイルには次のものがあります。

<?xml version="1.0"?>
<RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#"
         xmlns:NC="http://home.netscape.com/NC-rdf#"
         xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <RDF:Description RDF:about="rdf:#$D1abg"
                   em:version="1.0.4">
    <em:targetApplication RDF:resource="rdf:#$G1abg"/>
  </RDF:Description>
  <RDF:Description RDF:about="rdf:#$G1abg"
                   em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
                   em:minVersion="4.0"
                   em:maxVersion="15.*"
                   em:updateLink="http://www.example.com/dl/ext.xpi"
                   em:updateInfoURL="http://www.example.com/dl/ext.txt" />
  <RDF:Description RDF:about="rdf:#$M1abg"
                   em:version="1.0.3">
    <em:targetApplication RDF:resource="rdf:#$P1abg"/>
  </RDF:Description>
  <RDF:Description RDF:about="urn:mozilla:extension:{ext-id}"
                   em:signature="xxx">
    <em:updates RDF:resource="rdf:#$C1abg"/>
  </RDF:Description>
  <RDF:Seq RDF:about="rdf:#$C1abg">
    <RDF:li RDF:resource="rdf:#$D1abg"/>
    <RDF:li RDF:resource="rdf:#$M1abg"/>
  </RDF:Seq>
  <RDF:Description RDF:about="rdf:#$P1abg"
                   em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
                   em:minVersion="4.0"
                   em:maxVersion="15.*"
                   em:updateLink="http://www.example.com/dl/ext103.xpi"
                   em:updateInfoURL="http://www.example.com/dl/ext.txt" />
</RDF:RDF>

[Find updates] をクリックすると、Firefox は update.rdf URL を要求し、正しいバージョン (1.0.4) の正しいファイルを取得します。しかし、それは何もせず、更新を表示せず、更新しません...バージョン1.0.3のままです...

em:versionアドオンのバージョンを決定するものではありませんか? ここで何が欠けていますか?

テストするために、バージョンをインストールして署名し、1.0.4そのバージョンをインストールして署名済みに変更した1.0.3ため、番号の異なる 2 つのバージョンがあります。バージョンをインストールしましたが、アップデート1.0.3を実行しようとしています。1.0.4

4

1 に答える 1

1

私は使用していないので、ファイルにアンダーhttpsを含める必要があります。Hashtabから生成された SHA1 を使用しました。em:updateHashem:updateLinkupdate.rdf

em:updateHash="sha1:<hash>"

ハッシュを追加した後、ファイルに再度署名する必要があります。

于 2012-06-28T15:44:39.873 に答える