ipctool

0

Описание

Simple tool (and library) for checking IP camera hardware

https://openipc.org

Языки

  • C94,8%
  • Shell3,5%
  • Python0,9%
  • CMake0,8%
README.md

OpenIPC Logo

IP camera hardware checking tool

Build Build CI status GitHub repo size GitHub issues GitHub pull requests License

This basic concept belongs to Maxim Chertov (thank you for your original utility) and Nikita Orlov (for cute YAML format for describing hardware). A warm welcome also to Igor Zalatov (for suggestions for new features and describing ways to do them).


Download

Use the link to download latest build (even directly to your camera). The build uses

musl
C library to work on vast majority of hardware.

Alternative launch methods

  • Your own NFS server (in case your camera firmware includes NFS client support, proven to work on XM cameras):

    As an alternative, you may run your own NFS server, putting ipctool on it.

  • Using UART and rx busybox applet on camera side. This option was described in @themactep blog post.

  • Using telnet/console and uget utility: basically convert small

    uget
    binary into
    echo
    /
    printf
    chunks and deploy to
    /tmp
    partition. Read more in documentation

  • TFTP, since some cameras have tftp clients and/or servers by default. Assuming you have the

    ipctool-mips32
    binary ready under
    /directory/to/serve
    :

    On a desktop computer:

    $ pip install ptftpd $ ptftpd -p 6969 en0 /directory/to/serve

    Other option, better for Debian/Ubuntu:

    $ sudo apt install tftpd-hpa

    then edit config

    /etc/default/tftpd-hpa

    # /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/directory/to/serve" TFTP_ADDRESS=":6969" TFTP_OPTIONS="--secure --create"

    and restart the service

    sudo systemctl restart tftpd-hpa

    On the camera:

    # tftp -g -r ipctool-mips32 <your.tftp.server.ip> 6969 46% |************** | 61952 0:00:01 ETA
  • Using telnet/console only: uses a python script to transfer ipctool via telnet/echo to the camera.

    On a desktop computer:

    $ tools/telnet_upload.py 192.168.1.10

    On the shell:

    # transfer

Usage

When run without parameters utility produces YAML with all hardware-specific information about given IP-camera or DVR:

In your own scripts

  • Determine chip name:

  • Determine sensor model and control line:

  • Get temperature from chip's internal sensor (not all devices supported):

As backup/restore tool

  • Save full backup with YAML metadata into specific file:

As reverse engineering tool

  • Drop-in replacement of

    dmesg
    command:

  • Drop-in replacement of

    fw_printenv
    and
    fw_setenv
    commands:

  • Drop-in replacement of

    i2cget
    ,
    i2cset
    and
    i2cdump
    commands from
    i2c-tools
    package:

  • The same approach is to manipulate SPI sensor registers:

  • Dump the state of pinmux registers in human- and machine-readable format or shell script ready to be applied on another system:

  • Advanced replacement of

    strace
    :

To help the researcher

On Ingenic devices, the original Sensor I2C address needs to be right shifted by 1bit, example:

IMX335: (0x34 >> 1) = 0x1A SC2230: (0x60 >> 1) = 0x30 GC2053: (0x6E >> 1) = 0x37

Supported SoCs

Tested on:

ManufacturerModels
HiSiliconHi3516CV100/200/300, Hi3516EV100/200/300, Hi3516DV300, Hi3518EV100
SigmaStarSSC335
XiongmaiXM510, XM530, XM550
RockchipRV1109
GokeGK7205v200/210/300

Please test on your device to help us extend the list.

Supported boards

Tested on:

ManufacturerModels
XiongmaiVarious models
HankvisionV6202IR-IMX327
RuisionRS-H649F-A0, RS-H651JAI-AO, RS-H656S-AO
TP-LinkNC210

Supported sensors

Tested on:

ManufacturerModels
Silicon Optronics, Inc.JX-F22, JX-F23, JX-F37, JX-H62, JX-H65, JX-K05
SonyIMX224, IMX290, IMX291, IMX307, IMX322, IMX323, IMX327, IMX335, IMX415, IMX664
ON SemiconductorAR0130, AR0237
SmartSensSC2135, SC223A, SC2232, SC2235, SC2235P, SC2239, SC2315e (SC307E, SC4239Р), SC335E (SC5300)
OmniVisionOV9712
GalaxyCoreGC2053

Please test on your device to help us extend the list.


Support

OpenIPC offers two levels of support.

  • Free support through the community (via chat).
  • Paid commercial support (from the team of developers).

Please consider subscribing for paid commercial support if you intend to use our product for business. As a paid customer, you will get technical support and maintenance services directly from our skilled team. Your bug reports and feature requests will get prioritized attention and expedited solutions. It's a win-win strategy for both parties, that would contribute to the stability your business, and help core developers to work on the project full-time.

If you have any specific questions concerning our project, feel free to contact us.

Participating and Contribution

If you like what we do, and willing to intensify the development, please consider participating.

You can improve existing code and send us patches. You can add new features missing from our code.

You can help us to write a better documentation, proofread and correct our websites.

You can just donate some money to cover the cost of development and long-term maintaining of what we believe is going to be the most stable, flexible, and open IP Network Camera Framework for users like yourself.

You can make a financial contribution to the project at Open Collective.

Thank you.

Open Collective donate button