当前位置:文档之家› Design Pattern Recovery in Architectures for Supporting Product Line Development and Applic

Design Pattern Recovery in Architectures for Supporting Product Line Development and Applic

Design Pattern Recovery in Architectures for Supporting Product Line Development and Applic
Design Pattern Recovery in Architectures for Supporting Product Line Development and Applic

Design Pattern Recovery in Architectures for

Supporting Product Line Development and

Application

Ilka Philippow, Detlef Streitferdt, Matthias Riebisch

Technical University of Ilmenau

ilka.philippow[matthias.riebisch, detlef.streitferdt]@.tu-ilmenau.de

Abstract. Product lines can improve the efficiency of software devel-opment. Product lines offer reference architecture for the development of

similar products. This architecture is developed in an evolutionary process

while using existing systems and reusable components. The start of the de-

velopment of product lines very often is based on the reengineering and

generalization of several similar existing applications.Design Patterns can

support the understanding of former architectures and the application of

product line reference architectures. In this paper a short explanation of the

development and application of product lines points out the relevance of

patterns. The paper discusses existing pattern search methods and describes

an approach suitable for the automated search. This approach enlarges the

existing search criterion based methods for pattern recognition for the

automated detection of all Gamma Patterns.

1 Introduction

The complexity of software systems has increased extremely during the last decade. Meanwhile, there exist various methods and tools in order to support the development and management of very large and complex software systems. A high degree of software reuse offers possibilities for reducing development efforts and improving software quality. Most reuse approaches are based on object-oriented technology. There are different kinds of reuse, e.g. source code in form of modules, functions, classes or components and other artifacts related to analysis, design, and architectures. The reuse of architecture artifacts is closely connected with the application of patterns [1], [2], [3].

For similar software products the software development based on product lines is connected with expectations for enhancements in reusability, adaptability, flexibility, and control of complexity and performance of software. A software product line is a “group of products” from a specific problem domain [4]. They are based on a system family architecture offering a “common set of core assets”

[5]. In the range of a specific problem domain software product lines are derived from predefined architectures these architectures consist of common and variable parts. Variable parts can be changed or adapted to satisfy the special needs of an application.

In section 2 the development process of reusable architectures for product lines is explained in a simplified way to point out the relevance of architecture reengi-neering. The understanding of architectures and the reuse of architecture artifacts

42

43

can be supported by the application of design patterns. In section 3 an approach for detecting design patterns is introduced.

2 The Development and Application of Product Lines

The evolutionary process of the development of product line architecture is described in [6]. The process phases and activities are similar to those of software development in general, but they have to pay more attention to aspects like do-main requirements, reuse and configuration ability (Fig. 1).

1. Reverse Engineering of (legacy) Software Products

4. Modeling of core

and variable elements à Design of

core architecture and variability 3. Determination of Requirements and Use Cases à

Analysis of core and

variable elements

5.Implementation

and Generation 6.Maintenance,

Refinement 2. Domain Engineering

and Feature Modeling

Fig. 1 Iterative Activities of the Development Process for Software Product Lines

The decision to build a product line and the development starting point very often is based on the generalization of several similar applications [7], [8] and the reengineering of legacy software. The phases 1-3 serves for the determination of product line requirements. During the phases 4-6 the product line architecture has to be designed and implemented. New costumer requirements lead to further itera-tions.

Fig. 2 illustrates the relations between the development of a software product line and the application development. Every new application is based on the prod-uct line reference architecture. Summarizing it can be said, the evolutionary de-velopment process of product lines and its application is characterized by the following activities for reuse, refinement and improvement:

- reverse-engineering and understanding existing application architectures, - comparing new requirements to the former ones,

- creating a new design, including both the new and the former require-

ments,

- redesigning the architecture and implementing new common and vari-

able parts

- Documenting design decisions, intentions and the new architecture for future refinements.

The process of development and application of product lines can be supported by a pattern based development of the reference architecture. On condition that patterns had been used for the development of former applications these patterns can be found by the reverse-engineering activities. Pattern helps to understand former applications and serves for the determination and description of the prod-uct line reference architecture. To integrate pattern into the development and application process of product lines it is necessary not only to apply known stan-dard patterns e.g. [1] but also to recognize and determine domain specific patterns based on the family requirements. During the development process of product lines defined and used domain and standard patterns have to be documented. Dur-ing the application of product lines these patterns help to understand the product line architecture and applications based on it. To simplify this procedure it is nec-essary to support the search and detection of patterns automatically.

Domain Analysis Domain Design Domain Implementation

Reference Architecture Components Family Requirements

Application Analysis Application Design Application

Fig. 2 Relations between Product Line and Application Development

3 An approach for the Automated Detection of Patterns

3.1. State-of-the-Art

There are various methods for automated pattern identification. They are evaluated according to the achieved results of their search algorithms that can lead to three relevant results:

44

1. Positive true: a pattern has been recognized and the pattern is really imple-

mented within the software system (case is desired).

2. Positive false: a pattern has been recognized but the pattern is not really im-

plemented within the system. (Case has to be avoided).

3. Negative true: a really existing pattern has not been recognized (case has to be

avoided).

The achieved results can be used for evaluation of searching tools by two met-rics Both metrics are known for evaluating search results, e.g. in Information Re-trieval [9].

- Recall is the number of all existing patterns in a software system divided by the number of recognized patterns. A recall of 100% means that all existing patterns were found (negative true cases has been avoided).

- Precision is the number of really existing and recognized patterns divided by the number of found patterns (sum of the results positive true and positive false). A precision of 50% means, that half of the recognized patterns are not really implemented in the software system.

Both values have to taken into consideration for a tool evaluation. A precision value of 100% does not exclude negative true cases. Several existing approaches for automated pattern search have been evaluated, together with available infor-mation about the above-explained metric values. There are different approaches for an automated pattern search that can be categorized by four different search algorithms:

Searching for minimal key structures:The properties of a defined key structure that is assigned to a particular pattern are used as search criteria. There are three approaches: DP++ [9] for C++, KT [10] for Smalltalk and SPOOL [11] realized for C++, applicable for Java and Smalltalk.

Searching for class structures: The search is based on the pattern class structures described in [1]. There are three approaches for automated search based on com-plete accordance of the classes are known: Pat [12] for C++, IDEA [13] for UML diagrams and the multi step search tool in [14].

Searching based on fuzzy logic:This approach considers structural differences between patterns out of [1] and real life software systems. The proposed idea [15] uses fuzzy logic search algorithms to examine different pattern implementations. The researchers are working on the development and implementation of their idea. Searching based on metrics:In this approach [17] each pattern is characterized by metrics: There are three categories of metrics with examples for each category:

(a) Object oriented Metrics

- weighted methods per class

- depth of inheritance tree

- number of children (subclasses)

- coupling between objects

(b) Structural Metrics

- Fan-in, number of modules sending information to the observed module

45

- Fan-out, number of modules receiving information of the observed

module

- information flow, structural complexity

(c) Procedural Metrics

- pure lines of code

- McCabe's cyclomatic complexity

- lines of comments

These metrics are calculated tool-based for the system in question and for every of the desired patterns.

In [17] a manual search method is described. This method proposes six steps for the finding of patterns:

1. Read and try to understand the specification documents.

2. Setup a brief class model with the class declarations in the code.

3. Refine the class model based on the implementation.

4. Try to find patterns in the model using inheritance and associations between

the classes of the system.

5. Analyze the potential pattern of step 4.

6. Try to consult the original programmers and developers for a better under-

standing of the system.

Within a student test this approach has proven to be very intuitive. The struc-tural strategy is embedded in the steps of the manual method, due to its close rela-tion to the human way of thinking and searching for patterns.

For a more detailed description of the mentioned approaches see the given references. A comprehensive discussion and comparison of the various approaches is carried out in [18]. The evaluation of existing approaches is based on the infor-mation from the papers describing the individual methods. Table 1 summarizes the results of current pattern searching research efforts. Just one of the tool supported approaches has the potential to find all of the 23 patterns described in [1], al-though with a not satisfying precision value of about 44%. The other approaches are only usable for a subset of the patterns. Search algorithms for minimal key structures are considered to be closest to the human way of thinking. To follow the way of human thinking is very important during the evaluation of search results by software developer for the elimination of e.g. negative true cases. But, in accor-dance to [10] and [11] it was not possible to find reliable search criteria for all patterns. In the next section an approach is introduced that is focussed on the ex-tension of algorithms for minimal key structure based search described in [9], [10] and [11].

3. 2. Extended Approach for Pattern Search based on minimal Key Struc-

tures

For improving the existing search procedures the minimal key structure search basis has been enlarged by the definition of further positive search criteria and, in addition negative search criteria for all patterns in [1]:

46

- Positive search criteria will occur with very high probability during the appli-cation of a particular pattern (for commonly used pattern implementations)

- Negative search criteria mustn’t occur in context of a particular pattern; this leads to the reducing of positive false cases

The typical search criteria can be derivated from the common and accepted pattern description in [1]. Examples for search criteria are

- abstract and concrete classes, inheritance relations,

- attributes (visibility, type, name),

- methods (visibility, polymorphisms, return type, name, parameter, abstraction),

- constructors (visibility, name, parameter),

- relations like association, composition, aggregation, delegation, object generation, method calls, variable usage and template usage.

Considering the very high acceptance of the UML (Unified Modeling Lan-guage) in practice in this paper we have described patterns by UML diagrams instead of the OMT used form Gamma. For this purpose the UML class diagram has been enlarged for the description of uncertain or forbidden criteria (Fig. 3).

47

Table 1: Overview of Current Pattern Search

Minimal key structures:

DP++ [9] for C++: tool available

- Covers the following patterns: Composite, Decorator, Adapter, Fa?ade, Bridge, Flyweight, Template, Chain of responsibility

- Applied to the following system: Drawing Toolkit (44 classes)

- Recall: n.a. Precision: n.a.

KT [10] for Smalltalk: tool available

- Covers the following patterns: Composite, Decorator, Adapter, Template, Chain of responsibility, Strategy, State, Command

- Applied to four different systems (62, 264, 46, 40 classes)

- Recall: n.a. Precision: n.a.

Spool [11] for C++: tool available

- Covers the following patterns: Template, Factory, Bridge

- Applied to two different systems (3103, 1420 classes) and to ET++ (722 classes)

- Recall: n.a. Precision: n.a.

Class Structure:

PAT[12] for C++: tool available

- Covers the following patterns: Adapter, Bridge, Proxy, Composite, Decorator

- Applied to the following systems NME (9 classes), LEDA (150 classes), zApp (240 classes), ACD (343 classes)

- Recall: 100% Precision: 37%

IDEA [13] for UML: tool available

- Covers the following patterns: Template, Adapter, Bridge, Proxy, Composite, Decorator, Factory, Abstract Factory, Iterator, Observer, Prototype

- Applied systems: n.a.

- Recall: n.a. Precision: n.a.

Multi level search [14] for C++/OMT: tool available

- Covers the following patterns: Adapter, Bridge, Proxy, Composite, Decorator, - Applied for different systems: LEDA, libg++, galib, groff, mec, socket (no fur-ther information)

- Recall: 100% Precision: 35%

Fuzzy logic based search:

for Java [15]:tool not available

- Covers the following patterns: all

- Applied systems: n.a.

- Recall: n.a. Precision: n.a.

Metric oriented pattern search:

wizzard [16] for C++: tool available

- Covers the following patterns: all

- Applied systems: three systems without further inform.

- Recall: n.a. Precision: 44%

Manual pattern search:

Backdoor [18]: tool not available

- Covers the following patterns: all

- Applied systems: n.a.

- Recall: n.a. Precision: 44%

48

Presentation of Presentation of Presentation of expected uncertain forbidden elements (OMT) elements elements

Fig. 3. Description Elements for Search Criteria (Example: Inheritance) The full description and discussion of the necessary search criteria for all pat-terns from [1] is given in [18]. The description contains the arguments and reasons for chosen criteria, the extended class diagrams for patterns (graphical presenta-tion), and the description of the criteria based search algorithms.

In this paper the BRIDGE pattern is chosen as an example for the demonstra-tion of the proposed pattern description and search approach. Depending on the particular application using the Bridge pattern the tree structure can be very differ-ent in depth and width. In practice (reported in [11]) it is possible that abstractions exist without specialization abstractions and implementations without super classes. The proposed minimal key structure (Fig. 4) consists of one abstraction class and one implementation class as positive search criterion. Usually, an im-plementation class contains primitive operations. The methods of abstraction classes are defined using these primitive operations [1].

Fig. 4 BRIDGE Pattern –Minimal Key Structure

The following set of search criteria should be enough to find a BRIDGE pattern: positive criterion:

- there is a relationship from an abstraction class to an implementation class

49

negative criteria:

- there is no method call from an implementation class to an abstraction class

- there is no relationship from an implementation class to an abstraction class In accordance to these criteria the graphical description is given in Fig. 4. Us-ing the following algorithm a BRIDGE pattern can be identified:

x:List of classes

y,z:List of methods

i:List of abstraction classes in the model

j:List of implementation classes in the model

FOR_ALL i

DO

IF(current i have a reference to any j THEN

DO

STORE current i with all subclasses in x;

STORE all methods of every x in y;

STORE all methods of every j in z;

IF(no methods in z are also in y)THEN

DO

IF(none of j has a reference to any x)THEN

DO

àBRIDGE Pattern was found

OD

OD

OD

àBRIDGE Pattern was not found

In [18] for all patterns from [1] the concrete search algorithms are determined. Table 2 contains the determined search criteria and comments concerning the difference or advantage to the existing approaches mentioned in section 3.1.. To understand the criteria it is necessary to be familiar with the pattern description in

[1].

A prototypical implementation has been carried out by using the Rational Rose CASE tool. The application of the Rational Rose C++ Analyzer enables to extract UML diagrams out of source code. The Rose Extensibility Interface [19] is used to access single UML model elements. The search algorithms are implemented by using the Rational Rose Script language The prototypical implementation has shown that the Rational Rose C++ Analyzer is insufficient due to missing reengi-neering abilities for finding object generation, delegation, aggregation- and friend-relation, usage of variables, methods and templates. Therefore, a successful implementation of search algorithms was only possible for patterns that are not depending on these not identifiable search properties. The search algorithms for COMPOSITE, SINGLETON and INTERPRETER had been implemented. For SINGLETON and INTERPRETER the achieved values for precision and recall are 100%. These values are based on the application in small student projects. To achieve really comparable values to other approaches a unified reference architec-

50

ture would be necessary. Due to the limitations of the used case tool the further effort will be put on the integration of a better case tool.

4 Conclusion

The proposed pattern search is oriented to the human way of searching and requires software developers that are familiar with pattern structures and able to evaluate search results. The search approach is based on similar approaches for minimal key structures. These approaches have been extended by additional posi-tive and negative search criteria, leading to new and better search algorithms. This approach improves the precision value by avoiding positive false results.

The success of search algorithms strongly depends on the quality of the source code analyzing tool that should be able to extract all the necessary search criteria.

The introduced approach for pattern search is still the subject of ongoing re-search and implementation effort. Currently we are in contact with a tool provider for the integration of our algorithms into their case tool. To get comparable results with other search approaches we are working on the possibility to establish a ref-erence source code example.

References

1. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns – Elements of

Reusable Object-Oriented Software. Addison-Wesley (1995)

2. Jacobson, I., Griss, M., Jonsson, P.: Software Reuse : Architecture, Process and

Organization for Business Success. Addison Wesley (1997)

3. Buschmann F., Meunier R., Rohnert H., Sommerlad P., Stal M.: Pattern-

Oriented Software Architecture: A System of Patterns. Wiley (1996)

4. Kotler, P., Bliemel, F.: Marketing-Management: Analyse, Planung, Umsetzung

und Steuerung. Sch?ffer-Poeschel, 9th edition (in german) (1999)

5. Clement, P., Northrop, L.: A framework for software product line practice,

version 2.7., (1999)

6. Philippow, I.; Riebisch M.: Systematic Definition of Reuseable Architectures.

Proceedings 8.th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems pp. 128-136 (2001)

7. Koskimes K., Moessenboeck H.: Designing a Framework by Stepwise

Generalization. 5th European Software Engineering Conference Barcelona, Lecture Notes in Computer Science 989, Springer, (1995).

8. Riebisch, M.; Franczyk, B.: Evolutionary Development of Frameworks – from

Projects to System Families IDPT 1999, Kusadasi, Turkey, June 27th – July 2nd, 1999. In: Tanik, M.M., Ertas, A.: [eds.]: IDPT 1999. Society for Design and Process Science, pp. 13. ISSN 1090-9389 (2000)

9. Bansiya, J.: Automatic Design-Pattern Identification. Dr. Dobb′s Journal,

(1998). Available online at http://www.ddj

51

10. Brown, K.: Design reverse-engineering and automated design pattern detection

in SmallTalk. Master′s thesis, Department of Computer Engineering, North

Carolina State University, (1996). Available online at https://www.doczj.com/doc/8c2690033.html,/

11. Keller, R. K., Schauer, R. Robitaille, S., Page, P.: Pattern-based reverse engi-

neering of design components. In Proc. Of the 21st International Conference

On Software Engineering, pages 226-235, IEEE Computer Society Press

(1999).

12. Kraemer, Ch., Prechelt, L.::Design recovery by automated search for structural

design patterns in object-oriented software", In Proc. of the Working Confer-

ence on Reverse Engineering, pp. 208-215 (1996)

13. Bergenti, F., Poggi, A.:. Improving UML design using automatic design pat-

tern detection. In Proc. 12th. International Conference on Software Engineer-

ing and Knowledge Engineering (SEKE 2000), pp. 336-343 (2000).

14. Antoniol, G., Fiutem, R.; Cristoforetti, L.: Design pattern recovery in object-

oriented software. In 6th International Workshop on Program Comprehension,

pp. 153-160, June (1998).

15. Niere, J., Wadsack, J. P., Wendehals, L.: Design pattern recovery based on

source code analysis with fuzzy logic", Technical Report tr-ri-01-222, Univer-

sity of Paderborn, (2001). Available online.

16. Kim, H., Boldyreff, C.: A method to recover design patterns using software

product metrics. In Proc. of the 6th International Conference on Software Re-

use (ICSR6), (2000). on line at: https://www.doczj.com/doc/8c2690033.html,/~hkim69/publications/icsr6.pdf

17. Forrest Shull, Walcélio L., Melo, Victor, Basili, R.: An inductive method for

discovering design patterns from object-oriented software systems”, Technical

Report UMIACS-TR-96-10, University of Maryland (1996)

18. Naumann, S.: "Reverse Engineering of Design Patterns", Diploma Thesis,

Technical University of Ilmenau (2001). (in German)

19. Rational: Using the Rose Extensibility Interface Rational Rose 2001. Rational

Rose Software Corporation (2000)

52

Table 2: Search Criteria and Assessment of the extended approach Search criteria Comments

ABSTRACT FACTORY

- Search for a concrete factory.

- A concrete factory has at least two methods contained in the definition of the factory method pattern Identifiable without doubt, compared to [7]

BUILDER

- Search for a concrete builder.

- The concrete builder has a method returning the complete

product.

- Builder has an aggregation relation to the product

- The concrete builder has at least one construction method

referring to

the reference variable of the product.

Also described in [7] FACTORY METHOD

- Search for a concrete generator containing a factory

method. The factory method is virtual.

- The factory method generates an object of another class (con-crete product);

- The return type is a class (abstract product) differing from the generated object.

- As return type (abstract product), the super class of the created object is used. Comparable to [6], identifiable without doubt

PROTOTYPE

- Search for a clone operation of a concrete prototype. The clone operation generates an object of the own class using its copy constructor.

- A copy constructor has to be available.

- The return type of the clone operation is the own class or a super class.

- The clone operation is virtual.More detailed recognition characteristics.

SINGLETON

- Search for a singleton class. The class doesn't have a public constructor, it has only a private or protected constructor.

- The class has a static exemplar operation; the return type is the own class or a super class.

- There is a declaration of a static variable of the own class or a super class type.Identifiable without doubt, compared to [7]

(Class) ADAPTER

- Search for an adapter.

- The adapter inherits from two classes: from the first class public (destination) and from second class private (adapted class).

- Adapter overwrites at least one operation of the destination class; this operation calls an operation of the adapted class that is polymorphic and declared virtual.Result comparable with [6], [7]

(Object) ADAPTER

- Search for adapter class. None.

53

- Adapter is a subclass of another class (destination).

- Adapter has a reference to the adapted class.

- Adapter overwrites at least one method from destination

(virtual declaration); this method calls a method from the

adapted class.

- Adapter is not a super or sub class from the adapted class.

Search criteria Comments

BRIDGE

- was described above Additional negative

search criteria

COMPOSITE

- Search for a composite class.

- A composite class has a 1 to n aggregation relation to one of its super classes (component).

- Existing sub classes won't add functionality to the composite class, which means, they don't call methods of the composite class followed by an own method. Additional negative search criteria

DECORATOR

- Search for decorator class.

- There is a 1-to-1 aggregation to a super class.

- Decorator has at least one sub class (concrete decorator). - Concrete decorator has a method that calls decora-tor::operation(); in this method a local operation is called.

- The method decorator::operation() calls a method of the component class with the same name.More detailed recognition characteristics.

FACADE

- Search for Fa?ade.

- A set A of classes has a reference to fa?ade.

- Fa?ade has a reference to a sub system (set B).

- The sub system classes don`t know the fa?ade.

- The sub system classes don`t know classes of set A. Additional negative search criteria

FLYWEIGHT

- Search for three classes: flyweight factory, flyweight and

concrete flight weight.

- The factory uses methods returning exactly what they are

generating.

- The factory has a 1 to n reference to the flyweight class.

- All operations of the flyweight class always receive a par-

ticular parameter (extrinsic state). Methods can also receive

additional parameters.

- The concrete flyweight is a subclass of flyweight; it is gen-

erated by the factory.

None.

PROXY

- Search for proxy.

- Proxy is a sub class.

- Proxy has a reference to a class of a real subject or only a

subject.

- All public methods of proxy are existent in the class that is

referenced by proxy.

More flexible search.

54

- In each of these proxy methods there is a call of the method with the same name in the referenced class.

ITERATOR

- Search for two templates: list and iterator.

None. - Iterator has a reference to the list.

- List generates the iterator within a method.

55

Search criteria Comments CHAIN OF RESPONSIBILITY

- Search for a tree.

- The root class is a HelpHandler.

- HelpHandler implements the HandleHelp method.

- The HandleHelp method won't be overwritten in all sub classes, but it is overwritten most within the tree structure.

- Classes can be divided in two categories, based on the Han-dleHelp method. For this categorization only classes overwrit-

ing the HandleHelp method will be considered.

- The first category contains all classes forwarding the own HandleHelp method to HandleHelp methods of other classes.

- The second category contains all classes without forwarding mechanism within the HandleHelp method.

- At least 75% of the classes have to belong to the first category.

None.

COMMAND

- Search for a structure out of several classes: the caller, the abstract command, the concrete command, the client and the receiver.

- The command class is abstract.

- The caller has a 1-to-1-aggregation relation to command.

- Concrete command is a sub class of command.

- Concrete command has a reference to his receiver. The receiver will be passed as parameter of the constructor of the concrete command.

- There is a client instantiating the concrete command.Additional negative search criteria

INTERPRETER

- Search for a tree. The root class is abstract.

- Each sub class implements one of the methods always as a

new method.

- The ratio of simple aggregation relations to the root class

divided by the number of subclasses is at least 50%.

- Sub classes don't reference each other directly

Also described in [7]

MEDIATOR

- Search for a concrete mediator.

- A concrete mediator has references to its concrete colleagues.

- Concrete colleagues don't have references between each other.

- If there is an abstract colleague, the object handles a reference

to the abstract mediator or directly to the concrete mediator,

in case there is no abstract mediator.

- If there is no abstract colleague, each concrete colleague is

handling a reference to the abstract mediator or direct to the

concrete mediator, in case there is no abstract mediator.

Also described in [7]

MEMENTO

- Search for memento.

- Memento doesn't have a public constructor.

- Memento is generated by an originator class.

- Memento has a method for setting its state and a method for

returning its state.

Also described in [7]

56

- The originator is allowed to access the private interface of

memento (friend class declaration).

- The generator doesn't have a reference to memento.

- A container is handling a reference to memento without gener-

ating it.

Search criteria Comments

OBSERVER

- Search for subject, observer and concrete observer.

- Subject has a 1-to-n reference to observer.

- Subject has two methods receiving observer as parameter.

- Concrete observers are subclasses of observer.

- A concrete observer has a reference to subject or a sub class of

subject (concrete subject).

Also described in [7] STATE

- Search for a tree of state classes.

- The root class (state) is not abstract.

- All sub classes (concrete states) have the same public interface as their super class.

- No concrete state holds a reference to the root class.

- No concrete state holds a reference to another concrete state. - In context there is a reference to the root class but not to the concrete states. Additional negative search criteria

STRATEGY

- Search for a tree of strategy classes.

- The root class (abstract strategy) is abstract.

- All sub classes (concrete strategies) have the same public interface as their abstract super class.

- No concrete strategy holds a reference to the abstract strategy. - No concrete strategy holds reference to another concrete strategy.

- The compositor holds a reference to the abstract strategy but not to concrete strategies. Additional negative search criteria

TEMPLATE METHOD

- Search for template method.

- The template method is not polymorph.

- The template method calls at least one local polymorph method

VISITOR

- Search beginning with the visitor class.

- A visitor has operations receiving the elements of other classes

as parameter.

- Each of these element classes has a method for receiving the

visitor class as parameter.

- Within this method of the element class, a call of the corre-

sponding method of the visitor class is done; parameter is the

element itself.

- At least 75% of the classes have to belong to the first category.

Also described in [7]

57

HTC Desire S 【Recovery】刷机、备份、恢复Rom新手教程

HTC Desire S 【Recovery】刷机、备份、恢复Rom新手教 程 SHIP S-OFF/S-on(进入HBOOT查看) 首先你的手机确定是SHIP S-OFF,而且ROOT完毕,RECOVERY已经安装!(s-on的勿试)1:下载ROM文件(ZIP格式),放入内存卡(内存卡格式为FAT32,内存卡插进手机 2:确保足够点亮,以防刷机过程中断电 3:进入RECOVERY模式,(关机状态下。按住音量下键+开机键,进入HROOT界面,用音量下键选择到RECOVERY按下开机键)

RECOVERY主界面 4、进入RECOVERY ,选择Wipe DATA/Factory reset.按电源键,完成后回到主界面 5、再选择 Wipe CHCHE partition按电源键,完毕后回到主页面!(这2个是清除你手机资料和记录) 6、再选择Install ZIP from SDCARD按电源键,进入另一个界面后再选择choose zip from sdcard按电源键 7、然后再选择你要刷的ROM文件包,点击电源键进行刷机 8、完成后,屏幕下方显示Install from sdcard complete就代表刷机完成 9、刷完后再选择****GO Back****,回到RECOVERY 主界面 10、再选择Reboot system now,按电源键,手机重新启动,然后等待小会,你刷的ROM就来了。呵呵

备注: (音量上下键控制选择上下,电源键确定。确定后会出现很ON,只有一个YES ,询问你是不是要继续,选择YES即可———————————————————————————————————————————————————————————————— 备份&恢复系统 1、重启进入recovery界面,按音量下选择“backup and restore”(备份和恢复),点电源键确认。 2、选择backup备份,电源键确认。 3、视乎备份文件大小,约10分钟完成。 4、备份完毕后,recovery在第一行显示“reboot system now”,O啦,您的系统已经完全备份了,包括联系人,软件,桌面应用-.-备份文件在sdcard/clockworkmod/backup/目录下,文件夹名字为备份时间。 恢复,操作与备份差不多,重复上面的1-3步 5、选择restore恢复,会出来N个NO,一个YES,按音量下选YES,电源键确认。然后系统自动找到备份目录,电源键确认。 6、视乎备份文件大小,约10分钟+完成,这个过程比备份长。 7、复完毕后,recovery在第一行显示“reboot system now”,电源键确认重启,你原来备份的系统重新展开了。 转自深度安卓论坛:https://www.doczj.com/doc/8c2690033.html,/thread-2087604-1-1.html

教你如何手动刷入recovery 图文教程

教你如何手动刷入recovery 图文教程 喜欢刷机的你,知道如何给手机手动刷入recovery吗?其实给安卓手机刷入Recovery (恢复模式)的方法有很多种,一般都是使用数据线连接电脑完成。小编今天给大家带来最简单的手动刷入recovery教程,不用连接电脑就可以卡刷Recovery教程。 卡刷的方法大致分为两种,一种是软件自动刷,另外一种是自己准备Recovery镜像文件,再用超级终端输入Linux命令强制刷Recovery。下面这两种方法小编分别给大家介绍一下。 目前最好的自动刷Recovery软件就是固件管家,我们可以通过这款软件,安卓手机用户可以直接下载匹配自己手机的CWM Recovery进行刷写,一键刷入,非常简单。但是对于一些非热门的智能手机来说可能找不到匹配的CWM Recovery,所以就不能使用该方法了。 固件管理器刷CMWRecovery操作步骤如下: 1.在安卓手机(需要Root权限)上安装是固件管家 2.打开WIFI或3G网络,运行是固件管家,选择第一项“刷入Clock work Mod Recovery”

3.固件管理器就会自动匹配当前安卓手机机型,如何存在合适的CWM Recovery文件,将会提示自动下载,如果没有找到的话就需要手动刷入Recovery了。

4.下载完成后固件管理器就会自动开始刷Recovery,出现“成功刷入”的提示就说明你已经成功刷入recovery了。 手动刷入Recovery操作步骤如下: 1.将准备好的Recovery镜像重新命名为recovery.img,然后把它放置于内存卡根目录中。

HTC G11刷Recovery和获取ROOT权限图文教程

刷Recovery和ROOT图文教程 Incredible, 根目录, 手机 【刷机教程和相关基础知识解析】 Android系统名词解释汇总(告别小白人生) HTC Incredible S制作金卡和刷官方RUU图文教程 HTC Incredible S刷第三方ROM图文教程 HTC Incredible S最新官方2.3.3 RUU(稳定/顺畅/省电) 日常应用集合下载 ======================强大而华丽的分割线 ================= 【ROOT要求及相关解析】 首先确定你的机子是否SHIP S-OFF 即白卡机,如果不是,对不起 ROOT不了咯。 先介绍下什么是白卡? “白卡”是一种手机测试SIM卡,由于其一般颜色为白色,故被俗称为“白卡”,其被广泛应用于通讯工业生产及测试过程。手机测试卡本身用于测试显示手机、调节器版本,显示话音加密码、还原通话时间和误码率等方面的手机功能性测试。 据悉,现在主要测试卡有GSM、TD-SCDMA、WCDMA、CDMA、CDMA2000多种网络类型的支持。其卡身内存常用的有32K/64K/128K,并可根据不同的测试需求进行定制。 今日,一些水货市场中的商家普遍利用“白卡”对有国外运营商网络锁的手机进行解锁,使其被解锁的手机可以使用国内运营商的网络。而这一现象也使得专用于测试的“白卡”有了 新的市场。 另外,销售解锁“白卡”的分类与手机测试卡分类不同,网络类型多被以不同手机品牌或

地区的划分所取代。如销售价约为65元左右的MrSIM解锁卡则专门针对解锁日本运营商的网络锁而设计,主要适合NTTDocomo和Softbank手机的解锁。 针对手机品牌的则有夏普手机解锁卡、iPhone手机解锁卡、NOKIA及索尼爱立信解锁卡、HTC解锁卡等。尽管卡的网络属性及针对品牌不同,但SIM卡样式基本相同,颜色 也全部为白色。 如图所示:s-off解锁的机子 另外有些人退出HBOOT和FASTBOOT界面会直接抠电池。其实很伤机子咯。 这里简单说下退出方法: 在HBoot界面下通过音量键上下键选择“FASTBOOT”即第一项 然后按一下电源键确认就进入“FASTBOOT”菜单下再通过音量上下键选择如下 各项(电源键确认) 第一项“bootloader” 返回到HBOOT界面 第二项“REBOOT” 重启 第三项“REBOOT BOOTLOADER”重启BOOTLOADER 第四项“Power Down”关机 ======================================================

酷派大神F2刷入永久recovery简单步骤

酷派大神F2刷入永久recovery简单步骤 本次刷入在WIN7 64位平台下测试成功,有机友反映在XP下也成功了。Win7 32位平台下不一定保证成 功。建议首先用豌豆荚软件自动安装驱动方式安装驱动。 1.首先打开USB调试: 首先保持数据网络联机,无线是WLAN还是4G/3G 【设置】-【关于手机】-【手机配置信息】-连续点击【版本号】,直到出现开发者模式。返回到【设置】,最 下方【开发者选项】,勾选【USB调试】。 2.手机用数据线连接电脑,USB连接方式改为【文件传输】,等待驱动自动安装完毕。驱动一般都是系统联网 自动安装,如果没有的话就手动安装一下计算机里面出现的Coolpad_USB_Driver。可以到系统设备管理器看 一下(接下去的操作无反应都是因为驱动没装好) 3.下载并在电脑上运行打开【Recovery修正版】Coolpad_8675_A_Recovery.Fixed.exe,选第1项刷入中文版Recovery,电脑上应该提示回车刷入中文版Recovery(要回车确定两次才会开始执行),看到手机自动重启后 暂时不要操作电脑,此时手机会自动重启到一个“重要提示”的界面,按一下手机的音量加,随后手机进入第三 方Recovery界面,第一次进入可能会提示选择语言,选择中文的。(Recovery的操作是:音量+为上一选项, 音量-为下一选项,电源键为确认) 到这里为止,刷入的recovery还是临时的,下面的操作不要遗漏,就会刷成永久recovery。 视线回到电脑上来,此时电脑上应该提示手机已进入卡刷recovery界面,按任意键刷入永久中文版Recovery, 根据提示按下任意键,等待刷入完成 永久Recovery刷入成功,进入的方法是:关机状态下同时按住音量+和音量-和电源键,当手机屏幕显示dazen图标松开即可进入第三方Recovery,掌声送给ZhDroid大大和ATX-烟雨大大~~~ Recovery的操作是:音量+为上一选项,音量-为下一选项,电源键为确认。 卡刷recovery界面退出时会提示修正root,可不用理会。 备份可以备份到外置SD卡,也可以备份到手机内置存贮;刷入刷机包时,也可以选择不同的外置sdcard或机内存贮sdcard0或sdcard1。 recovery刷入工具:Coolpad_8675_A_Recovery.Fixed.exe https://www.doczj.com/doc/8c2690033.html,/s/1i3zizFf 手机驱动: https://www.doczj.com/doc/8c2690033.html,/s/1dDnfyvv 刷不成功,可能的原因: 可能是选择的驱动有问题, 可能是新装的驱动和电脑上存在以前的手机驱动相冲突问题, 可能驱动和电脑操作系统不匹配问题,

安卓刷机教程,Recovery刷机,HD2刷机教程

一:关于各机型刷安卓的一些解答 操作之前建议阅读一下此帖https://www.doczj.com/doc/8c2690033.html,/thread-102164-1-1.html 一、前期准备 刷机工具SP Flash Tool v1.1029.00.rar (2.15 MB) 安卓ROM https://www.doczj.com/doc/8c2690033.html,/thread-101474-1-1.html 2303刷机线需要另行购买 usb普通线手机自带的 2303刷机线驱动INF.rar (105.37 KB) MTK USB驱动MTK USB Driver_v1.0845.rar (161.33 KB) 二、安装2303刷机线驱动 1、电脑插入2303刷机线 2、电脑提示找到新硬件 3、打开电脑的设备管理器,有未识别的新硬件 4、双击之,选择更新驱动程序 指向上面我提供的2303刷机线驱动目录, win7提示无法验证此驱动程序软件的发布者,不用理会,安装就是

5、安装完毕,记下prolific usb to serial bridge的端口号(我这里是 com3) 三、刷机工具的详细设置 解开上面刷机工具的压缩包,运行其中的flash_tool.exe options-baudrate-230400 (这里官方有个说明,虽然我刷的时候这里不改成230400也行,为避免不可知错误,还是按官方的来) options-com port-com? (这里设置成上面安装好2303驱动后看到的端口号) 然后点击刷机软件右上方的project,选择android。 其它按下图设置,下面八项指定的文件为安卓系统压缩包内对应的文件 四、切记要格式化手机 不格式化手机直接刷入安卓的话,可能会出现一些无信号、无声音等莫名问题。看上图,点击“Format”,弹出一个界面。在此界面的红线处,A1-设置“Format Length[Hex]” 为0x20000000。

ADB指令刷入recovery

· 难度指数:★★★ 工具:驱动(含ADB、Fastboot工具)recovery v2.5.0.9。zip recovery v3.0.2.4。zip FTM。zip 特点:需要手机获取Root权限,需掌握相关cmd命令和ADB命令;虽然命令不同,但跟fastboot模式刷入方式类似 提示:①新手机未获取Root权限的在CMD命令行输入su后到手机上点击程序界面中"allow”按钮,已获取的则不用②“驱动”建议解压到磁盘的根目录,方便操作③注意命令中单词之间有空格 教文: 下载上面提供的zip格式文件并解压出后缀名为img的文件到手机SD卡根目录。 ·保证安装驱动程序成功。(设置—>应用程序—>开发—>勾选“usb调试”。) ·开始—>运行—>输入:cmd—>按回车键—>进入dos命令行界面。 ·输入: cd /d 盘符:\zte-all —>按回车键 (盘符为你zte-all文件夹所在的C:、D:、E:、F: ) ·输入: adb devices —>按回车键 (出现P722G device字样代表手机连接成功。) ·输入: adb shell —>按回车键 (出现#的提示符号,这时命令行已经相当于手机里面的Linux命令行,可以直接对手机进行操作。) ·输入: su —>按回车键 (这个是从手机普通用户转为超级用户root权限的LINUX命令,大家只要输入SU。) ·新手机要注意手机屏幕,在弹出的对话框选择allow按钮即可,已刷第三方ROM 并获取Root权限的飘过此部。 (这是提示问你要不要给予命令端超级用户的root权限,有两个按钮分别为allow(允许)和cancel(取消),你就选给予allow就可以了,但动作要快,迟了就不行了。成功了的话有提示access granted,表示手机接受了root权限的授权。假如提示permission denied 就是失败了,可能你手机上按allow迟了,可以再次输入su按回车试试。没提示permission denied的话,就是成功了。)

怎么通过recovery模式刷机

怎么通过recovery模式刷机 通过recovery模式刷机方法 1.准备好你对应的的recovery.img文件 2.把下载好的recovery文件改名字,改成简单点的就好。如:11.img 注意扩展名是否被隐藏 3.将改好名字的recovery文件放到内存卡根目录不要连接数据线不要挂载usb 4.打开超级终端 -----输入su回车(最好用谷歌输入法,进入超级终端后按住menu键打开输入法) -----输入flash_image recovery /sdcard/你刚刚改好的文件名字.img 回车 (注意recovery前后都有个空格其它地方都没空格) 这里说下,有人问“_”怎么打出来的,装输入法,竖屏,长按左键调出输入法就可以打符号了 5.出现#时表示刷recovery完毕关机进入recovery看看是不是刷上了如有其它提示请看看是否输入错误了 末了附个比较新的recovery版本: 手机的recovery版本是2.5.1.2的,论坛中很多刷机教程都不是针对该版本的,个人经过多次刷机后整理了一下针对该版本的刷机步骤。

1. 首先,在刷机前手机关机,按住手机的【往返键】或【音量-】键不放,再按手机的【电源键】,如果你是按【往返键】的将进入fastboot界面;按的是【音量-】键的将进入的是hboot界面。前者再按一次【电源键】后就进入到了hboot界面;后者将直接进入到hboot界面。在这个界面中, 2. 使用【音量+】或【音量-】键可以选择菜单项目。我们要刷机或要进行分区当然要选择第二项的recovery了。选择好后,按手机的【电源键】后就进入到recovery界面了。针对2.5.1.2的recovery有8个选项菜单,每个主菜单中都有下一级菜单。 2.5.1.2的recovery对应的菜单如下: 版本recovery 2.5.1.2的全部菜单中英文注释: -reboot system now 重启系统 -apply sdcard:update.zip 使用sd卡根目录的update.zip 更新系统 -wipe data/factory reset 清空data分区并恢复出厂设置-wipe cache partition 清空cache分区 -install zip from sdcard 从sdcard选择文件更新系统 --apply sdcard:update.zip 使用sd卡根目录的update.zip 更新系统 --choose zip from sdcard 从sd卡选择zip格式升级包 --toggle signature verification 切换签名验证 --toggle asserts 切换升级脚本检查 -backup and restore 备份和恢复 --backup 备份

刷recovery img文件方法

刷recovery需要: 一部有sd卡的android手机(要root过的) 数据线 电脑 终端模拟器 recovery.img,常用的有ra recovery,clockworkmod recovery,和goapk recovery) 1.下载recovery到电脑。 2.如果文件不叫recovery.img,请重命名。 3.将recovery.img复制到手机的sd卡目录。 4.打开手机的terminal emultor 5.输入下列文字: su Flash_image recovery /sdcard/recovery.img (注意recovery前后都有个空格其它地方都没空格) 6.此时会出现很多个wrote block信息,不要退出程序。 7.等再次出现#:的时候,不要着急退出,输入以下文字进行测试: reboot recovery 此时,会重新启动到recovery。 本文来自: XDA智能手机网详细文章参考:https://www.doczj.com/doc/8c2690033.html,/thread-7708678-1-1.html https://www.doczj.com/doc/8c2690033.html,/viewthread.php?tid=622990&extra=page%3D1%26amp%3Bfilter%3Dtype %26amp%3Btypeid%3D211 这个是fastboot刷机方法,要用电脑 1. 手機開啟usb除錯, 不用關機 2. 用usb傳輸線連接手機和電腦 3. 解壓下載了的壓縮檔並把所有放在c盤 4. 開啟CMD, (接win+r, 輸入cmd, 按enter, vista/win7的最好用管理員權限) 5. 在CMD輸入以下指令,輸入完每一行按一次回車, 待指令完成再輸入一下行 1.CD C:\ 2.adb reboot bootloader 3.fastboot flash recovery CWM-5.0.1.0.img 复制代码 6. 出現 writing 'recovery'... OKAY即完成, 可拔下傳輸線並重啟

LG_P990_P993_Root+Recovery+刷机(详细图文教程)

首先要刷非官方的ROM就要用的获得ROOT和 Recovery了。 现在有小鸟要问很白的问题了。什么是ROOT什么又 是Recovery? 我只会白你一眼。你就自己不会去江上摆渡一下。什 么都出来了。 这里我就简单的让你理解下。 ROOT, (你可以简单的理解成最高权限或者管理员都 可以) Recovery,(就更简单了。只是一个刷机的模式而已)第一步:安装驱动程序!点击打开下载的驱动LGUnitedMobileDriver_S498MA22_WHQL_ML_Ver_2.2

接着下一步驱动开始安装!Windows会自动安装驱动。 你可以泡杯咖灰了。 到这里驱动已经安装完毕了!

2.用USB数据线将手机连接到电脑上,开启手机上的USB调试模式,菜单-应用程序-开发 3.将工具包中的SuperOneClickv1.9.1-ShortFuse解压缩到硬盘任意 分区根目录

4.在目录里找到SuperOneClick.exe,双击打开出现 选择Universal 下的第一项ROOT 中途会谈出窗口Test?》

选择是然后接着会出现《Testing!》还有一个黄色的感叹号!别慌,这是正常的,直接点确定。 马上就会弹出《Rootted!》同样选择是。这时候你应该也看到里进程表里出现的英文: Running a SU test... Success! Don't forget to reboot! 说明已经获得最高权限.与此同时你的手机里也会出现一个叫做<授权管理>的骷髅头程序,

有些同学可能等了很长时间没反应,多试几次! 点击ROOT后,10秒左右会跳出一个对话框,如果显示的是:Device is rooted,(如上图所示)就表示ROOT成功!重启一下手机就OK! 5.如果不成功,先卸载Car Home及F-Secure应用再尝试 root之后你的手机上就有一个授权管理咯 第三步:接着再把Recovery_Optimus-3.0.2.8-lg2x

三星i9100刷入CWM recovery的方法和教程

三星i9100刷入CWM recovery的方法和教程 给三星i9100手机刷机的时候很多人还是喜欢用卡刷的方式来刷的,因为有些系统的rom 包只能用卡刷的方式,比如小米的miui系统,就只能用卡刷的方试,如果要用卡刷的方式刷的话,必须先给手机里刷入CWM recovery包,这样才能进行刷机,所以呢,今天就来说说如何给手机发装CWM recovery包吧,本文讲的所有的操作都是在电脑上来完成的,手机只要和电脑连接成功就可以了。 准备工作: 一:下载三星手机的驱动,下载到电脑 从Kies_2.3.0.12035_16_4.exe里提取的USB驱动安装包,驱动安装包生成于2012年3月14日,版本号1.5.4.0。适用于三星几乎所有手机。 点击这里下载 二:下载CWM recovery包,直接下载到电脑里就可以了,下面提供的是英文版和中文版的,下载其中一个就可以了 英文版CWM GT-I9100_ClockworkMod-Recovery_5.0.2.3.tar 点击这里下载 中文版CWM GT-I9100_CWM_GoAPK_CN_Recovery_5.0.0.1.tar 点击这里下载 三:Odin3.rar 版本1.87刷机工具,这个也是下载到电脑上的,直接在电脑上进行操作的,下面会用的到。 点击这里下载 具体的刷入CWM recovery步骤 1、确认电脑上安装了三星USB驱动,上面已经提供了下载地址。 2、手机不要连到电脑上,先关机,然后按住【音量-】和【Home(主屏)】键不放,再按住【电源】键3秒左右开机,会看到一个警告画面。再按【音量+】,进入Odin刷机模式。 3、启动Odin,将手机用USB数据线连接到电脑,稍等片刻,Odin应该显示手机已连接。 4、在Odin界面上勾选“Auto reboot”和“F. Reset Time”,确认其它的都没勾。点“PDA”按钮,选择要刷写的CWM Recovery 文件(也就是上面下载的Recovery 包,中文和英文的选一个就可以了)。

安卓CWM(recovery)模式刷机简要讲解(doc 9页)

安卓CWM(recovery)模式刷机简要讲解(doc 9页)

安卓CWM(recovery)模式刷机讲解: 【说明:刷机不可怕,只是要细心,就和为人处事是一个道理。“胆大心细”就是刷机者必备的特性。再资深的刷机人士,也是从一个菜鸟慢慢成长起来的。长年累月的经验积累,铸就了刷机者不可磨灭的精神品质,也帮助了难以计数的求助机友。 以下教程的完成参考于互联网,而浅层技术讲解出自本人对安卓系统刷机经验的总结。教程具有逻辑性强、语言易懂、极具指导性的特点!目的在于指导小白们有一个系统的,比较全面的玩机教程!虽算不上呕心沥血,但也算是话费了一些心思的。也希望借此平台能够与更多的机油

们得到交流、促进进步!】 QQ287290373 QQ287290373 目录 第一讲:刷机简介 1.1 什么是刷机 1.2 刷机风险 1.3 刷机的几个方法 1.4 刷机前的准备 第二讲:CWM刷机模式 2.1 什么是CWM刷机模式 2.2 什么是root权限 2.3 root权限的方法 2.4 如何刷入CWM 2.5 CWM菜单的常用功能详解 2.6 CWM菜单中高级功能详解 第三讲:使用CWM模式刷第三方zip包。 3.1 什么是第三方zip包刷机 3.2 第三方zip包刷机方法 第一讲:刷机简介

介绍。 二、手机端卡刷。 顾名思义,卡刷就是把下载好的ROM复制到内存卡根目录。然后关机进入CWM (recovery)模式,进行刷机。这个方法也是本教程讲解的核心内容。 1.4刷机前的准备 保证手机能正常连接电脑 方法:在电脑端下载该机型的USB连接驱动,最简单的方法是下载“豌豆荚”或者“91手机助手”。打开USB调试后,用数据线连接电脑和手机,电脑会自动检测手机和自动安装该驱动,按提示安装即可! 第二讲:CWM刷机模式 2.1 什么是CWM刷机模式 CWM,全称ClockworkMod Recovery,是著名的第三方Recovery。它的用途在于清除数据、刷入第三方系统或安装zip升级包、备份和还原系统等。CWM刷机模式还可以叫做CWM

华为C8812详细刷机教程 从刷入recovery开始教你刷机

华为C8812详细刷机教程从刷入recovery开始教你刷机 recovery开始教你刷机 提示:华为C8812在官方B918版本或者之前的版本直接刷入按照下面的教程刷入recovery之后就可以刷机。如果是B921以后的版本需要解锁。这里就以B918版本为例给大家介绍。 刷机之前的准备工作: 卓大师(刷机专家):点击下载 下面开始详细的刷机教程: 1、安装驱动这块很简单,就不多介绍了。不懂百度一下C8812驱动安装教程或者用豌豆荚来就可以。 2、手机进入bootloader。进入系统设置。下拉关闭快速启动。这个时候手机不能连接到电脑上,拔掉数据线。按住音量下之后按住开机键。等待10秒杀。停留在华为开机logo 上就对了。 3、把手机连接到电脑,运行recovery.exe,按提示进行 (有些机友进行到这步时会失败,可以检查一下驱动是否正常,或者换一个USB口试试,还不行的话,就重新装一次驱动,安装驱动电脑是没反应的,你检查有没有装好就可以了,如果驱动装好了就可以拔下电池重启一次手机,然后重新进行第一步,如果驱动死活装不上去就只能换一台电脑再试了。) 4、一直进行下一步就会刷入recovery,直到显示recovery 分区更新完毕,然后按任意键手机会重启,如果手机不自动重启,就自己重启一下吧 注意看writing“recovery” 后面对应的是“ OKAY ”

5、进入recovery的方法:按住音量上+开机键开机,并按住两键不放,直到进入新recovery 进入recovery后按键说明: 音量上下键==上下移动 菜单键==向下移动 中间的按键==确定 电源键==确定 二、使用recovery刷机 1、把刷机文件(如C8812_K103.zip) 复制到手机SD卡任意目录。 2、关机,同时按住音量键上和电源键,都不要放手,。然后等一会儿就进入Recovery 模式了。 3、选择清空所有数据按确定(进入擦除数据菜单)

魅族MX4PRO第三方Recovery安装使用教程

这个教程是关于第三方Recovery的安装,及ROM的刷入。 (可能会有一些不同的地方,按照实际操作即可。对于我个人的语言组织,请忽略) 1、很多人会疑问,为何要那么麻烦安装第三方Recovery。稍有刷机经验的就能体会。官方的Recovery都是带签名,除了官方ROM外,其它ROM刷入都是会提示“固件损坏”,所以,这个步骤是刷mx4 pro第三方ROM的前提; 2、请检查手机当前固件是否为flyme4.5.3A以上(推荐4.5.3.1A),如果不是,请务必刷入后才进行后面的操作; 3、关闭手机的锁屏密码和指纹(这个是为了回去flyme的前提,漏操作,可能需要返修了); 4、到设置-账户-我的Flyme-用户名-系统权限-开启(对于那个什么提示,不用理会,直接勾选,重启) 5、安装Super SU(安装包有提供,如果无法安装,请直接在应用中心下载最新版本); 6、打开Super SU会提示更新二进制文件,点击确认-常规方式,然后系统会弹出是否给予权限,勾选,确认即可,等待提示安装完成,点重启。如果提示失败,重启后再次尝试,还是不行,平刷当前版本flyme,然后从第4步开始操作; 7、重启完成后打开Super SU,到软件设置里,把默认的权限方式改成“允许”。然后安装Busybox,RootExplorer,终端模拟器;(无法安装,请移步应用商店) 8、打开Busybox,等待加载完成,出现下图界面,点Install安装(Enable Smart Install,不用勾选)

9、安装完成后会出现一个带红叉的悬浮页面,直接点叉关闭,然后按home键退出; 10、打开终端模拟器,输入cd /sdcard/twrp(注意,cd之后有空格。另外,请将压缩包内twrp文件放入SD卡根目录),然后回车。接着再输入su -c sh install.sh,回车,运行 界面如下($ 这个符号之前的文字请忽略)

魅蓝2解锁BL+刷入第三方RE教程

内置卡的数据一定要提前备份。会清空的 1,电脑端解压adbdriver.zip,运行ADBDriverInstaller安装adb驱动,win8以及以上系统需要事先修改电脑支持安装第三方未签名的驱动(具体百度)。(建议win7最好) 2,解压unlock_bootloader.zip,把得到的unlock_bootloader.sh复制到内置卡根目录下(路径/sdcard/unlock_bootloader.sh)。 3,手机完整root,而且最好需是用supersu更新过二进制文件(别问我老毛没说我怎么知道,我就是知道),然后安装终端模拟器(百度搜),另外安装busybox pro,用它安装busybox 指令集(务必使用BusyBox Pro Final 游戏版本: v33或者以上的版本,切记)。手机开启usb调试。作完这些最好重启一遍手机。 4.打开刚才安装好的终端模拟器,输入su 回车。提示授权申请时请给予root权限。 接着输入sh /sdcard/unlock_bootloader.sh 回车确认。这里注意sh 跟路径之间有一个空格。 ps:可以把unlock_bootloader.sh文件改成1.sh。代码就输入: sh /sdcard/1.sh 不就解决了? 5.如果出现原教程图中所示的提示就表示手机端的操作已经成功。(记得先不要关闭终端模拟器,还要用到。)。如果你输入的sh文件目录不对,会有错误提示,请再次确认文件是否存在,路径是否正确。(busybox指令集如果版本太低也会出错。)

6.解压adb.zip内的文件到电脑的系统盘(c盘)内。记住路径(比如解压到c:\adb下)。 7.手机终端模拟器里面输入 reboot bootloader 回车,手机进入BL界面。 然后连接电脑。 8.成功进入bl界面后,电脑点击开始菜单-运行-输入CMD,确定。然后在CMD内定位之前解压的ADB.EXE所在的路径,比如ADB.EXE之前解压到c:\adb目录下。则: 输入cd c:\adb 9.接着输入一下代码 fastboot oem unlock 同样回车确认。此时手机会出现提示告诉你这样做会丢失保修之类的,此时可以使用手机音量上键确认,下键取消。 10,解锁bl过程将持续5至10分钟,耐心等待,直到CMD窗口出现相关成功信息(通常是一行字写解锁花时多少S,一行写着OKAY。。)CMD窗口可以一直留着,先别关,。 11,长按电源键关机,然后手动进入re,重刷一次固件,记得要wipe!切记!要不然很可能无限重启。 12.重新进入系统后,记得再次打开usb调试,重做完整ROOT操作、重新安装终端模拟器。 13.再次打开终端模拟器,输入su 回车,出现授权时候授权。 接着输入以下代码再次进入BOOTLOADER界面。 reboot bootloader 接着把手机连接到电脑。

手机、网络机顶盒刷机recovery教程

本文内容取材、改编于网络,涉及到原创内容及相关程序的版权问题,最终解析权归原作者 所有。如有不妥处,请斧正。 何为刷Recovery 我们平时所说的刷Recovery就是把recovery.img文件写到recovery分区,手机会安装该文件并实现它的高级功能。对于刷机失误变成“砖机”也分两种情况,分别是“真砖”“假砖”。“真砖”是fastboot模式和recovery模式所在的分区都已损坏,不能进入手机系统;“假砖”是fastboot模式或者recovery模式单方错误,只要其中一种模式没问题就可救活手机进入正常状态。下面介绍的方法中,如不小心刷入失败而造成进入Recovery模式时卡在"wo”屏,不要慌可以换另外刷入方法补救的。 刷入recovery基本思路: ?电脑端刷入:安装驱动——>进入相应手机模式——>打开相应工具——>输入指令?手机端刷入:获取Root权限——>打开超级终端——>输入指令 刷入Recovery方法预览: ?电脑端刷入 1.向导式刷入 2.ADB命令刷入 3.diagnostic (诊断模式)刷入 4.fastboot命令刷入 ?手机端刷入 5.超级终端刷入 6.Recovery模式刷入

小知识 相关名词: Root——Root是Android系统中权限最高的用户帐户,该帐户拥有整个系统的最高权限,能够对系统中所有对象进行添加、删除、编辑等操作。平时我们所说的Root,其实是通过某种方法取得系统的Root权限,如同在Windows系统下用Administrator账户登录一样。 Recovery——手机上的一个功能分区,有点类似于笔记本电脑上的恢复分区。一般大厂出的笔记本,都会自带一个特殊分区,里面保存着系统的镜像文件,当系统出问题的时候,我们可以通过它来一键恢复系统。这里的recovery功能有些类似。其实,他更像是电脑上的小型winPE系统,可以允许我们通过启动到winPE系统上,去做一些备份、恢复的工作。当然,系统自带的recovery基本没用,所以我们通常会刷入一个第三方的recovery,以便实现更多的功能,例如:备份系统,恢复系统,刷新系统等。 Fastboot——是一个特殊的工程模式,通过fastboot界面,连接电脑后,我们可以在电脑端通过特殊的指令来操作手机,例如更新radio,就可以通过fastboot来完成。fastboot 的级别又要比recovery来的要高一些,可以完成更底层的一些操作。 BootLoader——负责系统的引导工作,同时集成一些诸如清除,恢复,硬启的功能,一般单独存放于某一个芯片内,该部分需要特殊的操作才可以进行擦写。可以把BootLoaer 想象为电脑的BIOS,对其进行操作有一定的风险。 FTM——Factory Test Model,工厂测试模式,厂商用于测试手机的模式,拥有较高的操作级别,能够刷入更底层的手机文件,官方气息特重。 ADB——Android Debug Bridge,字面意思就是安卓调试桥接,简单点说,它是Android 系统提供的一套工具,通过它,我们可以在电脑上建立一个连接到手机的通道,然后可以在电脑上向手机发送一些指令,完成一些我们需要做的工作。你可以在MS-DOS环境下直接使用ADB命令,或者进入ADB shell 使用Linux命令。通过ADB,你可以安装软件,卸载软件,刷写镜像,改变手机设置等。 手机系统分区——SYSTEM:系统分区,我们刷机器一般就是刷的这个分区、USERDATA:用户数据分区、CACHE:缓存分区、RECOVERY:Recovery分区、BOOT:存放内核和ramdisk 的分区、HBoot(HTC):这个是SPL所在的分区,也是fastboot所在的分区,刷错就真的

触控版本的Recovery TWRP 2.0刷入及使用教程

触控版本的Recovery TWRP 2.0刷入及使用教程Team Win 正式推出 TWRP 2.0,不再需要依赖音量钮操作刷机选单啦!虽然花的时间比想象的要久,但 Team Win 的Recovery Project 2.0(TWRP 2.0)现在终究还是与大家见面了。它在九月时的演示中,首次让我们看到了具备触控接口的 Recovery 工具,便令人很期待其正式释出的日子,期望它把刷系统(ROM)、备份 Android 手机及清空(Wipe)Dalvik 快取都变得更为简单(就让我们抛弃使用音量钮的选单操作吧!)。 这个触控版本的 ClockworkMod 可支持平板计算机及手机装置,其中也包括 Nexus S、Kindle Fire 与 TouchPad。坦白说,目前它所支持的装置数还并不算太多,有兴趣的朋友

可以先经由引用来源中的官网连结,看看自己的装置是否已在其中。而还不知道 TWRP 2.0 长什么模样的朋友,也可以在跳转后观看工具操作示范与讲解的影片啰。不知道有没有人已经尝鲜玩过了呢?也可以在留言中跟大家分享你的心得喔! TeamWin Recovery Project (twrp) 2.0下载: https://www.doczj.com/doc/8c2690033.html,/thread-2082686-1-1.html TWRP 2.0刷入方法: 1、将附件文件重命名为PG58IMG.zip,并放于Micro SD(TF)卡根目录下。 2、手机关机。 3、按住音量下+电源键开机。 4、手机检测到PG58IMG.zip,询问是否升级。 5、按音量上选择Yes。 6、刷完重启 进入TWRP后,界面如上所示,可以看到已经是图形化界面了,不过屏幕总有一些闪,但是不影响使用。具体的功能如下所写。

recovery刷机教程

以下教程主要针对刚入手安卓手机的新手,老手们欢迎光临指导! 很多U8800的朋友可能不了解recovery刷机模式,毕竟海外大神、凡人、子规他们编译的U8的clockworkmod recovery才完成不久; 其实通过recovery刷机是一种很方便的方法,和刷官方包方式相比具有刷机快,可刷第三方定制ROM等等诸多好处; 此外,还可以通过recovery做备份,就像XP的Ghost备份一样方便。下面,我就用图文并茂、循序渐进的方式,教大家利用recovery刷中意的第三方ROM。 一、将clockworkmod 版的recovery刷入手机(这部分就不放图片了) 由于U8800自带的recovery是3e版的,只能wipe,也就是清除数据,刷机只能用华为的文件(签名加密问题),因此我们需要将第三方的clockworkmod recovery刷入手机。 1. 下载clockworkmod recovery,解压得recovery.img 2. TF卡里不要放官方刷机包,就是不要有dload文件夹 3. 同时按住音量上+音量下+开机(音量键可以向上、向下也可以同时按住,大家可以试试),直到出来一个粉红色的屏幕,然后用数据线连电脑 4. 电脑会自动安装驱动,然后出弹来一个大容量U盘, 打开,可以看到image文件夹 5. 打开image文件夹,备份里面的recovery.img,然后把解压得到的recovery.img复制进去,覆盖原来的recovery.img

6. 关机没办法,只能拔电池,这样recovery的导入就完成了(相比较其他机型必须刷机才能更换Recovery,8800还是最容易的) 二、使用recovery刷论坛上的.ZIP刷机包-以下示例用的是子规兄的组合刷机包 1. 将下载下来的zip刷机包不要解压,直接放到TF卡根目录(可用读卡器或手机助手) 2. 一直按住音量向上+电源按钮开机,直到进入recovery 3.wipe data/factory reset,音量上下键选择,电源键确定 4.wipe chche partition,同样方法

【recovery教程】recovery功能详解及刷机教程

什么是recovery? 相信这个问题难不住各位老鸟,recovery翻译过来就是“恢复”的意思,是开机后通过特殊按键组合用关机键+音量+/- (依机型不同而不同,不过有些机型可能没有刷入recovery,可自行刷入。)能够进去的一个系统(工程模式),在这个界面你可以直接用sd 卡上的zip 的rom 升级或者备份你的系统,老版本的recovery 只有三个选项,只能用update.zip这个文件名的文件升级,而且无法备份系统,不能用任何文件名的zip文件升级。新版本已经多出很多选项可以供你操作。 如何进入recovery模式?这个每款手机的操作各不相同就不再展开介绍,咱们只说recovery 通用的部分 注:这里以2.5版本的recovery作为演示 ①主功能界面: ---reboot system now 重启手机 ---apply SDcard:update.zip 安装存储卡中的update.zip升级包(刷机包必须为为update.zip才能升级) ---wipe data/factory reset 清除用户数据并恢复出厂设置(刷机前必须执行的选项) ---wipe cache partition 清除系统缓存(刷机前必须执行的选项决) ---install zip from SDcard 从SDcard上安装zip格式的升级包 ---backup and restore 备份和还原系统(相当于手机版的ghost一键备份、还原)

---mounts and storage 挂载和存储选项 ---advanced 高级设置 wipe data/factory reset 和wipe cache partition就是传说中的“双wipe”了,刷机前最好执行以下,不然可能会出现各种各样的小问题~ ----------------------------------------------------------------------------------------------------- ②install zip from SD card界面: ---apply sdcard:update.zip 升级SD卡中的update.zip刷机包 ---choose zip from sd card 从SD卡中选择zip格式的升级包(升级刷机包一般选这个) ---toggle signature verification 检验签名 ---toggle script asserts 脚本声明 -----------------------------------------------------------------------------------------------------

相关主题
文本预览
相关文档 最新文档