Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App format? #2

Open
natevw opened this issue Feb 11, 2013 · 9 comments
Open

App format? #2

natevw opened this issue Feb 11, 2013 · 9 comments

Comments

@natevw
Copy link

natevw commented Feb 11, 2013

Any luck/tips/links with the actual app format required?

@abl
Copy link
Contributor

abl commented Feb 14, 2013

This is a screenshot of a hex dump of a pbpack (contained in the app) - specifically big-time-12.pbw unzipped to produce app_resources.pbpack - do you see what I see? :)
Screen Shot 2013-02-13 at 4 43 05 PM

@Hexxeh
Copy link
Owner

Hexxeh commented Feb 14, 2013

Hah, that's so cool..! :)

On 14 February 2013 00:59, aleksandyr [email protected] wrote:

This is a screenshot of a hex dump of a pbpack (contained in the app) -
specifically big-time-12.pbw unzipped to produce app_resources.pbpack - do
you see what I see? :)
[image: Screen Shot 2013-02-13 at 4 43 05 PM]https://f.cloud.github.com/assets/167740/155292/a8520898-7641-11e2-8eae-b3e8cd7abb7c.png


Reply to this email directly or view it on GitHubhttps://github.com//issues/2#issuecomment-13527810.

@abl
Copy link
Contributor

abl commented Feb 14, 2013

I'm working on picking apart the format. So far nothing seems particularly obfuscated...but I'm not familiar enough with this type of work to comment on whether or not the Pebble guys used a standard binary format. The differences between big-time-12 and big-time-24 are greater than I'd expect but that's based on bsdiff patch size and not an informed poke.

I'm working on some pythonic tools to play with and analyze. Will post if anything cool happens...

@abl
Copy link
Contributor

abl commented Feb 14, 2013

Going to crash for a bit but I've checked in (to my fork) a few tools that automate pulling down, and pulling apart, the current pebble apps.

@Hexxeh
Copy link
Owner

Hexxeh commented Feb 14, 2013

Nice job!

@natevw
Copy link
Author

natevw commented Feb 14, 2013

Hehe, fun. Is this just a watch face though?

I'm eager to get a full executable going — I played around with the inPulse SDK and am assuming the Pebble's app strategy will be at least slightly informed by it (same team but building something of a "second system" on different hardware).

@abl
Copy link
Contributor

abl commented Feb 15, 2013

This is just the resource file for the watch face's code (which is a separate binary in a format I'm not quite certain of.) Very limited customization options right now :(

@EnJens
Copy link
Collaborator

EnJens commented Feb 15, 2013

I've added a repository to pebbledev organization: https://github.com/PebbleDev/pebble-tools (and added you as collaborator).

I figure perhaps we should keep it seperate from libpebble, as it's kind of different tools? :)
I have a few tools and stuff to add as well

@abl
Copy link
Contributor

abl commented Feb 15, 2013

SGTM - will integrate after I finish rewriting documentation.

On Fri, Feb 15, 2013 at 1:39 AM, RaYmAn [email protected] wrote:

I've added a repository to pebbledev organization:
https://github.com/PebbleDev/pebble-tools (and added you as collaborator).

I figure perhaps we should keep it seperate from libpebble, as it's kind
of different tools? :)
I have a few tools and stuff to add as well


Reply to this email directly or view it on GitHubhttps://github.com//issues/2#issuecomment-13599175.

Alexander Lash
[email protected]
[email protected]

zulak referenced this issue in pebble/libpebble Apr 12, 2013
* Adds improved support for new PebbleProtocol messages used by the Pebble Watchface SDK
* Includes experimental support for Bluetooth communication via lightblue on OS X and Linux.

Squashed commit of the following:

commit c6be3b3
Merge: ed215bb 80a371a
Author: Paul McInnis <[email protected]>
Date:   Thu Apr 11 12:36:42 2013 -0700

    Merge pull request #7 from pebble/launch-on-install

    User-side Improvements

commit 80a371a
Author: Paul McInnis <[email protected]>
Date:   Thu Apr 11 11:52:55 2013 -0700

    Give ping a default value as 0 doesn't get returned from LightBluePebble

commit ed215bb
Author: Paul McInnis <[email protected]>
Date:   Wed Apr 10 19:39:53 2013 -0700

    Update README.md

commit 5ce56b8
Author: Paul McInnis <[email protected]>
Date:   Wed Apr 10 19:12:55 2013 -0700

    Make launching on install an option in the arg parser

commit 74f983a
Author: Paul McInnis <[email protected]>
Date:   Wed Apr 10 19:00:15 2013 -0700

    Added the launch on install feature and made the uuid usage more consistant

commit 0469d8f
Author: Paul McInnis <[email protected]>
Date:   Wed Apr 10 16:54:08 2013 -0700

    Update README.md

commit 09f43a4
Author: follower <[email protected]>
Date:   Wed Apr 10 17:55:39 2013 +1200

    Fix typo.

commit 5f5bb0c
Author: follower <[email protected]>
Date:   Wed Apr 10 17:54:26 2013 +1200

    Fix typo.

commit 6b66262
Author: Martijn The <[email protected]>
Date:   Tue Apr 9 15:41:11 2013 -0700

    Update README.md

    Typo

commit 1196331
Merge: 662d199 939061e
Author: Paul McInnis <[email protected]>
Date:   Mon Apr 8 11:57:52 2013 -0700

    Merge pull request #5 from pebble/feature-launch-by-uuid

    Added missing endpoints for Application messages and Launcher messages

commit 939061e
Author: Paul McInnis <[email protected]>
Date:   Fri Apr 5 16:34:50 2013 -0700

    User itertools to flatten the tuple of tuples
    Use run_key correctly
    Other PR commentary

commit 662d199
Author: Paul McInnis <[email protected]>
Date:   Wed Apr 3 19:20:10 2013 -0700

    Update README.md

commit 1b26286
Author: Paul McInnis <[email protected]>
Date:   Wed Apr 3 17:41:57 2013 -0700

    Update README.md

commit 3eeb043
Merge: e6a63e0 2428e8a
Author: Paul McInnis <[email protected]>
Date:   Wed Apr 3 12:59:01 2013 -0700

    Merge pull request #4 from pebble/feature-remove-app-by-uuid

    added app reinstallation with uuid feature

commit 2428e8a
Author: Paul McInnis <[email protected]>
Date:   Wed Apr 3 12:58:29 2013 -0700

    Fixed segfault issue by overriding SIGINT to close the connection before exit(0)

commit 9937072
Author: Paul McInnis <[email protected]>
Date:   Wed Apr 3 12:18:05 2013 -0700

    Moved the tools to build an app message into their own class.

commit 53c4849
Author: Paul McInnis <[email protected]>
Date:   Tue Apr 2 20:43:19 2013 -0700

    Moved all message building into methods for use in building app_messages that may have more than one tuple.

commit 37008f5
Author: Paul McInnis <[email protected]>
Date:   Tue Apr 2 18:09:48 2013 -0700

    uuid_to_remove is string: --> uuid_is_string

commit 229f86a
Author: Paul McInnis <[email protected]>
Date:   Tue Apr 2 18:07:21 2013 -0700

    uuid --> app_uuid

commit e420d91
Author: Paul McInnis <[email protected]>
Date:   Tue Apr 2 18:04:26 2013 -0700

    improve uuid handling

commit 87c429c
Author: Paul McInnis <[email protected]>
Date:   Tue Apr 2 17:37:13 2013 -0700

    Added missing endpoints for Application messages and Launcher messages
    Added endpoint handler
    Added ability to launch an application over bluetooth
    * NEXT: make a put-bytes style client to parse messages to and from the application.

commit 2302f39
Author: Paul McInnis <[email protected]>
Date:   Fri Mar 29 17:10:08 2013 -0700

    Added an endpoint for App_Manager so that app installation/reinstallation can be Asynchronous
    Improve uninstall behaviour
    Address matt's PR responses

commit 946f55c
Merge: a63325c e6a63e0
Author: Martijn The <[email protected]>
Date:   Fri Mar 29 16:55:09 2013 -0700

    Merge branch 'lightblue' into feature-remove-app-by-uuid

commit a63325c
Author: Paul McInnis <[email protected]>
Date:   Fri Mar 29 11:44:16 2013 -0700

    added app reinstallation with uuid feature

commit e6a63e0
Merge: 7dfb73e 5fff3b5
Author: Paul McInnis <[email protected]>
Date:   Thu Mar 28 17:32:50 2013 -0700

    Merge pull request #3 from pebble/lightblue-pebble-improval

    This is the working libpebble with lightblue

commit 5fff3b5
Author: Paul McInnis <[email protected]>
Date:   Thu Mar 28 16:21:55 2013 -0700

    Needed to remove the LightBlueSerial.py

commit f712434
Author: Paul McInnis <[email protected]>
Date:   Thu Mar 28 16:16:15 2013 -0700

    This is the working libpebble with lighblue which does not product a generic LightBlueSerial object in the style of PySerial, but instead has LightBluePebble which is designed to allow for pebble communications.

    in p.py
    - made p.py disconnect when it is done running the script
    - made p.py print "no apps" instead of throwing a non-scriptable TypeError when no apps are installed

    in LightBlueSerial a.k.a LightBluePebble:
    - simplified the IPC with a blocking call to read the rec_queue
    - renamed to LightBluePebble because the tool is not generic enough to be used for other LightBlue tasks
    - improved shutdown behaviour and debug behaviour

    in repl.py
    - added flags to support lightblue and to allow users to use PySerial instead

    in pebble.py
    - general cleaning up
    - handle the _ser.recv when lightblue is being used such that debugging prompts in the main process are still displayed nicely.

commit 7dfb73e
Merge: 3caec95 5a59afd
Author: Paul McInnis <[email protected]>
Date:   Wed Mar 27 13:14:15 2013 -0700

    Merge pull request #2 from pebble/improval-readability

    Improved readability and interface timeout. Fixed a buggy log in pebble.py read function.

commit 5a59afd
Author: Paul McInnis <[email protected]>
Date:   Tue Mar 26 23:15:25 2013 -0700

    refactored length to timeout, added verbose mac address to connection. pebble/lightblue-0.4#4

commit 1769111
Author: Paul McInnis <[email protected]>
Date:   Tue Mar 26 19:17:45 2013 -0700

    improved readability and interface. fixed buggy log in pebble.py

commit 3caec95
Merge: 1b5e04a 34e939b
Author: Paul McInnis <[email protected]>
Date:   Tue Mar 26 19:09:23 2013 -0700

    Merge pull request #1 from pebble/feature-remove-app-by-uuid

    Feature remove app by uuid

commit 34e939b
Author: Martijn The <[email protected]>
Date:   Tue Mar 26 18:41:46 2013 -0700

    Added "remove_app_by_uuid" function to libpebble / p.py

commit 1b5e04a
Author: Martijn The <[email protected]>
Date:   Tue Mar 26 17:25:17 2013 -0700

    non-editable dependency for lightblue in requirements.txt

commit b67d59a
Author: Martijn The <[email protected]>
Date:   Tue Mar 26 17:24:42 2013 -0700

    - Missing re import
    - 20 sec timout is too short when pairing
    - Fixed typo

commit 426a79a
Author: Martijn The <[email protected]>
Date:   Tue Mar 26 17:25:17 2013 -0700

    non-editable dependency for lightblue in requirements.txt

commit 4777457
Author: Martijn The <[email protected]>
Date:   Tue Mar 26 17:24:42 2013 -0700

    - Missing re import
    - 20 sec timout is too short when pairing
    - Fixed typo

commit 87e8c3f
Author: Martijn The <[email protected]>
Date:   Tue Mar 26 15:02:31 2013 -0700

    Added lightblue dependency to requirements.txt

commit 4e1b84e
Author: Paul McInnis <[email protected]>
Date:   Tue Mar 26 14:21:14 2013 -0700

    Moved LightBlueProcess into its own file, wrapped in PySerial style read, write and close.

commit 19b5b22
Author: Paul McInnis <[email protected]>
Date:   Mon Mar 25 20:30:33 2013 -0700

    improved the behaviour of the child process (lightblue) by making it Daemonic. Also added a timeout for waiting on the setup process.

commit 336b76b
Author: Paul McInnis <[email protected]>
Date:   Mon Mar 25 18:39:24 2013 -0700

    Usability improvements and some readability improvements

commit 1381d38
Author: Paul McInnis <[email protected]>
Date:   Mon Mar 25 16:15:27 2013 -0700

    general improvements to formatting and autodetection.

commit 0cd60ca
Author: Paul McInnis <[email protected]>
Date:   Mon Mar 25 11:58:10 2013 -0700

    further improved autodetection. Catching correct exception thrown from _bluetoothsocket.py (socket.timeout())

commit 6719e39
Author: Paul McInnis <[email protected]>
Date:   Mon Mar 25 11:19:38 2013 -0700

    bigfixes for cases within autodetect

commit 2e1769f
Author: Paul McInnis <[email protected]>
Date:   Mon Mar 25 10:52:31 2013 -0700

    This is the initial feature commit for libpebble with lightblue.

    -lightblue runs inside it's own process, there are issues with shutting it down when it's parent process dies.

    -example command line call:
    ./p.py --pebble_id DC93 --lightblue --pair ping
    --> this will pair to the mac-address obtained by searching for .*DC:93 and then will ping it. --lightblue indicates use of lightblue library
martijnthe referenced this issue in pebble/libpebble Apr 12, 2013
Improved readability and interface timeout. Fixed a buggy log in pebble.py read function.
Ginko72 pushed a commit to Ginko72/libpebble that referenced this issue May 9, 2013
Unblock fix for failed app installations and reading Pebble ID from the environment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants