intro rasta
This commit is contained in:
parent
679076fc63
commit
23440a4b3c
8 changed files with 1374 additions and 86 deletions
153
slides.typ
153
slides.typ
|
|
@ -1,19 +1,9 @@
|
|||
#import "@preview/polylux:0.4.0": *
|
||||
#import "slides/lib.typ": *
|
||||
|
||||
#show link: it => if type(it.dest) == label {
|
||||
context {
|
||||
if query(it.dest).len() == 0 {
|
||||
it.body
|
||||
} else {
|
||||
it
|
||||
}
|
||||
}
|
||||
} else {
|
||||
it
|
||||
}
|
||||
|
||||
#set text(lang: "en")
|
||||
#set list(marker: none)
|
||||
|
||||
#show: sns-polylux-template.with(
|
||||
txt-font: "New Computer Modern",
|
||||
title-font: "TeX Gyre Heros",
|
||||
|
|
@ -24,6 +14,8 @@
|
|||
short-title : [], //[PhD Defense],
|
||||
//short-event : [Rennes, 2025/12/9],
|
||||
title-size : 32pt,
|
||||
section-size : 18pt,
|
||||
size : 22pt,
|
||||
//logo-1 : image("slides/imgs/logo_irisa.png"),
|
||||
//logo-2 : image("slides/imgs/logo_pirat.png"),
|
||||
//
|
||||
|
|
@ -40,6 +32,13 @@
|
|||
date : datetime(year: 2025, month: 12, day: 9),
|
||||
)
|
||||
|
||||
/*
|
||||
* Intro:
|
||||
* Dear jury, gentle people of the audience, here and online, thank you for your presence.
|
||||
* I am Jean-Marie Mineau, and today I will be defending my thesis about Android Application reverse engineering and the many difficulties a reverse engineer might encounter.
|
||||
* This thesis was suppervised by Jean-François Lalande and Valerie Viet Triem Tong, within the PIRAT research team at IRISA.
|
||||
*/
|
||||
|
||||
#title-slide(
|
||||
logo: grid(columns: 2,
|
||||
image("slides/imgs/logo_pirat.png"),
|
||||
|
|
@ -53,18 +52,75 @@
|
|||
new-sec: true,
|
||||
title: [Introduction],
|
||||
hide-title: true,
|
||||
foreground: {
|
||||
ghost-5(dx: 10%, dy: 30pt)
|
||||
ghost-4(dx: 95%, dy: 80%)
|
||||
//ghost-4(dx: 45%, dy: 43%)
|
||||
}
|
||||
/*foreground: {
|
||||
ghost-5(x: 10%, y: 30pt)
|
||||
ghost-4(x: 95%, y: 80%)
|
||||
//ghost-4(x: 45%, y: 43%)
|
||||
}*/
|
||||
)[
|
||||
Intro 1
|
||||
#set align(center+horizon)
|
||||
#grid(
|
||||
columns: (1fr, 1fr),
|
||||
image("slides/imgs/google.png", width: 200pt),
|
||||
image("slides/imgs/phone.png", height: 350pt)
|
||||
)
|
||||
#v(2em)
|
||||
]
|
||||
|
||||
#slide[
|
||||
Intro 2
|
||||
#slide(
|
||||
foreground: ghost-4(x: 60%, y: 25%, rot: 45deg)
|
||||
)[
|
||||
#set align(center+horizon)
|
||||
#grid(
|
||||
columns: (3fr, 2fr), stack(dir: ltr,
|
||||
item-by-item[
|
||||
- Personal Data and PII
|
||||
- Computing Power
|
||||
- Phone
|
||||
- Mic, Camera, \ Geolocalisation
|
||||
],
|
||||
[ $ => $ ],
|
||||
item-by-item()[
|
||||
- Ransomware/Spyware
|
||||
- Cryptojacker
|
||||
- Expander (phone billing)
|
||||
- Stalkerware
|
||||
]
|
||||
),
|
||||
{
|
||||
move(dx: 20pt, image("slides/imgs/phone.png", height: 350pt))
|
||||
}
|
||||
)
|
||||
]
|
||||
|
||||
#slide(
|
||||
title: [Analysing Applications: Which Tools?],
|
||||
foreground: eye-3(x: 3%, y: 5%)
|
||||
)[
|
||||
#set align(center+horizon)
|
||||
#move(dx: -50pt, image("slides/imgs/apk-analysis.svg", width: 300pt))
|
||||
]
|
||||
|
||||
// something is broken, so hack to keep the page number at the same
|
||||
#counter("logical-slide").update( n => n - 1 )
|
||||
|
||||
#slide(
|
||||
title: [Analysing Applications: Which Tools?],
|
||||
)[
|
||||
#set list(spacing: 3em)
|
||||
#item-by-item[
|
||||
- #cite(<Li2017>, form: "prose"): systematic literature review for Android static analysis, lists open-sourced tools
|
||||
- #cite(<reaves_droid_2016>, form: "prose"): tests analysis tools, raises concerns about reusability and analysis of
|
||||
real-world applications
|
||||
]
|
||||
]
|
||||
|
||||
// something is broken, so hack to keep the page number at the same
|
||||
#counter("logical-slide").update( n => n - 1 )
|
||||
#slide(
|
||||
title: [Analysing Applications: Which Tools?],
|
||||
)[
|
||||
#highlight-block(pb1-text)
|
||||
]
|
||||
|
||||
#new-section-slide([Tool Reusability])
|
||||
|
|
@ -120,13 +176,11 @@
|
|||
|
||||
|
||||
/*
|
||||
|
||||
#slide()[
|
||||
#get_figure(<fig:th-cg-before-after>))
|
||||
]
|
||||
|
||||
#slide()[
|
||||
/*
|
||||
#pl.toolbox.slide-number
|
||||
#context({
|
||||
pl.toolbox.all-sections((sections, current) => {
|
||||
|
|
@ -135,67 +189,12 @@
|
|||
}
|
||||
})
|
||||
})
|
||||
*/
|
||||
#sections()
|
||||
]
|
||||
|
||||
// #toc-slide( title: [Outline] )
|
||||
|
||||
|
||||
|
||||
#slide(
|
||||
title: [A slide without subtitle],
|
||||
)[
|
||||
This slide does not have a subtitle, but belongs to the first section.
|
||||
]
|
||||
|
||||
#new-section-slide([Second section])
|
||||
|
||||
#slide(
|
||||
title: [Title],
|
||||
subtitle: [Subtitle],
|
||||
)[
|
||||
plop
|
||||
]
|
||||
|
||||
#slide(
|
||||
subtitle: [Hidden subtitle],
|
||||
)[
|
||||
This slide however does not have a title. It belongs to the second section.
|
||||
]
|
||||
|
||||
#new-section-slide([Third section])
|
||||
|
||||
#focus-slide()[
|
||||
This is a _focus-slide_.
|
||||
]
|
||||
|
||||
#slide(new-sec: true, title: [Fourth section],)[
|
||||
A slide can also open a new section...
|
||||
]
|
||||
|
||||
#focus-slide(new-sec: [Fifth section],)[
|
||||
... and also a focus-slide can do it!
|
||||
]
|
||||
|
||||
#empty-slide()[
|
||||
Ending slide
|
||||
]
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Notes:
|
||||
*
|
||||
* Intro:
|
||||
* Dear jury, gentle people of the audience, here and online, thank you for your presence.
|
||||
* I am Jean-Marie Mineau, and today I will be defending my thesis about Android Application reverse engineering and the many difficulties a reverse engineer might encounter.
|
||||
* This thesis was suppervised by Jean-François Lalande and Valerie Viet Triem Tong, within the PIRAT research team at IRISA.
|
||||
*
|
||||
*/
|
||||
|
||||
#pagebreak()
|
||||
#set page(height: auto, margin: 25mm)
|
||||
#bibliography("bibliography.bib")
|
||||
|
|
|
|||
200
slides/imgs/apk-analysis.svg
Normal file
200
slides/imgs/apk-analysis.svg
Normal file
|
|
@ -0,0 +1,200 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="118.86373mm"
|
||||
height="101.41884mm"
|
||||
viewBox="0 0 118.86373 101.41884"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
sodipodi:docname="apk-analysis.svg"
|
||||
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="0.54740759"
|
||||
inkscape:cx="430.2096"
|
||||
inkscape:cy="240.2232"
|
||||
inkscape:window-width="1278"
|
||||
inkscape:window-height="1438"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs1">
|
||||
<rect
|
||||
x="103.11004"
|
||||
y="338.67529"
|
||||
width="108.28193"
|
||||
height="54.516369"
|
||||
id="rect6998-6-8" />
|
||||
<rect
|
||||
x="51.09034"
|
||||
y="484.5957"
|
||||
width="483.07062"
|
||||
height="93.030174"
|
||||
id="rect5-18-8-0" />
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-48.88522,-109.61498)">
|
||||
<g
|
||||
id="g4"
|
||||
transform="translate(63.800723,65.734078)">
|
||||
<path
|
||||
style="fill:#a80000;fill-opacity:1;stroke:none;stroke-width:1.16851;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 84.189105,65.707438 c 0,0 -1.670223,-2.771444 3.119061,-1.920413 3.414668,0.677793 14.751794,16.369866 15.793074,20.049847 1.04127,3.680016 -1.41744,3.513496 -1.41744,3.513496 l -19.190891,-0.63153 z"
|
||||
id="path4680-0"
|
||||
sodipodi:nodetypes="ccsccc" />
|
||||
<path
|
||||
style="fill:#a80000;fill-opacity:1;stroke:#5f0000;stroke-width:1.1685;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 46.357169,63.198599 v 81.516891 h 56.995041 c 0,0 -0.15305,-46.991299 0.0104,-59.634813 0.19066,-5.37141 -17.409719,-2.136358 -17.409719,-2.136358 0,0 5.366564,-19.130606 0.410717,-19.426974 -4.071144,-0.0018 -40.006214,-0.318603 -40.006214,-0.318603 z"
|
||||
id="path113-3"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.46491259,0,0,0.46491259,8.2476048,-40.408637)"
|
||||
id="text6996-6"
|
||||
style="font-size:48px;white-space:pre;shape-inside:url(#rect6998-6-8);display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.51339;stroke-dasharray:none;stroke-opacity:1"><tspan
|
||||
x="103.10938"
|
||||
y="382.34979"
|
||||
id="tspan4"><tspan
|
||||
style="font-size:32px"
|
||||
id="tspan3">.APK</tspan></tspan></text>
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.16851;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect8612-63"
|
||||
width="20.369755"
|
||||
height="18.939493"
|
||||
x="62.991112"
|
||||
y="92.58017" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.16851;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 63.016392,90.733082 20.377389,0.01796 c 0,0 -0.02299,-7.636 -10.194544,-7.631366 -10.171563,0.0072 -10.182845,7.611718 -10.182845,7.611718 z"
|
||||
id="path8722-20" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.16851;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 57.734281,94.417768 c -0.0036,1.841104 0,9.824012 0,12.002792 0,2.17885 3.442868,2.26035 3.447455,0 0.0054,-2.26028 -7.94e-4,-10.166932 0,-12.002792 7.72e-4,-1.835895 -3.444754,-1.84114 -3.447455,0 z"
|
||||
id="path11632-615" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.16851;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 85.132494,94.413243 c -0.0036,1.841139 0,9.824047 0,12.002857 0,2.17878 3.442876,2.26032 3.447441,0 0.0054,-2.26031 -7.69e-4,-10.166962 0,-12.002857 7.94e-4,-1.835824 -3.444725,-1.841104 -3.447441,0 z"
|
||||
id="path11632-3-54" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.416248;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 78.718145,80.741007 c -0.381845,0.652326 -2.033669,3.483108 -2.484716,4.255584 -0.451039,0.772511 0.451061,1.337949 0.920186,0.537277 0.469121,-0.800708 2.104448,-3.604802 2.484712,-4.25562 0.38025,-0.650745 -0.538337,-1.189567 -0.920182,-0.537241 z"
|
||||
id="path11632-3-5-7" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.416248;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 66.425895,81.092726 c 0.378684,0.65423 2.024413,3.488497 2.473402,4.262229 0.448963,0.773697 1.386142,0.268675 0.921608,-0.534835 -0.464552,-0.80333 -2.095296,-3.610154 -2.473398,-4.262229 -0.37811,-0.652003 -1.300278,-0.119251 -0.921612,0.534835 z"
|
||||
id="path11632-3-5-3-6" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.16851;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 77.151449,104.84985 c -0.0018,1.84118 0,9.82405 0,12.00286 0,2.17875 3.442875,2.26028 3.447444,0 0.0054,-2.26031 -7.76e-4,-10.167 0,-12.00286 7.94e-4,-1.83586 -3.444732,-1.84107 -3.447444,0 z"
|
||||
id="path11632-3-6-5" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.16851;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 65.791234,104.84766 c -0.0036,1.84114 0,9.82398 0,12.00275 0,2.17882 3.442872,2.26036 3.447441,0 0.0054,-2.26028 -7.76e-4,-10.16693 0,-12.00275 7.72e-4,-1.83586 -3.444736,-1.8411 -3.447441,0 z"
|
||||
id="path11632-3-6-7-6" />
|
||||
</g>
|
||||
<g
|
||||
id="g3"
|
||||
transform="rotate(180,111.29859,175.34573)">
|
||||
<circle
|
||||
style="fill:#6f6f6f;fill-opacity:1;stroke:#3c3c3c;stroke-width:6;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1"
|
||||
cx="104.06962"
|
||||
cy="208.65189"
|
||||
r="28.196201" />
|
||||
<path
|
||||
style="fill:#6f6f6f;fill-opacity:1;stroke:#3c3c3c;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 132.06932,220.95661 38.64264,17.11987"
|
||||
id="path2" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.872563;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 121.3,195.44438 c -1.37481,-0.003 -33.212602,0 -34.839593,0 -1.626965,0 -1.687851,2.57091 0,2.57431 1.687852,0.006 33.468693,-5.6e-4 34.839593,0 1.37087,6.2e-4 1.37484,-2.57227 0,-2.57431 z"
|
||||
id="path11632-3-54-5-0-2-2" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.872563;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 121.26073,222.37849 c -1.37481,-0.003 -33.212597,0 -34.839587,0 -1.62697,0 -1.68785,2.57091 0,2.57431 1.68785,0.006 33.468687,-5.6e-4 34.839587,0 1.37087,6.2e-4 1.37484,-2.57227 0,-2.57431 z"
|
||||
id="path11632-3-54-5-0-2-2-3" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.627106;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 112.59092,228.60178 c -0.71012,-0.003 -17.155024,0 -17.9954,0 -0.840365,0 -0.871811,2.57091 0,2.57431 0.871811,0.006 17.2873,-5.6e-4 17.9954,0 0.70809,6.2e-4 0.71014,-2.57227 0,-2.57431 z"
|
||||
id="path11632-3-54-5-0-2-2-3-2"
|
||||
sodipodi:nodetypes="csccc" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.627106;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 113.11519,189.35286 c -0.71012,-0.003 -17.155033,0 -17.995403,0 -0.84037,0 -0.87182,2.57091 0,2.57431 0.87181,0.006 17.287303,-5.6e-4 17.995403,0 0.70809,6.2e-4 0.71014,-2.57227 0,-2.57431 z"
|
||||
id="path11632-3-54-5-0-2-2-3-2-6" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.960537;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 124.71379,202.01092 c -1.666,-0.003 -40.247344,0 -42.218946,0 -1.971566,0 -2.045353,2.57091 0,2.57431 2.045353,0.006 40.557676,-5.6e-4 42.218946,0 1.66124,6.2e-4 1.66604,-2.57227 0,-2.57431 z"
|
||||
id="path11632-3-54-5-0-2-2-0" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.983974;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 125.89878,208.99494 c -1.7483,-0.003 -42.235426,0 -44.304419,0 -2.068954,0 -2.146386,2.57091 0,2.57431 2.146388,0.006 42.561089,-5.6e-4 44.304419,0 1.74329,6.2e-4 1.74834,-2.57227 0,-2.57431 z"
|
||||
id="path11632-3-54-5-0-2-2-0-6" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.95688;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 124.44307,215.58187 c -1.65334,-0.003 -39.941482,0 -41.898102,0 -1.956582,0 -2.029809,2.57091 0,2.57431 2.029811,0.006 40.249462,-5.6e-4 41.898102,0 1.64861,6.2e-4 1.65339,-2.57227 0,-2.57431 z"
|
||||
id="path11632-3-54-5-0-2-2-0-6-7" />
|
||||
</g>
|
||||
<g
|
||||
id="g12"
|
||||
transform="matrix(0.34548525,0.17351546,-0.17351546,0.34548525,93.435206,73.665796)">
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:6.00001;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 146.33052,150.9254 c 2.86004,3.52113 14.63731,3.65401 22.28398,0.49389 8.19791,-3.38793 8.35696,-33.06463 0.73507,-38.45501 -7.50091,-5.30483 -21.85297,-2.77944 -25.4635,-0.86302 -3.4844,1.84947 -9.91266,23.61071 2.44445,38.82414 z"
|
||||
id="path4"
|
||||
sodipodi:nodetypes="sssss" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 124.21807,95.459413 c 3.43516,16.080897 15.02857,14.836297 16.19185,14.983507 l 33.59205,-0.96668 c -8.4219,0.39241 13.96682,2.4511 12.80848,-15.708513"
|
||||
id="path5"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.00001;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 116.48465,132.91817 12.08347,-9.18344 30.45035,9.42511 26.10029,-9.66677 13.05015,10.15011"
|
||||
id="path7" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.00001;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 128.80979,163.85186 -0.48334,-12.32514 12.32514,-8.94177 32.14203,-1.69169 11.35847,11.1168 -0.24168,11.60012"
|
||||
id="path8" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:6.00001;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 144.27664,102.7095 24.65027,-0.48334 c -0.47665,-7.238368 -4.87787,-9.407674 -12.08347,-9.425109 -9.36136,-0.02265 -14.12512,8.937019 -12.5668,9.908449 z"
|
||||
id="path9"
|
||||
sodipodi:nodetypes="ccsc" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 165.78521,95.942752 c 2.02768,-3.620104 3.42177,-8.876209 12.80847,-11.116792"
|
||||
id="path10"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 147.90167,97.392769 C 141.27485,84.715309 136.35007,86.186325 135.57653,86.034306"
|
||||
id="path11"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 149.3517,122.04305 17.15852,15.70851 m -0.97678,-15.62987 -16.67519,14.9835"
|
||||
id="path12"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 12 KiB |
1062
slides/imgs/dex_insertion.svg
Normal file
1062
slides/imgs/dex_insertion.svg
Normal file
File diff suppressed because it is too large
Load diff
|
After Width: | Height: | Size: 66 KiB |
BIN
slides/imgs/google.png
Normal file
BIN
slides/imgs/google.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
BIN
slides/imgs/phone.png
Normal file
BIN
slides/imgs/phone.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 191 KiB |
BIN
slides/imgs/phone.png~
Normal file
BIN
slides/imgs/phone.png~
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 82 KiB |
|
|
@ -1,6 +1,8 @@
|
|||
#import "sns_polylux_template.typ": *
|
||||
#import "figures.typ": figures, get_figure
|
||||
|
||||
#import "../lib.typ": pb1-text, pb2-text, pb3-text
|
||||
|
||||
#let pirat-color = (
|
||||
black: rgb("#000000"),
|
||||
white: rgb("#FFFFFF"),
|
||||
|
|
@ -17,6 +19,12 @@ rgb("#E69426"),
|
|||
pirat-color.red,
|
||||
)
|
||||
|
||||
#let highlight-block = block.with(
|
||||
fill: pirat-color.blue,
|
||||
width: 100%,
|
||||
inset: 8pt,
|
||||
radius: 4pt,
|
||||
)
|
||||
|
||||
#let colortest = [
|
||||
#for th in (
|
||||
|
|
@ -30,17 +38,29 @@ pirat-color.red,
|
|||
}
|
||||
]
|
||||
|
||||
#let ghost(img, dx: 0pt, dy: 0pt, height: 100pt, ..args,) = context {
|
||||
#let ghost(
|
||||
img, x: 0pt,
|
||||
y: 0pt,
|
||||
mirror: false,
|
||||
rot: 0deg,
|
||||
height: 100pt
|
||||
) = context {
|
||||
let img = image(img, height: height)
|
||||
if mirror {
|
||||
img = scale(x: -100%, img)
|
||||
}
|
||||
if rot != 0deg {
|
||||
img = rotate(rot, img)
|
||||
}
|
||||
|
||||
let s = measure(img)
|
||||
let hx = s.width / 2
|
||||
let hy = s.height / 2
|
||||
|
||||
place(
|
||||
bottom + left,
|
||||
dx: dx - hx,
|
||||
dy: -dy + hy,
|
||||
..args,
|
||||
dx: x - hx,
|
||||
dy: -y + hy,
|
||||
img
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ cmyk(25%,7%,0%,0%),
|
|||
#let sns-polylux-template_second-text-color = state("txt_color2", none)
|
||||
#let sns-polylux-template_title-text-color = state("title_color", none)
|
||||
#let sns-polylux-template_size = state("size", none)
|
||||
#let sns-polylux-template_section-size = state("section-size",none)
|
||||
#let sns-polylux-template_title-size = state("title-size", none)
|
||||
|
||||
// Data
|
||||
|
|
@ -67,6 +68,7 @@ cmyk(25%,7%,0%,0%),
|
|||
txt-color2 : white,
|
||||
title-color : rgb("#444444"),
|
||||
size : 20pt,
|
||||
section-size : 20pt,
|
||||
title-size : 64pt,
|
||||
bkgnd-color : white,
|
||||
|
||||
|
|
@ -93,6 +95,7 @@ cmyk(25%,7%,0%,0%),
|
|||
sns-polylux-template_title-text-color.update(title-color)
|
||||
sns-polylux-template_size.update(size)
|
||||
sns-polylux-template_title-size.update(title-size)
|
||||
sns-polylux-template_section-size.update(section-size)
|
||||
|
||||
sns-polylux-template_colormap.update(colormap)
|
||||
|
||||
|
|
@ -127,7 +130,7 @@ cmyk(25%,7%,0%,0%),
|
|||
context {
|
||||
//let section-pages = sns-polylux-template_section-pages.final()
|
||||
if not "END" in sns-polylux-template_section-pages.at(here()).keys() {
|
||||
let page_num = counter("logical-slide").at(here())
|
||||
let page_num = counter("logical-slide").get()
|
||||
sns-polylux-template_section-pages.update(secpages => {
|
||||
secpages.insert("END", page_num)
|
||||
secpages
|
||||
|
|
@ -138,7 +141,7 @@ cmyk(25%,7%,0%,0%),
|
|||
|
||||
#let register-section(title, no_dedicated_slide: false) = context {
|
||||
// YUCKKKKK, but polylux don't allows access to integers soooooo
|
||||
let page_num = counter("logical-slide").at(here()) //sns-polylux-template_slide-pages.at(here())
|
||||
let page_num = counter("logical-slide").get() //sns-polylux-template_slide-pages.at(here())
|
||||
if no_dedicated_slide {
|
||||
page_num.at(0) += 1
|
||||
}
|
||||
|
|
@ -282,9 +285,11 @@ cmyk(25%,7%,0%,0%),
|
|||
counter("logical-slide").update( n => n - 1 )
|
||||
} )
|
||||
|
||||
#let sections() = context {
|
||||
#let sections(pos_before_slide) = context {
|
||||
let section-pages = sns-polylux-template_section-pages.final()
|
||||
let pnum = counter("logical-slide").at(here()).first() + 1
|
||||
let section-size = sns-polylux-template_section-size.at(pos_before_slide)
|
||||
set text(size: section-size)
|
||||
let pnum = counter("logical-slide").at(pos_before_slide).first() + 1
|
||||
pl.toolbox.all-sections((sections, current) => {
|
||||
let beg-end-section = (:)
|
||||
let prev-sec = none
|
||||
|
|
@ -383,6 +388,8 @@ cmyk(25%,7%,0%,0%),
|
|||
let progress_bar_height = 3pt
|
||||
let title_bar_height = 2cm
|
||||
|
||||
let pos_before_slide = here()
|
||||
|
||||
// HEADER
|
||||
let header = align(top, context( {
|
||||
let logo = sns-polylux-template_logo-2.at(here())
|
||||
|
|
@ -412,7 +419,7 @@ cmyk(25%,7%,0%,0%),
|
|||
|
||||
align(horizon + center,text(fill: sns-polylux-template_second-text-color.at(here()), {
|
||||
v(-1em)
|
||||
if hide-section { hide(sections()) } else { sections() }
|
||||
if hide-section { hide(sections(pos_before_slide)) } else { sections(pos_before_slide) }
|
||||
}))
|
||||
),
|
||||
grid.cell(colspan: columns.len(), progress-bar()),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue