Metadata-Version: 1.1
Name: deviceidentifier
Version: 0.0.4
Summary: Utils to manipulate and learn from assorted device identifier formats via Reincubate's DeviceIdentifier API.
Home-page: https://github.com/reincubate/deviceidentifier-py
Author: Reincubate
Author-email: enterprise@reincubate.com
License: Proprietary
Description: DeviceIdentifier API Python library
        ===================================
        
        Utils to manipulate and learn from assorted device identifier formats
        via Reincubate's `DeviceIdentifier
        API <https://www.reincubate.com/deviceidentifier-api/>`__.
        
        Technical documentation is available on `Reincubate's
        site <https://docs.reincubate.com/deviceidentifier/?utm_source=github&utm_medium=deviceidentifier-py&utm_campaign=deviceidentifier>`__.
        
        Getting started
        ---------------
        
        Try these:
        
        .. code:: bash
        
            $ pip install deviceidentifier
        
        Calls to the API through this client then become easy:
        
        .. code:: python
        
            from deviceidentifier import api
        
            # Look up an Apple serial number
            api.lookup( api.TYPE_APPLE_SERIAL, 'C8QH6T96DPNG' )
        
            # Identify the type of an identifier
            api.identify_identifier( 'iPhone5,3' )
        
            # Triangulate a bunch of data from a collection of identifiers
            api.enhance_metadata(
                apple_identifier='iPhone5,3',
                apple_serial='C8QH6T96DPNG',
                gsma_imei='013554006297015',
                gsma_iccid='8965880812100011146'
            )
        
        The API supports anonymous access, and provides limited, rate-limited
        data when doing so. Tokens can be obtained by contacting
        `Reincubate <mailto:enterprise@reincubate.com>`__, and either by setting
        an environment variable:
        
        .. code:: bash
        
            $ export RI_DEVID_TOKEN='api-authentication-token'
        
        Or by passing the token value directly into the code:
        
        .. code:: python
        
            from deviceidentifier import api
        
            # Look up an Apple serial number
            api.lookup( api.TYPE_APPLE_SERIAL, 'api-authenticaton-token', 'C8QH6T96DPNG' )
        
        Using the command-line interface
        --------------------------------
        
        Apple
        ~~~~~
        
        Apple serial numbers: legacy (80s & 90s), old (early 2000s) and post-2010 formats
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        
        .. code:: bash
        
            $ python -m deviceidentifier.cli.apple_serial C8QH6T96DPNG
        
        .. code:: json
        
            {
                "anonymised": "C8QH6•••DPNG",
                "configurationCode": {
                    "code": "DPNG",
                    "image": {
                        "height": 120,
                        "url": "https://di-api.reincubate.com/resource-159c9e87a3d6bbf5075bb030fa2925a0/",
                        "width": 120
                    },
                    "skuHint": "iPhone 4 CDMA (8GB)"
                },
                "coverageUrl": "https://checkcoverage.apple.com/gb/en?sn=C8QH6T96DPNG",
                "id": "C8QH6T96DPNG",
                "manufacturing": {
                    "city": "",
                    "company": "",
                    "country": "China",
                    "date": "2012-02-05",
                    "flag": "🇨🇳",
                    "id": "C8Q"
                },
                "serialType": "2010",
                "uniqueId": {
                    "productionNo": 31524,
                    "value": "T96"
                }
            }
        
        Apple model numbers
        ^^^^^^^^^^^^^^^^^^^
        
        .. code:: bash
        
            $ python -m deviceidentifier.cli.apple_model MC605FD/A
        
        .. code:: json
        
            {
                "anonymised": "C605",
                "appleIdentifier": {
                    "id": "iPhone3,1",
                    "image": {
                        "height": 330,
                        "url": "https://di-api.reincubate.com/resource-26b007e1007180a28e272036775a48a0/",
                        "width": 450
                    },
                    "product": {
                        "line": "iPhone",
                        "sku": "iPhone 4"
                    },
                    "variant": "GSM"
                },
                "id": "C605",
                "region": {
                    "flags": "🇦🇹🇱🇮🇨🇭",
                    "name": "Austria, Liechtenstein, Switzerland"
                },
                "specification": {
                    "case_size": "",
                    "colour": "Black",
                    "material": "",
                    "storage": "32 GB"
                },
                "type": "Retail"
            }
        
        Apple identifiers
        ^^^^^^^^^^^^^^^^^
        
        .. code:: bash
        
            $ python -m deviceidentifier.cli.apple_identifier iPhone5,3
        
        .. code:: json
        
            {
                "id": "iPhone5,3",
                "image": {
                    "height": 330,
                    "url": "https://di-api.reincubate.com/resource-775ac9634280be8d7dfb0b75b4727f69/",
                    "width": 450
                },
                "product": {
                    "line": "iPhone",
                    "sku": "iPhone 5c"
                },
                "variant": "GSM + CDMA"
            }
        
        Apple internal names
        ^^^^^^^^^^^^^^^^^^^^
        
        .. code:: bash
        
            $ python -m deviceidentifier.cli.apple_internal_name N92AP
        
        .. code:: json
        
            {
                "appleIdentifier": {
                    "id": "iPhone3,3",
                    "image": {
                        "height": 330,
                        "url": "https://di-api.reincubate.com/resource-1e7820cb714e3d477534f291c0f87e83/",
                        "width": 450
                    },
                    "product": {
                        "line": "iPhone",
                        "sku": "iPhone 4"
                    },
                    "variant": "CDMA"
                }
            }
        
        Apple IDFA / IDFV
        ^^^^^^^^^^^^^^^^^
        
        .. code:: bash
        
            $ python -m deviceidentifier.cli.apple_idfa 002ebf12-a125-5ddf-a739-67c3c5d20177
        
        .. code:: json
        
            {
                "anonymised": "••••••••-••••-••••-••••-••••••••••••",
                "formatted": "002ebf12-a125-5ddf-a739-67c3c5d20177"
            }
        
        Apple UDIDs
        ^^^^^^^^^^^
        
        .. code:: bash
        
            $ python -m deviceidentifier.cli.apple_udid db72cb76a00cb81675f19907d4ac2b298628d83c
        
        .. code:: json
        
            {
                "anonymised": "••••••••••••••••••••••••••••••••••••••••",
                "compromised": false,
                "formatted": "db72cb76a00cb81675f19907d4ac2b298628d83c"
            }
        
        Apple "A" numbers
        ^^^^^^^^^^^^^^^^^
        
        .. code:: bash
        
            python -m deviceidentifier.cli.apple_anumber A1784
        
        .. code:: json
        
            {
                "appleIdentifier": {
                    "id": "iPhone9,4",
                    "image": {
                        "height": 330,
                        "url": "https://di-api.reincubate.com/resource-d8c14fc2a4dfcf27d5a217fb5e4c0cc4/",
                        "width": 450
                    },
                    "product": {
                        "line": "iPhone",
                        "sku": "iPhone 7 Plus"
                    },
                    "variant": "GSM"
                }
            }
        
        CDMA
        ~~~~
        
        Mobile Equipment Identifier (MEIDs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        
        .. code:: bash
        
            $ python -m deviceidentifier.cli.cdma_meid 354403064522046
        
        .. code:: json
        
            {
                "anonymised": "35440306••••••6",
                "checksum": "6",
                "id": "354403064522046",
                "manufacturer": "440306",
                "pESN": "808D1904",
                "regionCode": {
                    "code": "35",
                    "group": "Comreg",
                    "origin": "Ireland"
                },
                "serial": "452204"
            }
        
        GSMA
        ~~~~
        
        IMEIs (enriched with data from Apple's GSX service for clients with access)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        
        .. code:: bash
        
            $ python -m deviceidentifier.cli.gsma_imei 013554006297015
        
        .. code:: json
        
            {
                "anonymised": "01355400••••••5",
                "checksum": "5",
                "gsmaTac": {
                    "appleModel": {
                        "anonymised": "D298",
                        "appleIdentifier": {
                            "id": "iPhone5,2",
                            "image": {
                                "height": 330,
                                "url": "https://di-api.reincubate.com/resource-c2aac9e5e3695fca1090633a4ea1b60d/",
                                "width": 450
                            },
                            "product": {
                                "line": "iPhone",
                                "sku": "iPhone 5"
                            },
                            "variant": "CDMA + LTE"
                        },
                        "id": "D298",
                        "region": {
                            "flags": null,
                            "name": null
                        },
                        "specification": {
                            "case_size": "",
                            "colour": "White",
                            "material": "",
                            "storage": "16 GB"
                        },
                        "type": "Retail"
                    },
                    "id": "01355400",
                    "manufacturer": "Apple",
                    "product": {
                        "line": "iPhone",
                        "sku": "iPhone 5"
                    }
                },
                "gsx": {
                    "appleSerial": {
                        "anonymised": "F2TK4•••DTWF",
                        "configurationCode": {
                            "code": "DTWF",
                            "image": {
                                "height": 120,
                                "url": "https://di-api.reincubate.com/resource-4cb3c6fe7c62f327cd11712196c221b0/",
                                "width": 120
                            },
                            "skuHint": "iPhone 5 (GSM, CDMA)"
                        },
                        "coverageUrl": "https://checkcoverage.apple.com/gb/en?sn=F2TK4TZ7DTWF",
                        "id": "F2TK4TZ7DTWF",
                        "manufacturing": {
                            "city": "Zhengzhou",
                            "company": "Foxconn",
                            "country": "China",
                            "date": "2013-01-22",
                            "flag": "🇨🇳",
                            "id": "F2T"
                        },
                        "serialType": "2010",
                        "uniqueId": {
                            "productionNo": 32341,
                            "value": "TZ7"
                        }
                    },
                    "sale": {
                        "estimatedPurchaseDate": "2013-04-10",
                        "initialCarrier": "Sweden Tele2.",
                        "realPurchaseDate": "2013-04-10",
                        "saleRegion": "Sweden",
                        "saleRegionFlag": "🇸🇪",
                        "seller": "TELE2 SVERIGE AB"
                    },
                    "skuHint": "IPHONE 5",
                    "specifications": [
                        "WHITE",
                        "16GB",
                        "GSM"
                    ],
                    "status": {
                        "appleId": null,
                        "coverage": "Out Of Warranty (No Coverage)",
                        "sim": "Locked"
                    }
                },
                "id": "013554006297015",
                "reportingBodyIdentifier": {
                    "code": "01",
                    "group": "PTCRB",
                    "origin": "United States"
                },
                "serial": "629701",
                "svn": null,
                "type": "IMEI"
            }
        
        Type allocation codes (TAC)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        
        .. code:: bash
        
            $ python -m deviceidentifier.cli.gsma_tac 01326300
        
        .. code:: json
        
            {
                "appleModel": {
                    "anonymised": "D198",
                    "appleIdentifier": {
                        "id": "iPhone3,1",
                        "image": {
                            "height": 330,
                            "url": "https://di-api.reincubate.com/resource-26b007e1007180a28e272036775a48a0/",
                            "width": 450
                        },
                        "product": {
                            "line": "iPhone",
                            "sku": "iPhone 4"
                        },
                        "variant": "GSM"
                    },
                    "id": "D198",
                    "region": {
                        "flags": "🇮🇳",
                        "name": "India"
                    },
                    "specification": {
                        "case_size": null,
                        "colour": "White",
                        "material": null,
                        "storage": "8 GB"
                    },
                    "type": "Retail"
                },
                "id": "01326300",
                "manufacturer": "Apple",
                "product": {
                    "line": "iPhone",
                    "sku": "iPhone 4"
                }
            }
        
        ICCIDs
        ^^^^^^
        
        .. code:: bash
        
            $ python -m deviceidentifier.cli.gsma_iccid 8965880812100011146
        
        .. code:: json
        
            {
                "anonymised": "896588••••••••••••6",
                "atiiccid": null,
                "checksum": "6",
                "issuer": {
                    "code": "88",
                    "country": {
                        "code": "65",
                        "flag": "🇸🇬",
                        "name": "Singapore"
                    },
                    "name": null
                },
                "majorIndustry": {
                    "code": "89",
                    "industry": "Telecommunications administrations and private operating agencies",
                    "type": "Healthcare, telecommunications and other future industry assignments"
                },
                "month": "08",
                "simNumber": "001114",
                "switch": "10",
                "year": "12"
            }
        
        Identifying an identifier
        ~~~~~~~~~~~~~~~~~~~~~~~~~
        
        .. code:: bash
        
            $ python -m deviceidentifier.cli.identify_identifier iPhone5,3
        
        .. code:: json
        
            {
                "iPhone5,3": [
                    "apple_identifier"
                ]
            }
        
        Troubleshooting
        ---------------
        
        See the `support & service
        status <https://docs.reincubate.com/ricloud/status/?utm_source=github&utm_medium=deviceidentifier-py&utm_campaign=deviceidentifier>`__
        page.
        
        Need more functionality?
        ------------------------
        
        Reincubate's vision is to provide data access, extraction and recovery
        technology for all app platforms - be they mobile, desktop, web,
        appliance or in-vehicle.
        
        The company was founded in 2008 and was first to market with both iOS
        and iCloud data extraction technology. With over half a decade's
        experience helping law enforcement and security organisations access iOS
        data, Reincubate has licensed software to government, child protection
        and corporate clients around the world.
        
        The company can help users with:
        
        -  iCloud access and data recovery
        -  Recovery of data deleted from SQLite databases
        -  Bulk iOS data recovery
        -  Forensic examination of iOS data
        -  Passcode, password, keybag and keychain analysis
        -  Custom iOS app data extraction
        -  Advanced PList, TypedStream and Mbdb manipulation
        
        Contact
        `Reincubate <https://www.reincubate.com/?utm_source=github&utm_medium=deviceidentifier-py&utm_campaign=deviceidentifier>`__
        for more information.
        
        Terms & license
        ---------------
        
        See the ``LICENSE`` file for details on this implementation's license.
        Users must not use the API in any way that is unlawful, illegal,
        fraudulent or harmful; or in connection with any unlawful, illegal,
        fraudulent or harmful purpose or activity.
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Utilities
