Proof that with a few hours work, you can easily provide aribitrary data to the Google SafetyNet API and receive a valid Attestation signed by attest.android.com.
I've captured the HARDWARE_BACKED flag. Check this comment.
This is only a software backed attestation, as you can see with the evaluationType=BASIC. I don't have any devices that support hardware backed attestations via TEE, however once I do, I'll be taking a look into them 🤠
- nonce: base64(
[email protected]) - packageName:
[email protected]
How is raylib API used out there? What are the most popular function calls? And the less used ones? What new API calls made an impact? Which ones get completely ignored by the users?
raylib has grown in the last years from 80 API functions to 475 API functions. Did the users adapted to that amount of improvements? Did the new features fit their needs?
I was looking for some answer so I decided to do a quick market analysis of raylib API usage, actually it was a nice weekend project. I decided to analyse some public GitHub projects using raylib.
So, you guys might be wondering, how do these "Developers" get your favourite Custom roms, such as LineageOS, Paranoid Android etc., to their own devices. Well I'm here to Guide you on how to do it, specifically on how to bringup or make your own device tree from scratch or adapting.
Gist of this Guide: This is for people with genuine interest in Android OS porting/development. After going through this guide, you should be able to do a total device tree bringup on your own.
Prerequisite: Certain requirements are to be met before you start with this amazing journey.
| #include <array> | |
| #include <cmath> | |
| #include <fstream> | |
| #include <iostream> | |
| #include <vector> | |
| struct Vec { | |
| float x, y, z; | |
| Vec(float vx, float vy, float vz) : x(vx), y(vy), z(vz) {} | |
| Vec operator+(Vec vec) { return {x + vec.x, y + vec.y, z + vec.z}; } |
| #!/usr/bin/env python3 | |
| import struct | |
| import socket | |
| import time | |
| # Need to run with root permission cause RAW socket is used | |
| # ref: | |
| # - https://dnaeon.github.io/traceroute-in-python/ |
| #!/usr/bin/env python3 | |
| import os | |
| import struct | |
| import socket | |
| import time | |
| def checksum(bytestr): | |
| # ref | |
| # - https://en.wikipedia.org/wiki/IPv4_header_checksum |
(If this file is included in a project, you can find the list of current caretakers at the bottom.)
In a small classical open-source project, maintainers do a lot, and if maintainers don't have time to do a lot, usually the project stalls. Finding new maintainers is hard because few people actively want to take over all the responsibilities of a project. There must be a different way.
With Caretaker Maintainership, "Maintainers" become "Caretakers". Caretakers' only mandatory responsibility is to grant Releasers commit and publish access to the project.
All packages, except for Tini have been added to termux-root. To install them, simply pkg install root-repo && pkg install docker. This will install the whole docker suite, left only Tini to be compiled manually.
| // ==UserScript== | |
| // @name GitHub checklist highlighter 595491 | |
| // @version 5 | |
| // @grant none | |
| // @include https://github.com/* | |
| // ==/UserScript== | |
| (function f() { | |
| var taskListItems = document.getElementsByClassName("task-list-item enabled"); |
