# Tencent/tinker

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/tencent-tinker).**

17,829 stars · 3,362 forks · Java · other

## Links

- GitHub: https://github.com/Tencent/tinker
- awesome-repositories: https://awesome-repositories.com/repository/tencent-tinker.md

## Topics

`android` `dynamic` `hotfix` `wechat`

## Description

Tinker is an Android hotfix framework designed to update application code, resources, and native libraries at runtime without requiring a full reinstallation or store update. It provides a comprehensive engine for injecting runtime fixes and managing the software lifecycle of deployed mobile applications.

The framework distinguishes itself through a robust binary patching system that generates compact difference files between application versions, significantly reducing bandwidth usage during distribution. To ensure operational stability, it incorporates a crash-resilient safe mode that automatically disables faulty updates if repeated failures are detected during initialization.

The system includes integrated tools for verifying the authenticity and integrity of patch files using cryptographic checksums before execution. It supports the replacement of assets and shared object files, allowing developers to resolve functional or visual issues while maintaining the current user session state.

## Tags

### Mobile Development

- [Android Development](https://awesome-repositories.com/f/mobile-development/android-ecosystem/android-development.md) — Provides a framework for deploying hotfixes to Android applications to resolve critical bugs.
- [Android Libraries](https://awesome-repositories.com/f/mobile-development/android-ecosystem/android-libraries.md) — Provides a library for updating Android application code, resources, and native libraries at runtime.
- [Runtime Code Injection](https://awesome-repositories.com/f/mobile-development/distribution-updates/over-the-air-updates/runtime-code-injection.md) — Enables runtime code updates by manipulating class loaders to prioritize patched classes.
- [Mobile Patching Frameworks](https://awesome-repositories.com/f/mobile-development/mobile-infrastructure-security/mobile-patching-frameworks.md) — Generates and distributes binary difference files to modify installed mobile software behavior.

### Software Engineering & Architecture

- [Runtime Patching Engines](https://awesome-repositories.com/f/software-engineering-architecture/code-patching-engines/patch-generators/runtime-patching-engines.md) — Provides a comprehensive engine for injecting runtime fixes and verifying patch integrity.
- [Binary Patching Utilities](https://awesome-repositories.com/f/software-engineering-architecture/binary-patching-utilities.md) — Calculates byte-level differences between application versions to generate compact binary patch files.
- [Software Lifecycle Management](https://awesome-repositories.com/f/software-engineering-architecture/software-lifecycle-management.md) — Maintains deployed applications by updating native libraries and assets while preserving user session state.

### DevOps & Infrastructure

- [Stability Management](https://awesome-repositories.com/f/devops-infrastructure/distribution-packaging/application-update-managers/stability-management.md) — Implements safe mode mechanisms to automatically disable faulty patches and maintain software accessibility.
- [Build-Time Resource Updaters](https://awesome-repositories.com/f/devops-infrastructure/automated-update-management/build-time-resource-updaters.md) — Supports replacing or modifying assets and resource files within a deployed application. ([source](https://github.com/Tencent/tinker/blob/dev/settings.gradle))

### Programming Languages & Runtimes

- [Native Library Hot-Swapping](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/foreign-function-interfaces/native-library-integrations/native-library-hot-swapping.md) — Supports replacing loaded shared object files in memory to resolve issues without restarting.

### Security & Cryptography

- [Automated Security Patching](https://awesome-repositories.com/f/security-cryptography/application-and-system-security/automated-security-patching.md) — Verifies patch file checksums to ensure authenticity and integrity before application. ([source](https://github.com/Tencent/tinker/blob/master/tinker-android/tinker-android-loader/src/main/java/com/tencent/tinker/loader/app/TinkerApplication.java))
- [Component Integrity Verification](https://awesome-repositories.com/f/security-cryptography/cryptographic-verification/component-integrity-verification.md) — Validates the authenticity and integrity of patch files using cryptographic checksums before execution.

### User Interface & Experience

- [Resource Overlayers](https://awesome-repositories.com/f/user-interface-experience/resource-overlayers.md) — Overrides the asset manager to inject and serve updated resource files at runtime.

### Development Tools & Productivity

- [Application Runtimes](https://awesome-repositories.com/f/development-tools-productivity/platforms-runtimes-language-services/development-platforms/execution-runtimes/application-runtimes.md) — Enables updating application code, native libraries, and resources at runtime without full reinstallation. ([source](https://github.com/Tencent/tinker/blob/dev/gradlew.bat))

### System Administration & Monitoring

- [Safe Modes](https://awesome-repositories.com/f/system-administration-monitoring/diagnostic-tools/diagnostics/safe-modes.md) — Provides a restricted execution state that automatically disables faulty updates to prevent application crashes.
