Contact   Imprint   Advertising   Guidelines

PIQ story ended ! - Legacy files uploaded

Forum for kitesurfers
jedi1
Frequent Poster
Posts: 395
Joined: Fri Sep 08, 2006 5:41 pm
Brand Affiliation: None
Location: Poland
Has thanked: 13 times
Been thanked: 10 times

Re: PIQ story ended !

Postby jedi1 » Wed Mar 31, 2021 3:07 pm

I am pretty sure if PIQ open sourced the API to connect to the sensor, then the data could be shown in Surfr for example. I don't have a PIQ, so I am not particularly interested, but with the power of this forums, I guess it could be possible to reach PIQ directly and ask for it.

surfbird
Medium Poster
Posts: 88
Joined: Wed Nov 26, 2014 8:35 pm
Local Beach: Apelviken
Björlanda kile
Rossö
Favorite Beaches: Big Bay SA
Style: All
Gear: Naish Torch, Park.
Hadlow pro 138
Brand Affiliation: None
Has thanked: 15 times
Been thanked: 21 times

Re: PIQ story ended !

Postby surfbird » Wed Mar 31, 2021 9:20 pm

aleks wrote:
Wed Mar 31, 2021 2:19 pm
If PIQ provided Bluetooth communication protocol with their sensor, theoretically I could write an app to download and review the jumps. No social or leaderbords functionality though.

Or, it would be even better if PIQ opened source of their app, so it could be modified to work with sensor directly without servers.
It almost is :-)
I had a look at the apk, completly unencrypted, no obfuscation. Easy peasy.

public class KiteLeaderboardConnection extends LeaderboardConnection {
private static final String METHOD_GET_COMMUNITY_SEARCH = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/community/search");
private static final String METHOD_GET_KITE_NEWS_FEED_FRIENDS = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/newsfeed/friends");
private static final String METHOD_GET_KITE_NEWS_FEED_MY_SPOT = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/newsfeed/spots");
private static final String METHOD_GET_LEADERBOARD_DETAILS_FOR_USER = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/community/{cuuid}");
public static final int SEARCH_PAGE_PORTION = 20;
private static final String TAG = "KiteLeaderboardConnect";

public static KiteCommunityUserEntity getLeaderBoardUserDetails(Context context, @NonNull String str, @NonNull List<Pair<String, String>> list) {

a99
Very Frequent Poster
Posts: 1068
Joined: Tue Jul 18, 2017 11:10 am
Kiting since: 2013
Gear: North, SabMoses, Flysurfer, Liquid Force, Blade, Xenon.
Brand Affiliation: None
Has thanked: 570 times
Been thanked: 131 times

Re: PIQ story ended !

Postby a99 » Wed Mar 31, 2021 9:29 pm

@ Surfbird > thanks, good news.

PIQ apps already disapeared from Apple appstore, so PIQ message about end was true.
Lucky i donwloaded two PIQ aps for ios - Duotone PIQ for Kiteboarding and Rossignol PIQ for snowboarding. I uploaded it now, link for download will valid for 30 days. https://easyupload.io/m/ukz80v
These users thanked the author a99 for the post:
nothing2seehere (Thu Apr 01, 2021 8:51 am)
Rating: 3.03%

User avatar
aleks
Frequent Poster
Posts: 380
Joined: Fri May 25, 2012 8:07 pm
Kiting since: 2007
Local Beach: Ontario
Gear: RDB, Elf
Brand Affiliation: WOO, RDB, Elf
Has thanked: 54 times
Been thanked: 148 times

Re: PIQ story ended !

Postby aleks » Thu Apr 01, 2021 2:56 pm

surfbird wrote:
Wed Mar 31, 2021 9:20 pm
aleks wrote:
Wed Mar 31, 2021 2:19 pm
If PIQ provided Bluetooth communication protocol with their sensor, theoretically I could write an app to download and review the jumps. No social or leaderbords functionality though.

Or, it would be even better if PIQ opened source of their app, so it could be modified to work with sensor directly without servers.
It almost is :-)
I had a look at the apk, completly unencrypted, no obfuscation. Easy peasy.

public class KiteLeaderboardConnection extends LeaderboardConnection {
private static final String METHOD_GET_COMMUNITY_SEARCH = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/community/search");
private static final String METHOD_GET_KITE_NEWS_FEED_FRIENDS = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/newsfeed/friends");
private static final String METHOD_GET_KITE_NEWS_FEED_MY_SPOT = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/newsfeed/spots");
private static final String METHOD_GET_LEADERBOARD_DETAILS_FOR_USER = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/community/{cuuid}");
public static final int SEARCH_PAGE_PORTION = 20;
private static final String TAG = "KiteLeaderboardConnect";

public static KiteCommunityUserEntity getLeaderBoardUserDetails(Context context, @NonNull String str, @NonNull List<Pair<String, String>> list) {
Nice! Can you send me the source code you got?

surfbird
Medium Poster
Posts: 88
Joined: Wed Nov 26, 2014 8:35 pm
Local Beach: Apelviken
Björlanda kile
Rossö
Favorite Beaches: Big Bay SA
Style: All
Gear: Naish Torch, Park.
Hadlow pro 138
Brand Affiliation: None
Has thanked: 15 times
Been thanked: 21 times

Re: PIQ story ended !

Postby surfbird » Fri Apr 02, 2021 9:57 am

aleks wrote:
Thu Apr 01, 2021 2:56 pm
surfbird wrote:
Wed Mar 31, 2021 9:20 pm
aleks wrote:
Wed Mar 31, 2021 2:19 pm
If PIQ provided Bluetooth communication protocol with their sensor, theoretically I could write an app to download and review the jumps. No social or leaderbords functionality though.

Or, it would be even better if PIQ opened source of their app, so it could be modified to work with sensor directly without servers.
It almost is :-)
I had a look at the apk, completly unencrypted, no obfuscation. Easy peasy.

public class KiteLeaderboardConnection extends LeaderboardConnection {
private static final String METHOD_GET_COMMUNITY_SEARCH = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/community/search");
private static final String METHOD_GET_KITE_NEWS_FEED_FRIENDS = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/newsfeed/friends");
private static final String METHOD_GET_KITE_NEWS_FEED_MY_SPOT = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/newsfeed/spots");
private static final String METHOD_GET_LEADERBOARD_DETAILS_FOR_USER = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/community/{cuuid}");
public static final int SEARCH_PAGE_PORTION = 20;
private static final String TAG = "KiteLeaderboardConnect";

public static KiteCommunityUserEntity getLeaderBoardUserDetails(Context context, @NonNull String str, @NonNull List<Pair<String, String>> list) {
Nice! Can you send me the source code you got?
Use
https://github.com/skylot/jadx
to decompile.
run with:
./jadx//build/jadx/bin/jadx-gui orig.apk

I deleted the source and apk, I just checked if it was encypted or not.

User avatar
aleks
Frequent Poster
Posts: 380
Joined: Fri May 25, 2012 8:07 pm
Kiting since: 2007
Local Beach: Ontario
Gear: RDB, Elf
Brand Affiliation: WOO, RDB, Elf
Has thanked: 54 times
Been thanked: 148 times

Re: PIQ story ended !

Postby aleks » Fri Apr 02, 2021 2:57 pm

Thanks. The source code looks huge, it will take forever to make it work. I don't have time to take it on, sorry :(

surfbird
Medium Poster
Posts: 88
Joined: Wed Nov 26, 2014 8:35 pm
Local Beach: Apelviken
Björlanda kile
Rossö
Favorite Beaches: Big Bay SA
Style: All
Gear: Naish Torch, Park.
Hadlow pro 138
Brand Affiliation: None
Has thanked: 15 times
Been thanked: 21 times

Re: PIQ story ended !

Postby surfbird » Fri Apr 02, 2021 10:00 pm

aleks wrote:
Fri Apr 02, 2021 2:57 pm
Thanks. The source code looks huge, it will take forever to make it work. I don't have time to take it on, sorry :(
The standard approach when reversing is to mock the functions that do server calls, so the app start up as normal. Then recompile back to apk.
It's usually just a couple of lines that has to be changed, but you never know how much an app has to be changed.

That said, it's much easier done while the servers still are there. And sometimes it downloads codesnippets live, but it didn't look like that was the case here.

Reversing is fun! You should try it :-) I can help you with different tools and techniques. I'm in the middle of a mind boggling reverse case right now, so I won't have time to do it.
These users thanked the author surfbird for the post:
aleks (Sun Apr 04, 2021 5:58 pm)
Rating: 3.03%

User avatar
aleks
Frequent Poster
Posts: 380
Joined: Fri May 25, 2012 8:07 pm
Kiting since: 2007
Local Beach: Ontario
Gear: RDB, Elf
Brand Affiliation: WOO, RDB, Elf
Has thanked: 54 times
Been thanked: 148 times

Re: PIQ story ended !

Postby aleks » Sun Apr 04, 2021 6:03 pm

surfbird wrote:
Fri Apr 02, 2021 10:00 pm
aleks wrote:
Fri Apr 02, 2021 2:57 pm
Thanks. The source code looks huge, it will take forever to make it work. I don't have time to take it on, sorry :(
The standard approach when reversing is to mock the functions that do server calls, so the app start up as normal. Then recompile back to apk.
It's usually just a couple of lines that has to be changed, but you never know how much an app has to be changed.

That said, it's much easier done while the servers still are there. And sometimes it downloads codesnippets live, but it didn't look like that was the case here.

Reversing is fun! You should try it :-) I can help you with different tools and techniques. I'm in the middle of a mind boggling reverse case right now, so I won't have time to do it.
Just sold my PIQ, so that is it for me. To all PIQ owners - send a note to WOO support, they might give you a discount on a new WOO :thumb:
These users thanked the author aleks for the post:
Leon van Bergen (Sun Apr 04, 2021 8:10 pm)
Rating: 3.03%

LineCutter
Rare Poster
Posts: 1
Joined: Mon Apr 12, 2021 4:55 pm
Kiting since: 2018
Weight: 75
Local Beach: Hyères
Favorite Beaches: Hyères
Gear: Ocean Rodeo
Brand Affiliation: None
Has thanked: 0
Been thanked: 0

Re: PIQ story ended !

Postby LineCutter » Mon Apr 12, 2021 6:34 pm

aleks wrote:
Thu Apr 01, 2021 2:56 pm
surfbird wrote:
Wed Mar 31, 2021 9:20 pm
aleks wrote:
Wed Mar 31, 2021 2:19 pm
If PIQ provided Bluetooth communication protocol with their sensor, theoretically I could write an app to download and review the jumps. No social or leaderbords functionality though.

Or, it would be even better if PIQ opened source of their app, so it could be modified to work with sensor directly without servers.
It almost is :-)
I had a look at the apk, completly unencrypted, no obfuscation. Easy peasy.

public class KiteLeaderboardConnection extends LeaderboardConnection {
private static final String METHOD_GET_COMMUNITY_SEARCH = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/community/search");
private static final String METHOD_GET_KITE_NEWS_FEED_FRIENDS = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/newsfeed/friends");
private static final String METHOD_GET_KITE_NEWS_FEED_MY_SPOT = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/newsfeed/spots");
private static final String METHOD_GET_LEADERBOARD_DETAILS_FOR_USER = ("/api/v1/" + SPORT_TYPE + "/users/{uuid}/community/{cuuid}");
public static final int SEARCH_PAGE_PORTION = 20;
private static final String TAG = "KiteLeaderboardConnect";

public static KiteCommunityUserEntity getLeaderBoardUserDetails(Context context, @NonNull String str, @NonNull List<Pair<String, String>> list) {
Nice! Can you send me the source code you got?
I've uploaded it here:
https://www.decompiler.com/jar/5266daaa ... ction.java

I'll later try to recompile it back before trying to modify the functionality.

User avatar
haiku
Frequent Poster
Posts: 433
Joined: Tue Jul 08, 2008 10:25 pm
Local Beach: Latina beach Italy and...Naish beach Maui
Favorite Beaches: Latina, Porto Pollo - Italy , Kitebeach. Kihei - Maui
Style: old and new school
Gear: Flysurfer Sonic FR, Speed, Boost, Cronix, Naish Pivot, Flysurfer Radical 5, Door 5, Kazuma custom wave boards
Has thanked: 9 times
Been thanked: 50 times

Re: PIQ story ended !

Postby haiku » Thu Apr 29, 2021 10:09 pm

Hi. A surfshop gave me, as a gift, a new red North PIQ (not the Duotone). Unfortunately the PIQ server is not longer on line so without an activation code (via sms) I cannot connect It to the app. Any suggestions? Thanks in advance.

Cheers
Carlo


Return to “Kitesurfing”

Who is online

Users browsing this forum: ak200, Baidu [Spider], Bing [Bot], ChielSter, fly62, FunOnTheWater, Gonzavala, Google [Bot], Hessel and 270 guests