RU2015107557A - Генерация собственного кода из кода на промежуточном языке для приложения - Google Patents
Генерация собственного кода из кода на промежуточном языке для приложения Download PDFInfo
- Publication number
- RU2015107557A RU2015107557A RU2015107557A RU2015107557A RU2015107557A RU 2015107557 A RU2015107557 A RU 2015107557A RU 2015107557 A RU2015107557 A RU 2015107557A RU 2015107557 A RU2015107557 A RU 2015107557A RU 2015107557 A RU2015107557 A RU 2015107557A
- Authority
- RU
- Russia
- Prior art keywords
- computing device
- application
- code
- mdil
- libraries
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Abstract
1. Способ, содержащий:прием, в вычислительном устройстве, машинно-зависимого кода на промежуточном языке (MDIL кода), генерируемого онлайн-провайдером для приложения;в вычислительном устройстве, установку приложения на вычислительном устройстве путем генерации собственного образа для приложения путем связывания MDIL кода, причем генерация собственного образа содержит:связывание части MDIL кода с одной или более библиотеками на вычислительном устройстве; исохранение собственного образа на вычислительном устройстве для использования при загрузке приложения для исполнения.2. Способ по п. 1, дополнительно содержащий обновление вычислительного устройства, причем обновление вычислительного устройства содержит:обновление набора библиотек на вычислительном устройстве, причем набор библиотек включает в себя по меньшей мере одну библиотеку из одной или более библиотек, связанных с частью MDIL кода;обновление по меньшей мере одного механизма среды выполнения вычислительного устройства;после обновления набора библиотек, автоматическую генерацию обновленного собственного образа для приложения путем связывания части MDIL кода с упомянутой по меньшей мере одной библиотекой из упомянутой одной или более библиотек после того, как упомянутая одна или более библиотек обновлены на вычислительном устройстве, причем обновленный собственный образ для приложения генерируется таким образом, что обновленный собственный образ является исполняемым с использованием обновленного по меньшей мере одного механизма среды выполнения; исохранение обновленного собственного образа на вычислительном устройстве для использования при загрузке
Claims (10)
1. Способ, содержащий:
прием, в вычислительном устройстве, машинно-зависимого кода на промежуточном языке (MDIL кода), генерируемого онлайн-провайдером для приложения;
в вычислительном устройстве, установку приложения на вычислительном устройстве путем генерации собственного образа для приложения путем связывания MDIL кода, причем генерация собственного образа содержит:
связывание части MDIL кода с одной или более библиотеками на вычислительном устройстве; и
сохранение собственного образа на вычислительном устройстве для использования при загрузке приложения для исполнения.
2. Способ по п. 1, дополнительно содержащий обновление вычислительного устройства, причем обновление вычислительного устройства содержит:
обновление набора библиотек на вычислительном устройстве, причем набор библиотек включает в себя по меньшей мере одну библиотеку из одной или более библиотек, связанных с частью MDIL кода;
обновление по меньшей мере одного механизма среды выполнения вычислительного устройства;
после обновления набора библиотек, автоматическую генерацию обновленного собственного образа для приложения путем связывания части MDIL кода с упомянутой по меньшей мере одной библиотекой из упомянутой одной или более библиотек после того, как упомянутая одна или более библиотек обновлены на вычислительном устройстве, причем обновленный собственный образ для приложения генерируется таким образом, что обновленный собственный образ является исполняемым с использованием обновленного по меньшей мере одного механизма среды выполнения; и
сохранение обновленного собственного образа на вычислительном устройстве для использования при загрузке приложения для исполнения.
3. Способ по п. 1, дополнительно содержащий загрузку собственного образа во время исполнения приложения, при этом загрузка собственного образа выполняется посредством среды выполнения общего языка.
4. Способ по п. 1, в котором MDIL код содержит одну или более инструкций машинного кода и одну или более псевдо инструкций, кодированных на двоичном уровне, и в котором инструкции машинного кода основаны на наборе инструкций процессора для процессора вычислительного устройства.
5. Способ по п. 4, в котором связывание MDIL кода с упомянутой одной или более библиотеками содержит:
генерацию исполняемого кода по меньшей мере путем генерации инструкции на собственном языке из псевдо инструкции псевдо инструкций в MDIL коде.
6. Способ по п. 5, в котором генерация инструкции на собственном языке содержит генерацию численного смещения поля на основе псевдо инструкции.
7. Способ по п. 6, в котором псевдо инструкция содержит маркер, который идентифицирует поле, и собственная инструкция включает в себя численное смещение поля для ссылки на поле, когда исполняется.
8. Способ по п. 1, дополнительно содержащий:
прием нового MDIL кода для приложения;
обновление приложения на вычислительном устройстве путем генерации обновленного собственного образа для приложения, включающее в себя связывание новой части MDIL кода с упомянутой одной или более библиотеками на вычислительном устройстве; и
сохранение обновленного собственного образа на вычислительном устройстве для использования при загрузке приложения для исполнения.
9. Вычислительное устройство, которое включает в себя процессор и память, причем память хранит исполняемые компьютером инструкции, чтобы побуждать вычислительное устройство выполнять способ, причем способ содержит:
прием, в вычислительном устройстве, по меньшей мере одного установочного пакета для приложения от онлайн-провайдера, причем по меньшей мере один установочный пакет содержит набор машинно-зависимых файлов на промежуточном языке (MDIL файлов);
предоставление компоновщику вычислительного устройства по меньшей мере одного MDIL файла из набора MDIL файлов и одной или более библиотек, подлежащих связыванию с упомянутым по меньшей мере одним MDIL файлом; и
генерацию, посредством компоновщика, собственного образа для приложения, причем генерация содержит связывание машинно-зависимого кода на промежуточном языке (MDIL кода) упомянутого по меньшей мере одного MDIL файла с использованием упомянутой одной или более библиотек.
10. Способ, содержащий:
генерацию набора машинно-зависимых файлов на промежуточном языке (MDIL файлов) для приложения путем компиляции предварительного кода приложения в машинно-зависимый код на промежуточном языке (MDIL код);
подписание соответствующих файлов из набора MDIL файлов, чтобы указывать, что соответствующие файлы являются доверенными как происходящие из онлайн-рынка;
генерацию списка связывания, который идентифицирует соответствующие файлы из набора MDIL файлов;
генерацию установочного пакета для приложения, содержащего набор MDIL файлов для приложения и список связывания; и
предоставление, на онлайн-рынке, установочного пакета для загрузки.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/604,618 US9569184B2 (en) | 2012-09-05 | 2012-09-05 | Generating native code from intermediate language code for an application |
US13/604,618 | 2012-09-05 | ||
PCT/US2013/057892 WO2014039458A1 (en) | 2012-09-05 | 2013-09-03 | Generating native code from intermediate language code for an application |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2015107557A true RU2015107557A (ru) | 2016-09-27 |
RU2643484C2 RU2643484C2 (ru) | 2018-02-01 |
Family
ID=49226515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2015107557A RU2643484C2 (ru) | 2012-09-05 | 2013-09-03 | Генерация собственного кода из кода на промежуточном языке для приложения |
Country Status (19)
Country | Link |
---|---|
US (2) | US9569184B2 (ru) |
EP (2) | EP2893441B1 (ru) |
JP (1) | JP6294886B2 (ru) |
KR (1) | KR102077360B1 (ru) |
CN (1) | CN104781785B (ru) |
AU (1) | AU2013312865B2 (ru) |
BR (1) | BR112015004684A2 (ru) |
CA (1) | CA2883571A1 (ru) |
CL (1) | CL2015000524A1 (ru) |
HK (1) | HK1212482A1 (ru) |
IL (1) | IL237547A0 (ru) |
MX (1) | MX348681B (ru) |
MY (1) | MY181735A (ru) |
NZ (1) | NZ705379A (ru) |
PH (1) | PH12015500405A1 (ru) |
RU (1) | RU2643484C2 (ru) |
SG (1) | SG11201501527RA (ru) |
WO (1) | WO2014039458A1 (ru) |
ZA (1) | ZA201501182B (ru) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE537794C2 (sv) * | 2012-03-20 | 2015-10-20 | Propellerhead Software Aktiebolag | Förfaranden för att distribuera en dataprogramprodukt och ett datorsystem |
EP2901348A4 (en) * | 2012-09-28 | 2016-12-14 | Hewlett Packard Entpr Dev Lp | ANWENDUNGSRANDOMISIERUNG |
US9104504B2 (en) * | 2013-03-13 | 2015-08-11 | Dell Products Lp | Systems and methods for embedded shared libraries in an executable image |
US11050820B2 (en) * | 2013-04-29 | 2021-06-29 | Sap Se | Cloud sharing system |
US9612804B2 (en) * | 2013-09-06 | 2017-04-04 | Unisys Corporation | Business suite framework for developing software applications |
US9529610B2 (en) * | 2013-12-30 | 2016-12-27 | Unisys Corporation | Updating compiled native instruction paths |
US20160070541A1 (en) * | 2014-09-08 | 2016-03-10 | Unisys Corporation | Conversion of business suite solutions |
RU2635271C2 (ru) * | 2015-03-31 | 2017-11-09 | Закрытое акционерное общество "Лаборатория Касперского" | Способ категоризации сборок и зависимых образов |
RU2628920C2 (ru) * | 2015-03-31 | 2017-08-22 | Закрытое акционерное общество "Лаборатория Касперского" | Способ обнаружения вредоносных сборок |
CN105100191B (zh) * | 2015-05-22 | 2018-09-21 | 华为技术有限公司 | 一种云编译实现Java应用安装的方法、装置及系统 |
CN104834530A (zh) * | 2015-05-27 | 2015-08-12 | 百富计算机技术(深圳)有限公司 | 一种pos应用程序的开发方法及云端服务器 |
US9367686B1 (en) * | 2015-07-21 | 2016-06-14 | AO Kaspersky Lab | System and method for antivirus checking of native images of software assemblies |
WO2017047904A1 (ko) * | 2015-09-15 | 2017-03-23 | 삼성전자 주식회사 | 신뢰된 어플리케이션을 전자 디바이스에 설치하는 방법 및 장치 |
GB2542355B (en) | 2015-09-15 | 2019-07-17 | Samsung Electronics Co Ltd | Methods and apparatus for distributing and installing trusted applications |
RU2625052C1 (ru) * | 2016-03-18 | 2017-07-11 | Акционерное общество "Лаборатория Касперского" | Способ ограничения доступа образа машинного кода к ресурсам операционной системы |
CN108519874B (zh) * | 2017-02-27 | 2022-03-29 | 腾讯科技(深圳)有限公司 | Python项目包的生成方法及装置 |
CN108897562B (zh) * | 2018-06-27 | 2022-08-09 | 腾讯科技(深圳)有限公司 | 安装包更新方法、装置、介质以及设备 |
US11194603B2 (en) * | 2018-11-16 | 2021-12-07 | Samsung Electronics Co., Ltd. | User equipment, server, control method of the user equipment and control method of the server for performing ahead-of-time (AOT) compilation of an application based on usage frequency |
KR102257012B1 (ko) * | 2019-01-14 | 2021-05-27 | (주) 익투스지노믹스 | 다양한 클라우드에 적용 가능한 대용량 데이터 처리용 분산 처리 시스템의 설치방법 |
CN109814866B (zh) * | 2019-01-31 | 2022-02-08 | 天津字节跳动科技有限公司 | 页面应用转化为原生应用的处理方法和装置 |
CN111580821B (zh) * | 2019-02-15 | 2022-10-25 | 厦门雅基软件有限公司 | 脚本绑定方法、装置、电子设备及计算机可读存储介质 |
US11150926B2 (en) | 2019-02-22 | 2021-10-19 | International Business Machines Corporation | Native code generation for cloud services |
US20230022646A1 (en) * | 2020-02-21 | 2023-01-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for updating applications in cloud environments |
CN112925526B (zh) * | 2021-03-30 | 2023-09-19 | 平安科技(深圳)有限公司 | 基于Leakcanary的编译方法、装置、设备及介质 |
US11947966B2 (en) | 2021-10-11 | 2024-04-02 | International Business Machines Corporation | Identifying computer instructions enclosed by macros and conflicting macros at build time |
US11481200B1 (en) | 2021-10-11 | 2022-10-25 | International Business Machines Corporation | Checking source code validity at time of code update |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3602857B2 (ja) | 1991-04-23 | 2004-12-15 | 株式会社日立製作所 | 多機種対応型情報処理システム、および、方法 |
US5812854A (en) * | 1996-03-18 | 1998-09-22 | International Business Machines Corporation | Mechanism for integrating user-defined instructions with compiler-generated instructions and for optimizing the integrated instruction stream |
US6484313B1 (en) * | 1999-06-30 | 2002-11-19 | Microsoft Corporation | Compiling and persisting of intermediate language code |
US7546607B2 (en) | 2002-11-19 | 2009-06-09 | Microsoft Corporation | Native code exposing virtual machine managed object |
JP2004192038A (ja) * | 2002-12-06 | 2004-07-08 | Sharp Corp | 情報処理装置、情報処理システム、情報処理プログラム、および該プログラムを記録した記録媒体 |
US20040221272A1 (en) * | 2003-04-30 | 2004-11-04 | Gansha Wu | Apparatus and methods for desynchronizing object-oriented software applications in managed runtime environments |
US7487498B2 (en) * | 2003-11-12 | 2009-02-03 | Microsoft Corporation | Strategy for referencing code resources |
US20050188203A1 (en) * | 2004-02-19 | 2005-08-25 | Jp Mobile Operating L.P. | Method for packaging information with digitally signed software without breaking signature |
US7409675B2 (en) * | 2004-02-27 | 2008-08-05 | Microsoft Corporation | Code rewriting |
WO2005114403A1 (en) * | 2004-05-21 | 2005-12-01 | Computer Associates Think, Inc. | Method and apparatus for reusing a computer software library |
US7730472B2 (en) | 2004-09-24 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | Dynamic linking of modules in a pre-operating system environment |
KR20070067207A (ko) * | 2004-10-12 | 2007-06-27 | 픽셀 (리서치) 리미티드 | 런타임 동적 링킹 |
US20060080682A1 (en) * | 2004-10-12 | 2006-04-13 | Picsel Research Ltd. | Run time dynamic linking |
US7730465B2 (en) | 2004-10-22 | 2010-06-01 | Microsoft Corporation | Mixed types |
US20060136907A1 (en) * | 2004-12-20 | 2006-06-22 | Microsoft Corporation | Language-neutral and language-specific installation packages for software setup |
US8074231B2 (en) * | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
US7987457B2 (en) | 2007-06-25 | 2011-07-26 | Microsoft Corporation | Targeted patching for native generation images |
US20090064196A1 (en) * | 2007-08-31 | 2009-03-05 | Microsoft Corporation | Model based device driver code generation |
CN100478897C (zh) * | 2007-12-04 | 2009-04-15 | 腾讯科技(深圳)有限公司 | 实现在游戏运行过程中自动验证支付的方法、装置和系统 |
CN101546311B (zh) * | 2008-03-27 | 2012-05-02 | 北京铭万互联科技有限公司 | 回收站的数据处理方法及数据处理装置 |
KR101092373B1 (ko) * | 2010-01-07 | 2011-12-09 | 한국과학기술연구원 | 소프트웨어 패키지의 생성 및 설치를 위한 시스템 및 방법 |
US8869138B2 (en) * | 2011-11-11 | 2014-10-21 | Wyse Technology L.L.C. | Robust firmware update with recovery logic |
US8365156B2 (en) * | 2010-04-17 | 2013-01-29 | Microsoft Corporation | Intermediate language support for change resilience |
US8924922B2 (en) * | 2010-06-14 | 2014-12-30 | Microsoft Corporation | Pre-compiling hosted managed code |
EP2405352A1 (en) | 2010-07-08 | 2012-01-11 | Fujitsu Limited | Instrumentation of proprietary software libraries |
US8683462B2 (en) | 2010-10-22 | 2014-03-25 | Adobe Systems Incorporated | Handling calls to native code in a managed code environment |
-
2012
- 2012-09-05 US US13/604,618 patent/US9569184B2/en active Active
-
2013
- 2013-09-03 CN CN201380057733.2A patent/CN104781785B/zh active Active
- 2013-09-03 CA CA2883571A patent/CA2883571A1/en not_active Abandoned
- 2013-09-03 AU AU2013312865A patent/AU2013312865B2/en not_active Ceased
- 2013-09-03 WO PCT/US2013/057892 patent/WO2014039458A1/en active Application Filing
- 2013-09-03 EP EP13765843.1A patent/EP2893441B1/en active Active
- 2013-09-03 JP JP2015530146A patent/JP6294886B2/ja active Active
- 2013-09-03 MX MX2015002906A patent/MX348681B/es active IP Right Grant
- 2013-09-03 RU RU2015107557A patent/RU2643484C2/ru not_active IP Right Cessation
- 2013-09-03 NZ NZ705379A patent/NZ705379A/en not_active IP Right Cessation
- 2013-09-03 SG SG11201501527RA patent/SG11201501527RA/en unknown
- 2013-09-03 BR BR112015004684A patent/BR112015004684A2/pt not_active Application Discontinuation
- 2013-09-03 EP EP17180650.8A patent/EP3249526B1/en active Active
- 2013-09-03 KR KR1020157005830A patent/KR102077360B1/ko active IP Right Grant
- 2013-09-03 MY MYPI2015700678A patent/MY181735A/en unknown
-
2015
- 2015-02-20 ZA ZA2015/01182A patent/ZA201501182B/en unknown
- 2015-02-25 PH PH12015500405A patent/PH12015500405A1/en unknown
- 2015-03-04 IL IL237547A patent/IL237547A0/en unknown
- 2015-03-04 CL CL2015000524A patent/CL2015000524A1/es unknown
-
2016
- 2016-01-08 HK HK16100144.7A patent/HK1212482A1/xx unknown
- 2016-12-28 US US15/393,182 patent/US10795652B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2014039458A1 (en) | 2014-03-13 |
JP6294886B2 (ja) | 2018-03-14 |
NZ705379A (en) | 2018-04-27 |
CN104781785A (zh) | 2015-07-15 |
KR20150052068A (ko) | 2015-05-13 |
PH12015500405B1 (en) | 2015-04-20 |
CL2015000524A1 (es) | 2015-08-28 |
AU2013312865A1 (en) | 2015-03-05 |
JP2015531502A (ja) | 2015-11-02 |
US20170109148A1 (en) | 2017-04-20 |
EP3249526A1 (en) | 2017-11-29 |
BR112015004684A2 (pt) | 2017-08-08 |
EP2893441A1 (en) | 2015-07-15 |
US9569184B2 (en) | 2017-02-14 |
US10795652B2 (en) | 2020-10-06 |
HK1212482A1 (en) | 2016-06-10 |
IL237547A0 (en) | 2015-04-30 |
CA2883571A1 (en) | 2014-03-13 |
KR102077360B1 (ko) | 2020-02-13 |
CN104781785B (zh) | 2018-05-15 |
RU2643484C2 (ru) | 2018-02-01 |
MY181735A (en) | 2021-01-05 |
MX348681B (es) | 2017-06-23 |
SG11201501527RA (en) | 2015-03-30 |
EP3249526B1 (en) | 2020-03-25 |
ZA201501182B (en) | 2016-10-26 |
AU2013312865B2 (en) | 2018-11-08 |
PH12015500405A1 (en) | 2015-04-20 |
MX2015002906A (es) | 2015-06-03 |
US20140068583A1 (en) | 2014-03-06 |
EP2893441B1 (en) | 2017-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2015107557A (ru) | Генерация собственного кода из кода на промежуточном языке для приложения | |
JP2015531502A5 (ru) | ||
US9250937B1 (en) | Code randomization for just-in-time compilers | |
US8959495B2 (en) | Unifying static and dynamic compiler optimizations in source-code bases | |
CN105446712B (zh) | 一种应用程序缺陷修补方法及装置 | |
ES2901532T3 (es) | Autodepuración | |
Lee et al. | A study on the smart virtual machine for executing virtual machine codes on smart platforms | |
US20190146766A1 (en) | Device profiling in gpu accelerators by using host-device | |
D'Elia et al. | Flexible on-stack replacement in LLVM | |
US20130311980A1 (en) | Selective compiling method, device, and corresponding computer program product | |
Engelke et al. | Instrew: Leveraging LLVM for high performance dynamic binary instrumentation | |
US9098355B2 (en) | Method and apparatus for substituting compiler built-in helper functions with machine instructions | |
CN103744682A (zh) | 一种分开编译异构混编程序的方法和系统 | |
CN110032425B (zh) | 一种动态链接库文件虚拟化方法、系统及存储介质 | |
Perez et al. | A hybrid just-in-time compiler for android: comparing jit types and the result of cooperation | |
Ziegler et al. | Honey, I shrunk the ELFs: Lightweight binary tailoring of shared libraries | |
Olivier et al. | A syscall-level binary-compatible unikernel | |
JP2016528638A5 (ru) | ||
Maier et al. | Supercharge a language runtime! | |
AU2017239628A1 (en) | Dynamic Software System | |
Levin | Dalvik and ART | |
Liao | Android RenderScript on LLVM | |
Sadek et al. | Dynamic Code Loading to a Bare-metal Embedded Target | |
Sveshnikova et al. | Using Virtualisation for Reproducible Research and Code Portability | |
Joneš | iOS emulator for Windows |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
HZ9A | Changing address for correspondence with an applicant | ||
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20190904 |