Answer:
Prior to Symbian OS v9, the installer would overwrite the new file without any user notification. Any damage caused to the operation of other installed applications or normal phone operation would be grounds for failing or nullifying Symbian Signed status.
In Symbian OS v9 the installer prevents over-installation, except by the legitimate owner of the original DLL. The installer will only allow a SIS file with the same UID as the original SIS file to replace executable files (including DLLs) with the same UID/name. For other (non-executable) file types the behaviour depends on the Symbian Signed status of the original file and file type.
The Symbian OS v9 installer overwriting rules are:
Signed SIS files can overwrite unsigned files
Signed files can't overwrite other signed files
Unsigned files can't overwrite signed files.
Note that in Symbian OS v9 the installer will also fail if an installation with a duplicate DLL (from another vendor) is to be installed on a different drive. This is to prevent "eclipsing", where the loader loads DLLs located on a higher order drive (e.g. C drive) to dynamically replace files on the firmware (Z drive).
Question:
How has Symbian Signed evolved with Symbian OS v9?
Answer:
Symbian Signed has evolved in tandem with Symbian OS v9. For more information on Symbian OS v9 related changes to Symbian Signed, please refer to the 'Q. With the advent of Symbian OS v9, how has Symbian Signed evolved'FAQ in the Symbian Signed FAQ page.
Question:
What is the difference between Product ID/Platform ID and Machine ID? How does the Product ID and Platform ID dependency mechanism work? What Platform and Product ID should I use? What are the Machine ID and other attributes?
Answer:
What is the difference between Product ID/Platform ID and Machine ID?
Platform and product IDs are used by the installer to determine whether or not an installable package is compatible (will work) with a device/platform. They are declared in the "dependencies" section of the PKG file declaration:
» Symbian OS Tools And Utilities » Installation reference » Package file format » dependency
The machine ID is part of a separate mechanism that may be used to allow conditional installation of different components on different devices (e.g. in order to overcome device incompatibility etc.). The ID may be used in a condition block within the PKG file package body (or within executable code):
» Symbian OS Tools And Utilities » Installation reference » Package file format » package-body.
Note that the Machine ID and Product ID may or may not have the same numerical value on a particular device. The machine ID is guaranteed to be unique to the device, while the product ID may (contrary to its name) may be common to several devices or even absent. The mechanisms are described in greater detail in the following sections.
How does the Product ID and Platform ID dependency mechanism work?
The device contains SIS file stubs corresponding to its compatible platforms/product IDs (see z:\system\install\). When a SIS file is run, the installer compares all the product IDs from the PKG file with every SIS file stub. If any product/platform dependency listed in the .pkg file is present on the device then the application is compatible. If the application is not compatible (no matching stub) the result is passed to the UI; on Series 60 the user is warned and given the opportunity to continue installation.
UIQ phones based on Symbian OS v7.0 have a slightly different behaviour. Symbian OS v7.0 requires that only a single product ID is declared in the PKG file; if you put more than one dependency then the installation will fail. As a result a SIS file that declares compatibility with both UIQ2 and Nokia series60 binaries will install on series60 based phones, but not on UIQ2 based phones (see FAQ1232 "Can a single SIS file containing both S60 and UIQ versions of an application be Symbian Signed?" ). This will not be a limitation on Symbian OS v9 based UIQ phones.
The manufacturer that creates the phone make the decision about what product ID stubs will be present. Great efforts are made to maintain compatibility for existing functionality, so the phone will usually have Product IDs for all compatible previous platforms, the current platform, and the current device.
Notes:
Pre-Symbian OS v9 the installer discriminates Product ID dependencies from component dependencies based on the string name ending in text "ProductID", e.g:
(0x101F61CE), 0, 0, 0, {"SonyEricssonP9xxPlatformProductID"}
Product and Platform IDs are the same thing - the only difference semantic; platform IDs will be present on all devices in a platform, and on future compatible devices, while product IDs tend to be (at manufacturer descretion) on the current platform.
What Platform and Product ID should I use?
You should specify the product ID of the earliest platform that includes all the functionality that you have used. From Symbian OS v7.0s you can specify multiple product/platform IDs, however only one (the earliest) is necessary, as the manufacturer adds all the legacy stubs for compatible platforms in a series onto future phones.
If it is important (for some reason) that the application runs only on a subset of phones, then these should be specified by specific product ID rather than platform ID.
What are the Machine ID and other attributes?
The Machine ID is one of the attributes defined HalData::TAttribute. It supplies a device specific UID that can be used in the PKG file to conditionally install components based on the phone ID:
» Developer Library » API Reference » C++ API reference » Hardware Abstraction Layer (HAL) » HALData.
There are many other attributes, including the manufacturer, device family, software revision etc. These can also be used to conditionally install code, or to conditionally execute code
Question:
What are the values of the HAL::TAttributes (including Machine ID)?
Answer:
The HAL::TAttribute values can be used in PKG (SIS) file condition blocks to control the flow of installation, and indeed what is installed. They can also be used within a program to conditionally execute code. This FAQ lists the values of some of the common attributes for real phones.
Note that it is up to handset manufacturers to use appropriate values for these attributes. In some cases they might choose not to define values for all attribute parameters, or indeed to use non-intuitive values for UIDs - e.g to use the semiconductor manufacturer baseport UID rather than the actual manufacturer UID.
Manufacturer UID
The manufacturer UID (HalData::TAttribute:EManufacturer) is defined (for a small subset of handset/semiconductor manufacturers) in the enum HALData::TManufacturer. Manufacturers not defined in this enum have UIDs directly allocated from the UID registry.
Manufacturer ID Name ID Value
Ericsson TManufacturer::EManufacturer_Ericsson 0x00000000
Motorola TManufacturer::EManufacturer_Motorola 0x00000001
Nokia TManufacturer::EManufacturer_Nokia 0x00000002
Panasonic TManufacturer::EManufacturer_Panasonic 0x00000003
Psion TManufacturer::EManufacturer_Psion 0x00000004
Intel TManufacturer::EManufacturer_Intel 0x00000005
Cogent TManufacturer::EManufacturer_Cogent 0x00000006
Cirrus TManufacturer::EManufacturer_Cirrus 0x00000007
Linkup TManufacturer::EManufacturer_Linkup 0x00000008
Texas Instruments TManufacturer::EManufacturer_TexasInstruments 0x00000009
Sony Ericsson KUidManufacturerSonyEricsson 0x101F6CED
ARM KUidManufacturerARM 0x101F4ED9
Samsung KUidManufacturerSamsung 0x101F7E7B
Siemens KUidManufacturerSiemens 0x101F9072
Sendo KUidManufacturerSendo 0x101FA032
BenQ KUidManufacturerBENQ 0x101FD278
LG KUidManufacturerLG 0x10200A8C
Lenovo KUidManufacturerLenovo 0x1020E440
NEC KUidManufacturerNEC 0x102740C4
Machine UID (and other attributes)
Attribute information can be obtained from HAL using HAL::Get().
For example, in order to the get the machine UID, you can use:
#include
TInt uid;
HAL::Get(HAL::EMachineUid, uid)
The following table lists the attributes for many Symbian OS devices/reference boards.
Device Machine ID Manufacturer ID Hardware Rev. Software Rev. Software build Model Device Family Device Family Rev
SE P800 0x101F408B 0x101F6CED 1 1 1 0 2 1
SE P900 0x101FB2AE 0x101F6CED 1 2 1 0 2 1
SE P910 0x10200AC6
SE P910i 0x10200AC6 0x101F6CED 1 2 959524969 2 1
SE P990
Nokia 3230 0x10200F97
Nokia 3650 0x101F466A 0x00000002 256 256 256 270485098 1 1552
Nokia 3660 0x101F466A 0x00000002 256 256 256 270485098 1 1552
Nokia 7650 0x101F4FC3 0x00000002 256 256 256 270487491 1 1552
Nokia N-Gage™ 0x101F8C19 0x00000002 256 256 256 270502937 1 1552
Nokia N-Gage™ QD 0x101FB2B1 0x00000002 256 256 256 270512817 1 1552
Nokia 6260 0x101FB3F4 0x00000002 256 256 256 270513140 1 1792
Nokia 6600 0x101FB3DD 256 256 256 270513117 1 1792
Nokia 6620 0x101F3EE3
Nokia 6630 0x101FBB55 0x00000002 256 256 592 1112691795 1792
Nokia 6670 0x101FB3F3
Nokia 6680 0x10200f99 0x00000002 256 256 592 1112691795 1 1792
Nokia 6681 0x10200F9C
Nokia 6682 0x10200F9B
Nokia 7610 0x101FB3F3 0x00000002 256 256 256 270513139 1
Nokia 7710 0x101FBE09
Nokia 7710 China Edition
Nokia 9210/9290 0x10005E33
Nokia 9300 0x101F8ED1
Nokia 9300i 0x1020E048
Nokia 9500 0x101F6B26
Nokia N70 0x10200F9A
Nokia N90 0x10200F98
Sendo-X 0X101FA031 0x101FA032 514 1 72 270508081 270503194 1
Siemens SX1 0x101F9071 0x101F9072 1 256 592 270504049 1 1552
Samsung SGH-D720
Samsung SGH-D730 0x101FE7B7
Motorola A9nn 0x101F6B26
BenQ P30
Panasonic X700 0x101FF525
Question:
How do I use UIDs allocated from www.symbiansigned.com? I am not sure exactly how to use the UIDs in my application allocated to me. What are the letters for?
Answer:
Most UIDs in Symbian OS are represented using hexadecimal symbols. Hexadecimal is a numerical system with a radix or base of 16 written using the symbols 0–9 and A–F. You can find more information on hexadecimal (and how to convert between hexadecimal and decimal representations) on the internet – e.g., http://en.wikipedia.org/wiki/Hexadecimal.
Symbian Signed (www.symbiansigned.com) allocates UIDs as a range of hexadecimal values. The portal will always allocate the UIDs in a range – even if only one UID is requested. This applies to both protected and unprotected UIDs.
In order to use the UIDs in your application, you need to split the range allocated from the portal into individual hexadecimal UIDs, and copy/paste each new UID value in your application where appropriate e.g. .pkg, .mmp files, font definitions, ECOM resource files etc., or within the application itself.
If you are unfamiliar with hexadecimal values the easiest way to get the range as a set of individual UIDs is to convert the start and end values of the UID range into decimal using a scientific calculator. You can then easily fill in the intermediate UID values in the range in decimal. When you need a new UID, simply convert the next decimal value in your range to hexadecimal and use it in your program.
For demonstration only, the tables below show several ranges as individual UIDs, both in hexadecimal and decimal.
UID Range : 0x20000087 - 0x20000087 (1 UID)
Number Hexadecimal representation Decimal representation
1 0x20000087 536871047
UID Range : 0x20000037 - 0x20000039 (3 UIDs)
Number Hexadecimal representation Decimal representation
1 0x20000037 536870967
2 0x20000038 536870968
3 0x20000039 536870969
UID Range : 0x20000088 - 0x2000008C (5 UIDs)
Number Hexadecimal representation Decimal representation
1 0x20000088 536871048
2 0x20000089 536871049
3 0x2000008A 536871050
4 0x2000008B 536871051
5 0x2000008C 536871052
UID Range : 0x2000008D - 0x20000096 (10 UIDs)
Number Hexadecimal representation Decimal representation
1 0x2000008D 536871053
2 0x2000008E 536871054
3 0x2000008F 536871055
4 0x20000090 536871056
5 0x20000091 536871057
6 0x20000092 536871058
7 0x20000093 536871059
8 0x20000094 536871060
9 0x20000095 536871061
10 0x20000096 536871062
Question:
Verisign have provided me an ACS Publisher ID certificate in PCKS#12 form (FileName.pfx). I've used the vs_pkcs.exe tool to extract the ACS Publisher ID .key and .cer files. However, when I use these files to sign my SIS file, I get the following errors: E:\Symbian\sis\makesis text.pkg Processing text.pkg... error: key file does not match certificate(s) given error: make sure key and certificate(s) specified correspond
Answer:
The error is sometimes caused by a blank line in the .cer or .key file; immediately before the "-----END CERTIFICATE-----" marker.
-----BEGIN CERTIFICATE-----
...
NZCUldtsz3442RJOvbaIap9SKx+ZwBIt5/ZE75wlqkrUSBKt6oE+7yhV+Ud2TBaTmiq0m53bm3s=
-----END CERTIFICATE-----
Simply edit the files with Notepad.exe (or some other simple text editor) and delete the empty line if it exists. Save the files and the certificate error should now disappear.
0 comments:
Post a Comment