{ "info": { "author": "Reincubate", "author_email": "enterprise@reincubate.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Utilities" ], "description": "DeviceIdentifier API Python library\n===================================\n\nUtils to manipulate and learn from assorted device identifier formats\nvia Reincubate\u2019s `DeviceIdentifier\nAPI `__.\n\nTechnical documentation is available on `Reincubate\u2019s\nsite `__.\n\nGetting started\n---------------\n\nTry these:\n\n.. code:: bash\n\n $ pip install deviceidentifier\n\nCalls to the API through this client then become easy:\n\n.. code:: python\n\n from deviceidentifier import api\n\n # Look up an Apple serial number\n api.lookup( api.TYPE_APPLE_SERIAL, 'C8QH6T96DPNG' )\n\n # Identify the type of an identifier\n api.identify_identifier( 'iPhone5,3' )\n\n # Triangulate a bunch of data from a collection of identifiers\n api.enhance_metadata(\n apple_identifier='iPhone5,3',\n apple_serial='C8QH6T96DPNG',\n gsma_imei='013554006297015',\n gsma_iccid='8965880812100011146'\n )\n\nThe API supports anonymous access, and provides limited, rate-limited\ndata when doing so. Tokens can be obtained by contacting\n`Reincubate `__, and either by setting\nan environment variable:\n\n.. code:: bash\n\n $ export RI_DEVID_TOKEN='api-authentication-token'\n\nOr by passing the token value directly into the code:\n\n.. code:: python\n\n from deviceidentifier import api\n\n # Look up an Apple serial number\n api.lookup( api.TYPE_APPLE_SERIAL, 'api-authenticaton-token', 'C8QH6T96DPNG' )\n\nUsing the command-line interface\n--------------------------------\n\nApple\n~~~~~\n\nApple serial numbers: legacy (80s & 90s), old (early 2000s) and post-2010 formats\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: bash\n\n $ python -m deviceidentifier.cli.apple_serial C8QH6T96DPNG\n\n.. code:: json\n\n {\n \"anonymised\": \"C8QH6\u2022\u2022\u2022DPNG\",\n \"configurationCode\": {\n \"code\": \"DPNG\",\n \"image\": {\n \"height\": 120,\n \"url\": \"https://di-api.reincubate.com/resource-159c9e87a3d6bbf5075bb030fa2925a0/\",\n \"width\": 120\n },\n \"skuHint\": \"iPhone 4 CDMA (8GB)\"\n },\n \"coverageUrl\": \"https://checkcoverage.apple.com/gb/en?sn=C8QH6T96DPNG\",\n \"id\": \"C8QH6T96DPNG\",\n \"manufacturing\": {\n \"city\": \"\",\n \"company\": \"\",\n \"country\": \"China\",\n \"date\": \"2012-02-05\",\n \"flag\": \"\ud83c\udde8\ud83c\uddf3\",\n \"id\": \"C8Q\"\n },\n \"serialType\": \"2010\",\n \"uniqueId\": {\n \"productionNo\": 31524,\n \"value\": \"T96\"\n }\n }\n\nApple model numbers\n^^^^^^^^^^^^^^^^^^^\n\n.. code:: bash\n\n $ python -m deviceidentifier.cli.apple_model MC605FD/A\n\n.. code:: json\n\n {\n \"anonymised\": \"C605\",\n \"appleIdentifier\": {\n \"id\": \"iPhone3,1\",\n \"image\": {\n \"height\": 330,\n \"url\": \"https://di-api.reincubate.com/resource-26b007e1007180a28e272036775a48a0/\",\n \"width\": 450\n },\n \"product\": {\n \"line\": \"iPhone\",\n \"sku\": \"iPhone 4\"\n },\n \"variant\": \"GSM\"\n },\n \"id\": \"C605\",\n \"region\": {\n \"flags\": \"\ud83c\udde6\ud83c\uddf9\ud83c\uddf1\ud83c\uddee\ud83c\udde8\ud83c\udded\",\n \"name\": \"Austria, Liechtenstein, Switzerland\"\n },\n \"specification\": {\n \"case_size\": \"\",\n \"colour\": \"Black\",\n \"material\": \"\",\n \"storage\": \"32 GB\"\n },\n \"type\": \"Retail\"\n }\n\nApple identifiers\n^^^^^^^^^^^^^^^^^\n\n.. code:: bash\n\n $ python -m deviceidentifier.cli.apple_identifier iPhone5,3\n\n.. code:: json\n\n {\n \"id\": \"iPhone5,3\",\n \"image\": {\n \"height\": 330,\n \"url\": \"https://di-api.reincubate.com/resource-775ac9634280be8d7dfb0b75b4727f69/\",\n \"width\": 450\n },\n \"product\": {\n \"line\": \"iPhone\",\n \"sku\": \"iPhone 5c\"\n },\n \"variant\": \"GSM + CDMA\"\n }\n\nApple internal names\n^^^^^^^^^^^^^^^^^^^^\n\n.. code:: bash\n\n $ python -m deviceidentifier.cli.apple_internal_name N92AP\n\n.. code:: json\n\n {\n \"appleIdentifier\": {\n \"id\": \"iPhone3,3\",\n \"image\": {\n \"height\": 330,\n \"url\": \"https://di-api.reincubate.com/resource-1e7820cb714e3d477534f291c0f87e83/\",\n \"width\": 450\n },\n \"product\": {\n \"line\": \"iPhone\",\n \"sku\": \"iPhone 4\"\n },\n \"variant\": \"CDMA\"\n }\n }\n\nApple IDFA / IDFV\n^^^^^^^^^^^^^^^^^\n\n.. code:: bash\n\n $ python -m deviceidentifier.cli.apple_idfa 002ebf12-a125-5ddf-a739-67c3c5d20177\n\n.. code:: json\n\n {\n \"anonymised\": \"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022-\u2022\u2022\u2022\u2022-\u2022\u2022\u2022\u2022-\u2022\u2022\u2022\u2022-\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\",\n \"formatted\": \"002ebf12-a125-5ddf-a739-67c3c5d20177\"\n }\n\nApple UDIDs\n^^^^^^^^^^^\n\n.. code:: bash\n\n $ python -m deviceidentifier.cli.apple_udid db72cb76a00cb81675f19907d4ac2b298628d83c\n\n.. code:: json\n\n {\n \"anonymised\": \"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\",\n \"compromised\": false,\n \"formatted\": \"db72cb76a00cb81675f19907d4ac2b298628d83c\"\n }\n\nApple \u201cA\u201d numbers\n^^^^^^^^^^^^^^^^^\n\n.. code:: bash\n\n python -m deviceidentifier.cli.apple_anumber A1784\n\n.. code:: json\n\n {\n \"appleIdentifier\": {\n \"id\": \"iPhone9,4\",\n \"image\": {\n \"height\": 330,\n \"url\": \"https://di-api.reincubate.com/resource-d8c14fc2a4dfcf27d5a217fb5e4c0cc4/\",\n \"width\": 450\n },\n \"product\": {\n \"line\": \"iPhone\",\n \"sku\": \"iPhone 7 Plus\"\n },\n \"variant\": \"GSM\"\n }\n }\n\nCDMA\n~~~~\n\nMobile Equipment Identifier (MEIDs)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: bash\n\n $ python -m deviceidentifier.cli.cdma_meid 354403064522046\n\n.. code:: json\n\n {\n \"anonymised\": \"35440306\u2022\u2022\u2022\u2022\u2022\u20226\",\n \"checksum\": \"6\",\n \"id\": \"354403064522046\",\n \"manufacturer\": \"440306\",\n \"pESN\": \"808D1904\",\n \"regionCode\": {\n \"code\": \"35\",\n \"group\": \"Comreg\",\n \"origin\": \"Ireland\"\n },\n \"serial\": \"452204\"\n }\n\nGSMA\n~~~~\n\nIMEIs (enriched with data from Apple\u2019s GSX service for clients with access)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: bash\n\n $ python -m deviceidentifier.cli.gsma_imei 013554006297015\n\n.. code:: json\n\n {\n \"anonymised\": \"01355400\u2022\u2022\u2022\u2022\u2022\u20225\",\n \"checksum\": \"5\",\n \"gsmaTac\": {\n \"appleModel\": {\n \"anonymised\": \"D298\",\n \"appleIdentifier\": {\n \"id\": \"iPhone5,2\",\n \"image\": {\n \"height\": 330,\n \"url\": \"https://di-api.reincubate.com/resource-c2aac9e5e3695fca1090633a4ea1b60d/\",\n \"width\": 450\n },\n \"product\": {\n \"line\": \"iPhone\",\n \"sku\": \"iPhone 5\"\n },\n \"variant\": \"CDMA + LTE\"\n },\n \"id\": \"D298\",\n \"region\": {\n \"flags\": null,\n \"name\": null\n },\n \"specification\": {\n \"case_size\": \"\",\n \"colour\": \"White\",\n \"material\": \"\",\n \"storage\": \"16 GB\"\n },\n \"type\": \"Retail\"\n },\n \"id\": \"01355400\",\n \"manufacturer\": \"Apple\",\n \"product\": {\n \"line\": \"iPhone\",\n \"sku\": \"iPhone 5\"\n }\n },\n \"gsx\": {\n \"appleSerial\": {\n \"anonymised\": \"F2TK4\u2022\u2022\u2022DTWF\",\n \"configurationCode\": {\n \"code\": \"DTWF\",\n \"image\": {\n \"height\": 120,\n \"url\": \"https://di-api.reincubate.com/resource-4cb3c6fe7c62f327cd11712196c221b0/\",\n \"width\": 120\n },\n \"skuHint\": \"iPhone 5 (GSM, CDMA)\"\n },\n \"coverageUrl\": \"https://checkcoverage.apple.com/gb/en?sn=F2TK4TZ7DTWF\",\n \"id\": \"F2TK4TZ7DTWF\",\n \"manufacturing\": {\n \"city\": \"Zhengzhou\",\n \"company\": \"Foxconn\",\n \"country\": \"China\",\n \"date\": \"2013-01-22\",\n \"flag\": \"\ud83c\udde8\ud83c\uddf3\",\n \"id\": \"F2T\"\n },\n \"serialType\": \"2010\",\n \"uniqueId\": {\n \"productionNo\": 32341,\n \"value\": \"TZ7\"\n }\n },\n \"sale\": {\n \"estimatedPurchaseDate\": \"2013-04-10\",\n \"initialCarrier\": \"Sweden Tele2.\",\n \"realPurchaseDate\": \"2013-04-10\",\n \"saleRegion\": \"Sweden\",\n \"saleRegionFlag\": \"\ud83c\uddf8\ud83c\uddea\",\n \"seller\": \"TELE2 SVERIGE AB\"\n },\n \"skuHint\": \"IPHONE 5\",\n \"specifications\": [\n \"WHITE\",\n \"16GB\",\n \"GSM\"\n ],\n \"status\": {\n \"appleId\": null,\n \"coverage\": \"Out Of Warranty (No Coverage)\",\n \"sim\": \"Locked\"\n }\n },\n \"id\": \"013554006297015\",\n \"reportingBodyIdentifier\": {\n \"code\": \"01\",\n \"group\": \"PTCRB\",\n \"origin\": \"United States\"\n },\n \"serial\": \"629701\",\n \"svn\": null,\n \"type\": \"IMEI\"\n }\n\nType allocation codes (TAC)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: bash\n\n $ python -m deviceidentifier.cli.gsma_tac 01326300\n\n.. code:: json\n\n {\n \"appleModel\": {\n \"anonymised\": \"D198\",\n \"appleIdentifier\": {\n \"id\": \"iPhone3,1\",\n \"image\": {\n \"height\": 330,\n \"url\": \"https://di-api.reincubate.com/resource-26b007e1007180a28e272036775a48a0/\",\n \"width\": 450\n },\n \"product\": {\n \"line\": \"iPhone\",\n \"sku\": \"iPhone 4\"\n },\n \"variant\": \"GSM\"\n },\n \"id\": \"D198\",\n \"region\": {\n \"flags\": \"\ud83c\uddee\ud83c\uddf3\",\n \"name\": \"India\"\n },\n \"specification\": {\n \"case_size\": null,\n \"colour\": \"White\",\n \"material\": null,\n \"storage\": \"8 GB\"\n },\n \"type\": \"Retail\"\n },\n \"id\": \"01326300\",\n \"manufacturer\": \"Apple\",\n \"product\": {\n \"line\": \"iPhone\",\n \"sku\": \"iPhone 4\"\n }\n }\n\nICCIDs\n^^^^^^\n\n.. code:: bash\n\n $ python -m deviceidentifier.cli.gsma_iccid 8965880812100011146\n\n.. code:: json\n\n {\n \"anonymised\": \"896588\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u20226\",\n \"atiiccid\": null,\n \"checksum\": \"6\",\n \"issuer\": {\n \"code\": \"88\",\n \"country\": {\n \"code\": \"65\",\n \"flag\": \"\ud83c\uddf8\ud83c\uddec\",\n \"name\": \"Singapore\"\n },\n \"name\": null\n },\n \"majorIndustry\": {\n \"code\": \"89\",\n \"industry\": \"Telecommunications administrations and private operating agencies\",\n \"type\": \"Healthcare, telecommunications and other future industry assignments\"\n },\n \"month\": \"08\",\n \"simNumber\": \"001114\",\n \"switch\": \"10\",\n \"year\": \"12\"\n }\n\nIdentifying an identifier\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: bash\n\n $ python -m deviceidentifier.cli.identify_identifier iPhone5,3\n\n.. code:: json\n\n {\n \"iPhone5,3\": [\n \"apple_identifier\"\n ]\n }\n\nTroubleshooting\n---------------\n\nSee the `support & service\nstatus `__\npage.\n\nNeed more functionality?\n------------------------\n\nReincubate\u2019s vision is to provide data access, extraction and recovery\ntechnology for all app platforms - be they mobile, desktop, web,\nappliance or in-vehicle.\n\nThe company was founded in 2008 and was first to market with both iOS\nand iCloud data extraction technology. With over half a decade\u2019s\nexperience helping law enforcement and security organisations access iOS\ndata, Reincubate has licensed software to government, child protection\nand corporate clients around the world.\n\nThe company can help users with:\n\n- iCloud access and data recovery\n- Recovery of data deleted from SQLite databases\n- Bulk iOS data recovery\n- Forensic examination of iOS data\n- Passcode, password, keybag and keychain analysis\n- Custom iOS app data extraction\n- Advanced PList, TypedStream and Mbdb manipulation\n\nContact\n`Reincubate `__\nfor more information.\n\nTerms & license\n---------------\n\nSee the ``LICENSE`` file for details on this implementation\u2019s license.\nUsers must not use the API in any way that is unlawful, illegal,\nfraudulent or harmful; or in connection with any unlawful, illegal,\nfraudulent or harmful purpose or activity.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/reincubate/deviceidentifier-py", "keywords": "", "license": "Proprietary", "maintainer": "", "maintainer_email": "", "name": "deviceidentifier", "package_url": "https://pypi.org/project/deviceidentifier/", "platform": "", "project_url": "https://pypi.org/project/deviceidentifier/", "project_urls": { "Homepage": "https://github.com/reincubate/deviceidentifier-py" }, "release_url": "https://pypi.org/project/deviceidentifier/0.0.5/", "requires_dist": null, "requires_python": "", "summary": "Utils to manipulate and learn from assorted device identifier formats via Reincubate's DeviceIdentifier API.", "version": "0.0.5" }, "last_serial": 3939677, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "3a568273b41f9b7c866e176ac2c1de16", "sha256": "a975cf6790c257ee08665df5d7454ce92911d79364296f5a1212a7f9c6038e31" }, "downloads": -1, "filename": "deviceidentifier-0.0.1.tar.gz", "has_sig": false, "md5_digest": "3a568273b41f9b7c866e176ac2c1de16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8428, "upload_time": "2018-01-08T10:26:45", "url": "https://files.pythonhosted.org/packages/41/1f/ac6a26f36406c5e59c47229f42a43c9953daeb8e7201c6c1eb94ab432c46/deviceidentifier-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "7e538cb2f1b96e6bd57dc597adbccfd7", "sha256": "fa36bca8ee9c68117cb04bfcdc1a773381f4545c6cac00f6c26ec57e02080779" }, "downloads": -1, "filename": "deviceidentifier-0.0.2.tar.gz", "has_sig": false, "md5_digest": "7e538cb2f1b96e6bd57dc597adbccfd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8444, "upload_time": "2018-01-08T10:32:51", "url": "https://files.pythonhosted.org/packages/e0/f5/bcb873b982259ee088d6e7bbaa2d3600b8b2920b47b7e06b9998dcbef4d1/deviceidentifier-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "84737c550763688d18ee609c8426325a", "sha256": "df3ada1f83fef10f01cdd14015a6f760c8dfe135736e7574136ec9fc452ea8f9" }, "downloads": -1, "filename": "deviceidentifier-0.0.3.tar.gz", "has_sig": false, "md5_digest": "84737c550763688d18ee609c8426325a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9402, "upload_time": "2018-01-08T15:28:58", "url": "https://files.pythonhosted.org/packages/eb/01/72e9a683dc906fa6bb6fb2b9d8b9a768a1df5f6ba4be45a63cea4313168d/deviceidentifier-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "8220918cb0466e1e613d890e9bd965bd", "sha256": "d233cbd7e46597899de470145406db74ec7e977b3a0ff32c19a6aa375b8aa0da" }, "downloads": -1, "filename": "deviceidentifier-0.0.4.tar.gz", "has_sig": false, "md5_digest": "8220918cb0466e1e613d890e9bd965bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9502, "upload_time": "2018-01-17T13:30:30", "url": "https://files.pythonhosted.org/packages/90/be/b094e531d53c599d4a505127783239ac752ddf7c45f23afeffedd7ee55da/deviceidentifier-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "2a6cbb883b78546e80bbe524d348a9f6", "sha256": "98280f6a204210601fba469a12eb884bc758c88b88f1b1455271b60f636fad76" }, "downloads": -1, "filename": "deviceidentifier-0.0.5.tar.gz", "has_sig": false, "md5_digest": "2a6cbb883b78546e80bbe524d348a9f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13105, "upload_time": "2018-06-07T13:20:48", "url": "https://files.pythonhosted.org/packages/0f/cd/f73ce1e3f5c8a0f737ff243b9a67b74954316e113d5d6bcd1527159d4798/deviceidentifier-0.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2a6cbb883b78546e80bbe524d348a9f6", "sha256": "98280f6a204210601fba469a12eb884bc758c88b88f1b1455271b60f636fad76" }, "downloads": -1, "filename": "deviceidentifier-0.0.5.tar.gz", "has_sig": false, "md5_digest": "2a6cbb883b78546e80bbe524d348a9f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13105, "upload_time": "2018-06-07T13:20:48", "url": "https://files.pythonhosted.org/packages/0f/cd/f73ce1e3f5c8a0f737ff243b9a67b74954316e113d5d6bcd1527159d4798/deviceidentifier-0.0.5.tar.gz" } ] }