1. A nonvolatile semiconductor memory device comprising:
a memory cell which stores a plurality of data items in n-valued (n is a natural number equal to one or more) threshold voltages;
a first data storage circuit which is connected to the memory cell and which stores externally inputted data of a first logic level or a second logic level;
a second data storage circuit which is connected to the memory cell and which stores the data of the first logic level or second logic level read from the memory cell; and
a control circuit which controls the memory cell and the first and second data storage circuits and which manipulates the data stored in the first and second data storage circuits in the middle of writing data into the memory cell, reproduces the externally inputted data, and resumes writing data into the memory cell.
2. The nonvolatile semiconductor memory device according to claim 1, wherein the memory cell constitutes a NAND memory cell.
3. The nonvolatile semiconductor memory device according to claim 1, wherein the first data storage circuit is a latch circuit with a first, a second, and a third terminal, the first and second terminals being selectively connected to data lines and the third terminal being selectively connected to a bit line.
4. The nonvolatile semiconductor memory device according to claim 1, wherein the second data storage circuit is composed of a MOS capacitor.
5. The nonvolatile semiconductor memory device according to claim 3, further comprising:
a third data storage circuit which is provided between the first data storage circuit and the second data storage circuit and which stores the data in the first data storage circuit.
6. The nonvolatile semiconductor memory device according to claim 5, wherein the third data storage circuit comprising:
a first transistor one end of whose current path is connected to the third terminal of the first data storage circuit and to whose gate a first control signal is supplied; and
a second transistor to one end of whose current path a second control signal is supplied and whose gate is connected to the other end of the current path of the first transistor.
7. The nonvolatile semiconductor memory device according to claim 6, further comprising:
a third transistor which is connected between the other end of the current path of the second transistor and the second data storage circuit and which transfers the data from the third data storage circuit to the second data storage circuit; and a fourth transistor which is connected between the third terminal of the first data storage circuit and the second data storage circuit and which transfers the data from the second data storage circuit to the first data storage circuit.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A computer-implemented method for providing controls for application behavior, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:
identifying, by the computing device, an application that is distributed via an application repository and that is configured to use a permission on a computing platform that enables the application to access a feature of the computing platform;
receiving, by the computing device, a request from a user to reconfigure the application to control attempts by the application to use the permission by intercepting and interfering with attempts by the application to use the permission;
reconfiguring, by the computing device in response to the request from the user, the application to control attempts by the application to use the permission by intercepting and interfering with attempts by the application to use the permission;
determining, by the computing device, that an updated version of the application is available via the application repository;
reconfiguring the updated version of the application to continue controlling attempts by the application to use the permission based at least in part on the request from the user by intercepting and interfering with attempts by the updated version of the application to use the permission in response to an instruction to update the application.
2. The computer-implemented method of claim 1, wherein reconfiguring the updated version of the application comprises wrapping the updated version of the application in an application wrapper that intercepts and interferes with attempts by the application to use the permission.
3. The computer-implemented method of claim 2, wherein determining that the updated version of the application is available comprises monitoring the application repository for the updated version of the application.
4. The computer-implemented method of claim 1, wherein reconfiguring the updated version of the application comprises providing settings to the updated version of the application via a library included within the application.
5. The computer-implemented method of claim 4, wherein the library included within the application communicates with an agent running on the computing platform that specifies that the application is subject to reconfiguration to intercept and interfere with attempts by the application to use the permission.
6. The computer-implemented method of claim 1, wherein reconfiguring the updated version of the application comprises reconfiguring the updated version of the application to intercept and interfere with attempts by the application to access information that implicates privacy of a user of the computing platform.
7. The computer-implemented method of claim 1, wherein reconfiguring the updated version of the application comprises reconfiguring the updated version of the application to access false information about at least one of:
a location of the computing platform;
a telephone number of the computing platform;
a unique identifier of the computing platform;
contact information stored on the computing platform.
8. The computer-implemented method of claim 1, wherein reconfiguring the updated version of the application comprises preventing the updated version of the application from at least one of:
accessing a network connection on the computing platform;
accessing a positioning device on the computing platform;
executing in the background of the computing platform.
9. The computer-implemented method of claim 1, wherein receiving the request to reconfigure the application to intercept and interfere with attempts by the application to use the permission comprises:
displaying a representation of the permission via a graphical user interface;
displaying a representation of the application via the graphical user interface;
receiving a selection via the graphical user interface to interfere with use of the permission by the application.
10. The computer-implemented method of claim 1, wherein identifying the application comprises:
identifying a reputation score for the application;
determining, based on the reputation score, that the application is not trusted.
11. A system for providing controls for application behavior, the system comprising:
an identification module, stored in memory, that identifies an application that is distributed via an application repository and that is configured to use a permission on a computing platform that enables the application to access a feature of the computing platform;
a receiving module, stored in memory, that receives a request from a user to reconfigure the application to control attempts by the application to use the permission by intercepting and interfering with attempts by the application to use the permission;
a reconfiguration module, stored in memory, that reconfigures the application, in response to the request from the user, to control attempts by the application to use the permission by intercepting and interfering with attempts by the application to use the permission;
a determination module, stored in memory, that determines that an updated version of the application is available via the application repository;
an updating module, stored in memory, that reconfigures the updated version of the application to continue controlling attempts by the application to use the permission based at least in part on the request from the user by intercepting and interfering with attempts by the updated version of the application to use the permission in response to an instruction to update the application;
at least one hardware processor that executes the identification module, the receiving module, the reconfiguration module, the determination module, and the updating module.
12. The system of claim 11, wherein the updating module reconfigures the updated version of the application by wrapping the updated version of the application in an application wrapper that intercepts and interferes with attempts by the application to use the permission.
13. The system of claim 12, wherein the determination module determines that the updated version of the application is available by monitoring the application repository for the updated version of the application.
14. The system of claim 11, wherein the updating module reconfigures the updated version of the application by providing settings to the updated version of the application via a library included within the application.
15. The system of claim 14, wherein the library included within the application communicates with an agent running on the computing platform that specifies that the application is subject to reconfiguration to intercept and interfere with attempts by the application to use the permission.
16. The system of claim 11, wherein the updating module reconfigures the updated version of the application by reconfiguring the updated version of the application to intercept and interfere with attempts by the application to access information that implicates privacy of a user of the computing platform.
17. The system of claim 11, wherein the updating module reconfigures the updated version of the application by reconfiguring the updated version of the application to access false information about at least one of:
a location of the computing platform;
a telephone number of the computing platform;
a unique identifier of the computing platform;
contact information stored on the computing platform.
18. The system of claim 11, wherein the updating module reconfigures the updated version of the application by preventing the updated version of the application from at least one of:
accessing a network connection on the computing platform;
accessing a positioning device on the computing platform;
executing in the background of the computing platform.
19. The system of claim 11, wherein the receiving module receives the request to reconfigure the application to intercept and interfere with attempts by the application to use the permission by:
displaying a representation of the permission via a graphical user interface;
displaying a representation of the application via the graphical user interface;
receiving a selection via the graphical user interface to interfere with use of the permission by the application.
20. A non-transitory computer-readable-storage medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:
identify an application that is distributed via an application repository and that is configured to use a permission on a computing platform that enables the application to access a feature of the computing platform;
receive a request from a user to reconfigure the application to control attempts by the application to use the permission by intercepting and interfering with attempts by the application to use the permission;
reconfigure the application, in response to the request from the user, to control attempts by the application to use the permission by intercepting and interfering with attempts by the application to use the permission;
determine that an updated version of the application is available via the application repository;
reconfigure the updated version of the application to continue controlling attempts by the application to use the permission based at least in part on the request from the user by intercepting and interfering with attempts by the updated version of the application to use the permission in response to an instruction to update the application.