Giter Club home page Giter Club logo

homekitadk's Introduction

HomeKit Accessory Development Kit (ADK)

The HomeKit ADK is used by silicon vendors and accessory manufacturers to build HomeKit compatible devices.

The HomeKit ADK implements key components of the HomeKit Accessory Protocol (HAP), which embodies the core principles Apple brings to smart home technology: security, privacy, and reliability.

The HomeKit Open Source ADK is an open-source version of the HomeKit Accessory Development Kit. It can be used by any developer to prototype non-commercial smart home accessories. For commercial accessories, accessory developers must continue to use the commercial version of the HomeKit ADK available through the MFi Program.

Go to the Apple Developer Site if you like to learn more about developing HomeKit-enabled accessories and apps.

Documentation

Darwin PAL

Compile

make all

Run

./Output/Darwin-x86_64-apple-darwin18.6.0/Debug/IP/Applications/Lightbulb.OpenSSL

Linux PAL

Compile

make TARGET=Linux apps

Raspberry Pi

Prerequisites

Run this to create the SD card image (Linux+patches) and a Docker container (your build environment). Make sure that Docker is running before running this setup or it will fail and you will have to start over! This will take about an hour and will stop for input many times. It will also require you to swap the card out twice.

# Run the Docker app. It is required for docker import.
./Tools/raspi_sdcard_setup.sh

Compile

make TARGET=Raspi all

If docker doesn't find "dev-test/raspiadk-base", run the sdcard setup and make sure to do the docker import at the end of the script.

Install

After building, run this to install the build products to your RaspPi. (-n is for the hostname of your RaspPi and -p is the SSH password; both of these were chosen during the initial raspi_sdcard_setup.sh install).

./Tools/install.sh \
    -d raspi \
    -a Output/Raspi-armv6k-unknown-linux-gnueabihf/Debug/IP/Applications/Lightbulb.OpenSSL \
    -n raspberrypi \
    -p pi

Make options

Commmand Description Default
make <target>
  • apps - Build all apps
  • test - Build unit tests
  • all - Build apps and unit tests
all
make APPS=<application> Space delimited names of the apps to compile. Example:
make APPS=“Lightbulb Lock”
All applications
make BUILD_TYPE=<build_type> Build type:
  • Debug
  • Test
  • Release
Debug
make LOG_LEVEL=<level>
  • 0 - No logs are displayed
  • 1 - Error and Fault-level logs are displayed
  • 2 - Error, Fault-level and Info logs are displayed
  • 3 - Error, Fault-level, Info and Debug logs are displayed
  • 3 - For debug build
  • 1 - For test build
  • 0 - For release build
make PROTOCOLS=<protocol> Space delimited protocols supported by the applications:
  • BLE
  • IP
Example: make PROTOCOLS=“IP BLE”
All protocols
make TARGET=<platform> Build for a given target platform:
  • Darwin
  • Linux
  • Raspi
Build for the host Platform
make USE_HW_AUTH=<enable> Build with hardware authentication enabled:
  • 0 - Disable
  • 1 - Enable
Disabled
make USE_NFC=<enable> Build with NFC enabled:
  • 0 - Disable
  • 1 - Enable
Disabled
make DOCKER=<enable> Build with or without Docker:
  • 0 - Disable Docker during compilation
  • 1 - Enable Docker during compilaton
1 - Docker is enabled

homekitadk's People

Contributors

aajain-com avatar clovel avatar cpfister avatar rojer avatar pgravel-com avatar carricdsilva-apple avatar rojer9-fb avatar leonrinkel avatar signalwerk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.