Skip to content

Releases: Atomos-X/Camera2Magic

Fix preview rotation in some app :)

Choose a tag to compare

@Atomos-X Atomos-X released this 31 May 13:16
039db7d

Fix rotation in some app, etc. instagram

I haven't been able to use my personal computer lately due to work security policies, and I couldn't update the code during my time off. Apologies for the lack of recent commits.

Fix bugs for #18

Choose a tag to compare

@Atomos-X Atomos-X released this 14 May 11:18
039db7d

#18

"It appears some apps use a single Surface (format=35) for both preview and WebRTC packaging. In a previous update, I temporarily blocked the YUV data override for format=35 to debug and fix a multi-stream switching bug, which prevented this specific case from being handled correctly. This restriction will be lifted once the bug fix is finalized."

unblock YUV data override for format=35

add Android 32-bit support

Choose a tag to compare

@Atomos-X Atomos-X released this 30 Apr 01:27
039db7d
  • add Android 32-bit support
  • unblock wechat mini app usage (aka 小程序)
  • fix bugs.

NOTE: I AM UNABLE TO TEST APPS THAT I CAN'T ACCESS

fix (crash?) in some app

Choose a tag to compare

@Atomos-X Atomos-X released this 05 Apr 10:33

In some apps, addTarget is executed before createCaptureSession. This causes cachedOriginSurface to be null, preventing the logic from identifying and replacing the target with BlackHole.surface. The resulting race condition between the Camera HAL and the render thread leads to continuous camera pipeline reconstruction.

  • app use surface(format=35) take picture not working now. maybe fix net update:)

new test version :)

Choose a tag to compare

@Atomos-X Atomos-X released this 05 Apr 09:36

v1.1.0

  • A stable shared media file solution:
    • Good: Neither the module nor the hooked app needs media permissions anymore, eliminating issues where media saved by the module cannot be accessed by the host app.
    • Bad: Large files (500MB+) require some processing time, so a working status indicator has been added.
  • Replaced FFmpeg + AMediaCodec with ExoPlayer for decoding:
    • Good: libcamera3.so is now about half the original size, reducing resource usage inside the host app. Also enables 32-bit support and eliminates β€œthread hell.”
    • Bad: There may be some unknown bugs that require longer testing.
  • Optimized targetSurface detection logic:
    • Now supports a wider range of camera implementations across different apps. maybe.

v1.0.2 fix scan qr code not working in some app.

Choose a tag to compare

@Atomos-X Atomos-X released this 02 Apr 07:08

no new futures. )

  • notic some old android version can't correct work with MediaStore id. will fix next time.

v1.0.1 for LSPosed api101

Choose a tag to compare

@Atomos-X Atomos-X released this 22 Mar 05:51

Camera2 Magic 1.0.1

  • Only supports API 101; requires LSPosed 2.0.0+
  • Device must support MediaCodec decoding
  • After installing the module, enable it in the LSPosed Manager and select the target scope
  • Place your media files in shared storage directories such as DCIM; both the module and the hooked app must have permission to access photos and videos
  • Open the module UI, tap the thumbnail area, and select a media file from the file picker
  • Once the module is active, you can use the β€œEnable Module” toggle to turn the hook on or off
  • Enable audio playback if needed; this option has no effect when using images as input
  • Currently only local files are supported; network video streams are not supported yet
  • Supports apps using WebRTC (Camera2 API) for camera input; only tested on Telegram
  • Do not use this module in scenarios requiring high visual stability; you are responsible for any account bans

Features

  • Most videos can be used out-of-the-box without worrying about resolution matching between the video and the host app
  • Prefer vertical videos over horizontal ones to avoid excessive cropping on the sides
  • In some apps, changing the preview aspect ratio does not interrupt the preview stream

Migrated to LSPosed api 101

Choose a tag to compare

@Atomos-X Atomos-X released this 12 Mar 07:23

migrated to LSPosed api 101, need LSPosed 7606+
can't upgrade from 1.0.0-rc, need new install

Optimize surface handling and reduce JNI overhead

Choose a tag to compare

@Atomos-X Atomos-X released this 05 Mar 11:55
  • Replace original SurfaceTexture with a "black hole" Surface to eliminate producer contention with the camera HAL.
  • Targeted replacement: only the first Surface with Format = 1 (typically the preview Surface) is substituted.
  • Optimize per-frame JNI overhead by adopting a pull-model and direct memory mapping (zero-copy), eliminating redundant worker threads.
    **Camera HAL use 1x1 size Surface(Texture) for preivew, maybe better performance or more crash? **

migrated to LSPosed api 100

Choose a tag to compare

@Atomos-X Atomos-X released this 27 Jan 08:10
  • migrated to LSPosed api 100 (LSPosed 1.9.2-it)
  • fix bugs.