Presentation is loading. Please wait.

Presentation is loading. Please wait.

Atliko: Jokūbas Rusakevičius VU MIF PS 3k 3g

Similar presentations


Presentation on theme: "Atliko: Jokūbas Rusakevičius VU MIF PS 3k 3g"— Presentation transcript:

1 Atliko: Jokūbas Rusakevičius VU MIF PS 3k 3g
Windows Store apps Atliko: Jokūbas Rusakevičius VU MIF PS 3k 3g

2 Turinys Kas yra Microsoft Store? Kas yra UWP? Programų pakavimas
Packaging API Paketų pasirašymas

3 Kas yra Microsoft Store?
Microsoft Store (anksčiau Windows Store) yra skaitmeninė platinimo platforma Microsoft Windows operacinei sistemai. Ši platforma atsirado Windwos 8 ir Windows server 2012 kaip pagrindinė UWP programų platinimo priemonė. Su Windows 10 Microsoft sujungė kitas platinimo platformas (Windows Marketplace, Windows Phone Store, Xbox Video ir Xbox Music) į Microsoft Store, padarydama ją bendru platinimo tašku programoms, muzikai, vaizdo įrašams ir e-knygoms.

4 Microsoft Store

5 Kas yra UWP? Universal Windows Platform (UWP) apps (anksčiau Windows Store apps ir Metro-style apps) yra programos, kurias galima naudoti su visais Microsoft Windows suderinamais įrenginiais: asmeniniais kompiuteriais, planšetėmis, išmaniaisiais telefonais, Xbox One, Microsoft HoloLens ir IOT (Interned of Things). UWP programas galima įsigyti ir atsisiųsti per Microsoft Store.

6 Programų pakavimas Microsoft Store programos, diegiamos, tvarkomos ir aptarnaujamas naudojant programų paketus pagal OPC formatą. Kiekvienas programos paketas apima programą sudarančius failus ir manifesto failą, kuris aprašo programinę įrangą Windows operacinei sistemai. Dažniausiai programos kūrėjai kuria ir registruoja programos paketus naudodamiesi Visual Studio ir jos įrankius. Packaging UWP apps:

7 Windows Runtime app paketas talpina šiuos elementus:
App payload – programos kodas, failai ir pan. App manifest – manifestas nurodo programos identitetą, jos galimybes bei informaciją diegimui ar naujinimui. App block map – sąrašas visų programos failų pakete kartu su priskirtomis koduotomis hash reikšmėmis App signature – programos paketo parašas užtikrina, kad paketo turinys nebuvo modifikuotas, po to kai buvo pasirašytas/sukurtas.

8 Packaging API Packaging API yra viešai prieinamas interfeisas skirtas kurti, skaityti ir rašyti programų paketus. Packaging can be more easily understood through an analogy with real–world filing systems. People and businesses need to organize their information. Often, this information is tracked by using paperwork that is stored in folders, which are, in turn, stored in filing cabinets. For each person and business, someone had to design a system that would allow information to be quickly accessed when needed.

9 Developer Audience The Packaging APIs are designed for the following classes of developers: Developers who create applications that interact with packages. Developers who create tools or add-ons that interact with packages.

10 API Interfaces Topic Description IAppxBlockMapBlock
The IAppxBlockMapBlock interface provides a read-only object that represents an individual block within a file contained in the block map file (AppxBlockMap.xml) for the App package. The IAppxBlockMapFile::GetBlocks method is used to return an enumerator for traversing and retrieving the individual blocks of a file listed in the package block map. IAppxBlockMapBlocksEnumerator Enumerates the blocks from a block map in a single file. IAppxBlockMapFile Represents a file in the block map. IAppxBlockMapFilesEnumerator Enumerates the files from a block map. IAppxBlockMapReader Represents a read-only object model for block maps that provides access to the file attributes and block hashes. IAppxBundleFactory Creates objects for reading and writing bundle packages.

11 IAppxBlockMapFile interface
Method Description GetBlocks Retrieves an enumerator for traversing the blocks of a file listed in the block map. GetLocalFileHeaderSize Retrieves the size of the zip local file header of the associated zip file item. GetName Retrieves the name of the associated zip file item. GetUncompressedSize Retrieves the uncompressed size of the associated zip file item. ValidateFileHash Validates the content of a file against the hashes stored in the block elements for this block map file.

12 IAppxBlockMapReader interface
Method Description GetFile Retrieves data corresponding to a file in the block map with the specified file name. GetFiles Retrieves an enumerator for traversing the files listed in the block map. GetHashMethod Retrieves the URI for the hash algorithm used to create block hashes in the block map. GetStream Retrieves a read-only stream that represents the XML content of the block map.

13 IAppxBundleFactory interface
Method Description CreateBundleManifestReader Creates a read-only bundle manifest object from a standalone stream to AppxBundleManifest.xml. CreateBundleReader Creates a read-only bundle object that reads its contents from an IStream object. CreateBundleWriter Creates a write-only bundle object to which app packages can be added.

14 API Interfaces IAppxBundleManifestOptionalBundleInfo
Provides a read-only object model for an <OptionalBundle> element in a bundle package manifest. IAppxBundleManifestOptionalBundleInfoEnumerator Enumerates the optional bundle information from a bundle. IAppxBundleManifestPackageInfo Provides a read-only object model for a <Package> element in a bundle package manifest. IAppxBundleManifestPackageInfoEnumerator Provides a read-only object model for the list of payload packages that are described in a bundle package manifest. IAppxBundleManifestReader Provides a read-only object model for manifests of bundle packages. IAppxBundleManifestReader2 IAppxBundleReader Provides a read-only object model for bundle packages. IAppxBundleWriter Provides a write-only object model for bundle packages. IAppxBundleWriter2 IAppxBundleWriter3

15 IAppxBundleManifestPackageInfo interface
Method Description GetFileName Retrieves the file-name attribute of the package. GetOffset Retrieves the offset of the package relative to the beginning of the bundle. GetPackageId Retrieves an object that represents the identity of the app package. GetPackageType Retrieves the type of package that is represented by the package info. GetResources Retrieves an enumerator that iterates through all the <Resource> elements that are defined in the app package's manifest. GetSize Retrieves the size of the package, in bytes.

16 IAppxBundleManifestReader(2) interface
Method Description GetPackageId Retrieves an object that represents the <Identity> element under the root <Bundle> element. GetPackageInfoItems Retrieves an enumerator over all the <Package> elements under the <Packages> element. GetStream Gets the raw XML document without any preprocessing. (2) Method (2) Description GetOptionalBundles Retrieves an object that represents the <OptionalBundles> element under the root <Bundle> element.

17 IAppxBundleReader interface
Method Description GetBlockMap Retrieves a read-only block map object from the bundle. GetFootprintFile Retrieves the specified type of footprint file from the bundle. GetManifest Retrieves a read-only manifest object from the bundle. GetPayloadPackage Retrieves an appx file object for the payload package with the specified file name. GetPayloadPackages Retrieves an enumerator that iterates over the list of all payload packages in the bundle.

18 IAppxBundleWriter(2) interface
Method Description AddPayloadPackage Adds a new app package to the bundle. Close Finalizes the bundle package by writing footprint files at the end of the package, and closes the writer’s output stream. Method Description AddExternalPackageReference Adds a reference to an external package to the package bundle.

19 API Interfaces IAppxContentGroup
Retrieves information about a content group. IAppxContentGroupsEnumerator Enumerates the content groups from a content group map. IAppxContentGroupFilesEnumerator Enumerates files in content groups from a content group map. IAppxContentGroupMapReader Gets information about a content group map. IAppxContentGroupMapWriter Provides a write-only object model for a content group map. IAppxEncryptionFactory Creates objects for encrypting, decrypting, reading, and writing packages and bundles. IAppxEncryptionFactory2 Creates objects for encrypting, decrypting, reading, and writing Windows app packages and bundles. IAppxEncryptionFactory3 IAppxEncryptionFactory4 Creates objects for encrypting Windows app packages and bundles. IAppxEncryptedPackageWriter Provides a write-only object model for encrypted app packages. IAppxEncryptedPackageWriter2

20 IAppxEncryptionFactory interface
Method Description CreateEncryptedBundleReader Creates a read-only bundle object to which encrypted Windows app packages can be added. CreateEncryptedBundleWriter Creates a write-only bundle object to which encrypted Windows app packages can be added. CreateEncryptedPackageReader Creates a new instance of IAppxEncryptedPackageReader. CreateEncryptedPackageWriter Creates a new instance of an IAppxEncryptedPackageWriter. DecryptBundle Creates an unencrypted Windows app bundle from an encrypted one. DecryptPackage Creates an unencrypted Windows app package from an encrypted one. EncryptBundle Creates an encrypted Windows app bundle from an unencrypted one. EncryptPackage Creates an encrypted Windows app package from an unencrypted one.

21 API Interfaces IAppxEncryptedBlockMapFile
Retrieves the file hash and Id of an encrypted block map file. IAppxEncryptedFile Retrieves information about an encrypted file. IAppxEncryptedBundleWriter Provides a write-only object model for encrypted bundle packages. IAppxEncryptedPackageFile Retrieves encrypted package readers and streams. IAppxFactory Creates objects for reading and writing app packages. IAppxFactory2 IAppxFile Retrieves information about a payload or footprint file in a package. IAppxFilesEnumerator Enumerates the payload files in a package. IAppxManifestApplication Provides access to attribute values of the application. IAppxManifestApplicationsEnumerator Enumerates the applications defined in the package manifest. IAppxManifestDeviceCapabilitiesEnumerator Enumerates the device capabilities defined in the package manifest. IAppxManifestMainPackageDependency Provides access to attribute values of the main package dependency. IAppxManifestMainPackageDependenciesEnumerator Enumerates <MainPackageDependency> elements from an app manifest.

22 IAppxFactory interface
Method Description CreateBlockMapReader Creates a read-only block map object model from contents provided by an IStream. CreateManifestReader Creates a read-only manifest object model from contents provided by an IStream. CreatePackageReader Creates a read-only package reader from the contents provided by an IStream. This method does not validate the digital signature. CreatePackageWriter Creates a write-only package object to which files can be added. CreateValidatedBlockMapReader Creates a read-only block map object model from contents provided by an IStream and a digital signature.

23 API Interfaces IAppxManifestOptionalPackageInfo
Provides access to attribute values of the optional package information. IAppxManifestPackageDependenciesEnumerator Enumerates the package dependencies defined in the package manifest. IAppxManifestPackageDependency Describes the dependency of one package on another package. IAppxManifestPackageId Provides access to the package identity. IAppxManifestPackageId2 Provides access to the app package identity. IAppxManifestProperties Provides read-only access to the properties section of a package manifest. IAppxManifestReader Represents an object model of the package manifest that provides methods to access manifest elements and attributes. IAppxManifestReader2 IAppxManifestReader5

24 IAppxManifestReader interface
Method Description GetApplications Gets an enumerator that iterates through the applications defined in the manifest. GetCapabilities Gets the list of capabilities requested by the package. GetDeviceCapabilities Gets an enumerator that iterates through the device capabilities defined in the manifest. GetPackageDependencies Gets an enumerator that iterates through dependencies defined in the manifest. GetPackageId Gets the package identifier defined in the manifest. GetPrerequisite Gets the specified prerequisite as defined in the package manifest. GetProperties Gets the properties of the package as defined in the manifest. GetResources Gets an enumerator that iterates through the resources defined in the manifest. GetStream Gets the raw XML parsed and read by the manifest reader.

25 API Interfaces IAppxManifestResourcesEnumerator
Enumerates the resources defined in the package manifest. IAppxManifestTargetDeviceFamily Retrieves information about the target device family from the AppxManifest.xml. IAppxPackageReader Provides a read-only object model for app packages. IAppxPackageReader2 IAppxPackageWriter Provides a write-only object model for app packages. IAppxPackageWriter2 IAppxPackageWriter3 IAppxSourceContentGroupMapReader Gets information about the source content group map.

26 IAppxPackageReader interface
Method Description GetBlockMap Retrieves the block map object model of the package. GetFootprintFile Retrieves a footprint file from the package. GetManifest Retrieves the object model of the app manifest of the package. GetPayloadFile Retrieves a payload file from the package. GetPayloadFiles Retrieves an enumerator that iterates through the payload files in the package.

27 IAppxPackageWriter interface
Method Description AddPayloadFile Adds a new payload file to the app package. Close Writes footprint files at the end of the app package, and closes the package writer object's output stream.

28 Interfeisai paprastam naudojimui
IAppxFactory – IAppxPackageWriter sukurimui. IAppxPackageWriter – failų ir manifesto sudėjimui į paketą. Pavizdys: us/library/windows/desktop/hh446616(v=vs.85).aspx

29 API Structures APPX_ENCRYPTED_PACKAGE_SETTINGS
Settings for encrypted Windows app packages. APPX_ENCRYPTED_PACKAGE_SETTINGS2 Encrypted Windows app package settings. APPX_ENCRYPTED_EXEMPTIONS Files exempted from Windows app package encryption. APPX_KEY_INFO Windows app package key information. APPX_PACKAGE_SETTINGS Represents package settings used to create a package. APPX_PACKAGE_WRITER_PAYLOAD_STREAM Contains the data and metadata of files to write into the app package.

30 API enumerations APPX_BUNDLE_FOOTPRINT_FILE_TYPE
Specifies the type of footprint file in a bundle. APPX_ENCRYPTED_PACKAGE_OPTIONS Encrypted app package options. APPX_BUNDLE_PAYLOAD_PACKAGE_TYPE Specifies the type of package for a IAppxBundleManifestPackageInfo object. APPX_CAPABILITIES Specifies the capabilities or privileges requested by a package. APPX_COMPRESSION_OPTION Specifies the degree of compression used to store the file in the package. APPX_FOOTPRINT_FILE_TYPE Specifies the type of footprint file in a package. APPX_PACKAGE_ARCHITECTURE Specifies the processor architectures supported by a package. APPX_PACKAGE_ARCHITECTURE2

31 Tolesnis darbas su paketais
Kad būtų galima paketą diegti ar platinti, paketas turi būti pasirašytas skaitmeniniu būdu. Tam reikia: Sukurti parašo sertifikatą Pasirašyti programos paketą

32 Manifestas

33 Paketų parašo sertifikatas
Reikalingi įrankiai iš WDK: MakeCert.exe ir Pvk2Pfx.exe Šių įrankių pagalba yra sukuriamas parašo sertifikatas ir sukuriamas .pfx failas, su kuriuo galima pasirašyti paketus. Daugiau informacijos: us/library/windows/desktop/jj835832(v=vs.85).aspx

34 Paketų pasirašymas Reikalingas įrankis SignTool. Pasirašymui rekalingas Personal Information Exchange (.pfx) failas, bei supakuota Windows Store app, .appx failas. Daugiau informacijos: us/library/windows/desktop/jj835835(v=vs.85).aspx

35 Useful Links / Sources us/library/windows/desktop/hh446593(v=vs.85).aspx us/library/windows/desktop/hh446766(v=vs.85).aspx us/library/windows/desktop/dd371623(v=vs.85).aspx

36 Ačiū už dėmesį!


Download ppt "Atliko: Jokūbas Rusakevičius VU MIF PS 3k 3g"

Similar presentations


Ads by Google